Question

SillyTavern是什么

Thought

undefined

Thought

Thought for 4 seconds

Answer

SillyTavern(常简称 ST)是一个本地安装的、基于浏览器的“大模型聊天前端”:它本身不提供模型能力,而是让你用一个高度可定制的界面去连接各种 文本生成 LLM图像生成、以及 TTS(文本转语音) 等后端服务,然后进行聊天、角色扮演、写作、实验提示词等。(GitHub)

它主要用来做什么

  • 当“统一聊天客户端”:把不同模型/接口放在同一个 UI 里切换和管理(你在 ST 里配置 API/后端,ST 再帮你发请求)。(SillyTavern Docs)
  • 角色扮演/剧情写作向:支持角色卡、世界观/“World Info(世界书)”、更细的提示词控制、聊天记录与设定管理等(这也是它在爱好者圈里很常见的用途)。(SillyTavern Docs)
  • 扩展生态:有一堆扩展/插件(例如语音、翻译、图像、自动化等),属于“玩法很多、学习曲线也比较陡”的工具。(SillyTavern Docs)

它的项目性质

  • 免费开源、社区维护;项目在 2023 年 2 月左右作为 TavernAI 的分支起步。(GitHub)

使用时要注意

  • 隐私/安全:它是本地前端,但你接入的模型后端(尤其是第三方 API)可能会接收你的对话内容;API Key 也要妥善保管。
  • 版本兼容:更新时可能会出现聊天记录/扩展兼容性变化(例如发布说明里会提示 breaking changes)。(GitHub)

如果你告诉我你是想用它来做角色扮演写作,还是当多模型统一聊天客户端,我可以按你的用途给一份更具体的上手路线(比如后端怎么选、哪些常用设置值得先改)。

Question

我想用来写作,我给他世界观、主角团、主线剧情、规则限制。SillyTavern来写作,我会不定时的引导剧情走向和调整设定,要求SillyTavern能写好支线,让剧情更丰富

Thought

Proposing step-by-step setup for dynamic writing

The auto-summary extension can help maintain small context, making it easier to manage. I need to make sure to cite the relevant sections like line 64 for Auto-Summary and line 57 for RAG support as built-in features. For the user’s needs, I’ll suggest setting up dynamic branching while regularly guiding the plot direction. This can enrich storylines and trigger side quests according to adjustments.

Proposing a structured workflow for dynamic storytelling

Here’s a step-by-step plan:

  • Create a character card for the story assistant.
  • Organize separate files like "World Bible," "Cast," and "Plot Threads/Seed Bank" for better structure.
  • Use "Author's Note" as a dynamic director’s note for scene goals and constraints, placing the most impactful constraints at the end.
  • Incorporate inclusion groups and probability to generate varied side quests.
  • Use outlet macros to integrate a "threads tracker" and "seed bank."
  • Enable vector storage for long documents and ensure the embedding model matches.
  • Implement quick reply buttons for various commands like "side quest generator" and "chapter summary."

Setting up the system for story generation

We need to develop concrete templates to guide the process.

A. For the main prompt, modify the fictional chat to focus on novel writing, using clear instructions, and adjusting macros as needed. B. Create a character card format with necessary fields like name, description, and scenario. C. Define World Info entry templates with key categories. D. Author’s Note template: define scene goals, constraints, and thread updates. This all fits into the system design.

Setting up side plot generation

To create side plots, I’ll use an inclusion group called 'SIDEHOOK' and weight it with a 30% probability to trigger entries. The content of each entry acts as a seed or hook for side quests. I need to add the key "SIDEHOOK" into the Author's Note. For flexibility, terms like "支线" or "偶遇" can be used to trigger the seeds, with regex applied to detect specific conditions like certain locations or nighttime.

Managing thread tracking for continuity

To keep track of story threads, maintain a "Thread Tracker" in the world info entry. After each scene, update the tracker manually to reflect open threads and their status. The user can also use Author's Note and world info entries to add new rules, ensuring changes take immediate effect. To maintain continuity, the Auto-Summary extension can be used, though further documentation may be helpful.

Thought for 1m 25s

Answer

可以的,而且 SillyTavern(ST)这套机制正好适合“你给大纲+世界观/规则,AI负责扩写支线,你再随时导演”的写作方式。核心是把信息分三层放:** 硬设定(长期)→ 当前导演便签(短期)→ 大资料检索(超长期)**,再加一套“支线种子池 + 线索跟踪器”。

下面按「在 ST 里怎么落地」给你一套可直接照做的配置。


1)先做一个“写作专用角色卡”

ST 是围绕 **Character Card(角色卡)**工作的,你完全可以做成“小说合著者/编剧室”,而不是某个具体人物。(SillyTavern)

角色卡建议:

  • {{char}}:比如「编剧室」「小说合著者」「旁白」
  • Scenario(情境/主线):放你的主线剧情概述 + 作品定位(类型、视角、基调、禁区)
  • Example Messages(示例):放 2–4 段“你想要的文风输出样例”(比写规则更管用)(SillyTavern)

这样你后面换模型/换聊天记录,写作“框架”也更稳定。


2)把系统提示词从“聊天”改成“写作”

ST 的 **Main Prompt(System Prompt)**默认是“写下一句对话”,你做写作最好改成“写下一段剧情/场景”。(SillyTavern)

可直接复制的 Main Prompt(偏长篇小说场景):

你是职业小说合著者。根据已提供的世界观、角色设定、剧情大纲与规则限制,写出“下一场戏”。
写作目标:推进主线,同时自然发展至少一条支线或埋下可回收的支线钩子。
约束:不替 {{user}} 做决定;不改写既定设定;若信息不足,用“合理悬置”(埋伏笔/留白)而不是胡编。
输出:只输出正文(叙事+对白),不要解释写作思路。每次结尾留一个推进下一段的悬念点。

你也可以在这里加格式要求(比如第三人称限知、每段长度、对白格式等)。文档也明确:Main Prompt 适合放“全局规则/角色定位”。(SillyTavern)


3)世界观/规则/主角团:用 World Info(Lorebook)管理

World Info就是“会按关键词动态注入的设定词典”,非常适合你这种“世界观+规则限制+人物档案”。(SillyTavern)

3.1 你的世界观应该怎么拆

建议至少拆成 5 类条目(每条尽量短、可独立读懂;因为只有 Content 会被注入上下文)(SillyTavern):

  1. 世界规则(魔法/科技/超能力的硬规则、代价、禁忌)
  2. 阵营与组织(目标、资源、对主角态度)
  3. 地点(地理、风俗、危险、关键 NPC)
  4. 关键物件/机制(神器、合同条款、仪式步骤)
  5. 主角团档案(动机、底线、秘密、人物弧线方向)

3.2 让“规则限制”更强力:插入位置 + 排序

World Info 每条都有:

  • Insertion Order:数值越大越靠近上下文末尾,影响越大(SillyTavern)
  • Insertion Position:可以插在角色定义前/后、作者便签上/下、或指定深度等(SillyTavern)

实操建议:

  • 硬规则/禁区:Order 设高一点(比如 200–400),Position 放 After Char DefsTop/Bottom of AN(看你下面作者便签怎么用)。(SillyTavern)
  • 纯背景百科:Order 低一点,避免每次都压过剧情。

另外,你还可以把某个 World Info 文件绑定到角色卡,让它成为该写作角色的专属设定库(跨对话稳定)。(SillyTavern)


4)你“随时导演/临时改设定”:用 Author’s Note 当导演便签

Author’s Note可以把一段文本按你设定的“位置与频率”插入提示词,非常适合放“本章目标、当下情绪、临时修订、强制约束”。(SillyTavern)

关键点(写作特别好用):

  • Depth 0 = 插在聊天历史最末端,影响最大(SillyTavern)
  • Frequency 1 = 每次都插入(SillyTavern)

建议你固定一个 Author’s Note 模板(每次只改少量内容):

【当前场戏目标】(一句话)
【必须出现/推进的主线点】(1–3条)
【支线要求】本场至少:推进一条既有支线;或埋下一个“可回收钩子”(人物/物件/线索)。
【规则提醒】(最关键的 1–3 条硬规则/禁区)
【口吻/视角】(如第三人称限知/节奏/尺度)

这样你就能“不定时引导剧情走向和调整设定”,而不用把主提示词改来改去。


5)让它“写好支线”:用 World Info 的三招做“支线引擎”

你要的“丰富支线”本质是两件事:(A)持续产出可用支线种子(B)持续跟进并回收。ST 的 World Info 里刚好有三种机制能做这套引擎:

5.1 用 Inclusion Groups 做“支线种子池(每次抽一个)”

World Info 支持 Inclusion Group:同组条目同时触发时,只会选一个注入;还能设权重或“按 Order 最高优先”。(SillyTavern)

做法:

  • 建一组条目:group = SIDE_SEED
  • 每条写一个支线种子:人物困境/传闻/委托/关系裂痕/副反派动机……
  • 触发方式:给它们一个共同 Key(比如 支线种子),然后你在 Author’s Note 里固定加一句“支线种子:支线种子”(等于每次都触发抽卡)。

这样每场戏都会“自动带一个不同的支线种子”,但不会挤爆上下文。

5.2 用 Probability(Trigger %)做“偶发事件”

每条 WI 还可以设 Probability(触发概率),让某些支线是小概率冒出来的“彩蛋线”。(SillyTavern)

例子:

  • “每到夜晚有 10% 触发:目击神秘交易”
  • “提到某组织名时 5% 触发:内部叛徒线索”

5.3 用 Outlet 把“线索跟踪器”稳定塞进提示词

WI 支持 Outlet:条目不自动注入,而是你在 Prompt Manager 里用 {{outlet::Name}} 把它插到你想要的位置。(SillyTavern)

用法建议:

  • 建一个 Outlet 名叫 THREADS
  • 里面放“支线跟踪器(Thread Tracker)”,格式类似:

【支线跟踪器】

  • T1:失踪案(状态:调查中;关键线索:……;下一推进点:……)
  • T2:队友A的秘密(状态:未揭露;触发条件:……)
  • T3:副反派资源线(状态:进行中;……)

然后你每写完一段,就让模型在下一次“顺带更新 THREADS”(或你用 Quick Reply 让它生成更新版,你手动粘回去)。这能显著减少“支线开了就忘”。


6)长设定/旧章节太多放不进上下文:用 Data Bank + Vector Storage(RAG)

如果你有完整世界圣经、时间线、前 10 章文本,建议放进 Data Bank,再用 ST 自带的 Vector Storage 做检索注入(RAG)。(SillyTavern)

要点(写作场景很实用):

  • Vector Storage 默认是关闭的,需要在扩展面板里启用(SillyTavern)
  • 更换 embedding 模型后需要重算向量(否则检索不一致)(SillyTavern)

这能让你把“大而全的资料”交给检索,而不是把上下文塞爆。


7)强烈建议做 4 个 Quick Reply(写作常用按钮)

World Info 甚至能用 Automation ID 去联动 Quick Replies / 脚本(STscripts)。(SillyTavern)
即便你不写脚本,只做按钮也很爽。

我建议你至少做这 4 个“写作按钮”(内容直接当指令发给模型):

  1. 生成 3 个可回收支线钩子

基于当前剧情与设定,给出 3 个“可在后续 3–5 场戏内回收”的支线钩子。每个钩子包含:触发点、牵涉人物/组织、潜在代价、回收方式。

  1. 一致性审校(抓设定冲突)

检查上一段文本与已知设定是否冲突:人物动机、时间线、能力规则、地理与组织关系。列出冲突点并给出最小改动修复方案。

  1. 章节小结(给上下文减负)

用 8–12 条 bullet 总结到目前为止发生的关键事件 + 每条支线当前状态。

  1. 改写当前段(保情节换文风/节奏)

在不改变事件顺序与事实的前提下,改写为更强节奏/更文学/更克制(任选其一)的版本。


你照这套做,会出现的效果

  • 你随时在 Author’s Note 改“导演意图”,模型下一段立刻跟着走(Depth 0 很强)。(SillyTavern)
  • World Info 负责“设定不走样 + 关键词触发补充资料”。(SillyTavern)
  • Inclusion Group + Probability 负责“支线种子持续产出且不重复”。(SillyTavern)
  • Thread Tracker 负责“支线跟进与回收”,避免“开坑不填”。

如果你愿意,把你现在的 世界观/主角团/主线梗概/硬规则(哪怕是要点形式)贴出来,我可以直接帮你:

  • 拆成一套 World Info 条目结构(含 Keys、Insertion Order/Position 建议)
  • 给你一份更贴合你题材的 Main Prompt + Author’s Note 模板
  • 顺手生成一组“支线种子池(SIDE_SEED)”初版(30–50 条,按组分类)

Share this Q&A