世界书是怎么工作的
世界书只会在满足激活条件时把条目放进请求。先理解世界书如何工作,再调整具体设置。
🌍 世界书是怎么工作的?
Section titled “🌍 世界书是怎么工作的?”世界书(World Info / Lorebook)可以理解成一套按需发送给 AI 的资料库。
每个条目通常包含:
- 关键词:什么时候调用这条资料
- 内容:真正发送给 AI 的资料
- 位置 / 深度:把资料塞到提示词的哪里
- 顺序(Order):同类条目同时触发时,谁更靠前、谁更靠后
世界书条目的标题、关键词等本身通常不会发送给 AI,真正插入上下文的是条目的内容。
🔄 什么是「递归扫描」?
Section titled “🔄 什么是「递归扫描」?”递归扫描允许已经触发的世界书条目,再通过其内容中的文字触发其他世界书条目。
有两个条目:
条目 A
关键词:
爱丽丝
内容:
爱丽丝住在月光城。
条目 B
关键词:
月光城
内容:
月光城是一座建立在巨大湖泊中央的城市。
如果聊天中只出现:
爱丽丝今天去了哪里?
首先会触发:
爱丽丝 → 条目 A
开启递归扫描后,SillyTavern 又会检查条目 A 的内容。
因为里面出现了:
月光城
于是继续触发:
月光城 → 条目 B
最后两个条目都会被发送给 AI。
☎️ 可以把它想象成「打电话叫人」
Section titled “☎️ 可以把它想象成「打电话叫人」”世界书里的每个条目,就像通讯录里的一个人:
- 关键词 = 这个人的名字
- 条目内容 = 这个人说的话
- 递归扫描 = 允许已经进群的人继续叫其他人进群
例如:
你喊了爱丽丝
↓
爱丽丝进群
↓
爱丽丝说道:
“我来自月光城。”
↓
系统发现「月光城」也是一个关键词
↓
月光城相关条目也被叫进群
这就是递归。
🚫 「不可递归扫描」是什么?
Section titled “🚫 「不可递归扫描」是什么?”开启 不可递归(Non-recursable) 后:
这个条目不能因为其他世界书条目的内容而被触发。
但它仍然可以被聊天里的关键词正常触发。
☎️ 用刚才的电话比喻
Section titled “☎️ 用刚才的电话比喻”相当于这个人设置了:
「别人不能把我拉进群,我只能由用户亲自叫进来。」
例如:
爱丽丝 → 月光城
正常情况下可以递归触发「月光城」。
但如果「月光城」开启了不可递归:
爱丽丝 → ❌ 月光城
只有聊天内容本身出现「月光城」,它才会被正常触发。
注意:「不可递归」并不等于“这个条目不能继续触发别人”。
SillyTavern 还有另一个独立选项:
防止进一步递归(Prevent further recursion)
它的意思正好是:
这个条目可以被触发,但它被触发以后,不允许再利用自己的内容继续触发其他条目。
所以可以简单记成:
不可递归 = 别人不能叫我。
防止进一步递归 = 我进来以后不能继续叫别人。
如果担心递归链太长,与其把所有条目都设为不可递归,更直接的控制方式还有 最大递归次数(Max Recursion Steps) 和世界书 Token Budget。
📚 世界书条目的插入位置
Section titled “📚 世界书条目的插入位置”最常见的三个位置可以简单理解为:
角色定义之前
↓
角色定义
↓
角色定义之后
↓
聊天记录 / 深度 @D
↓
最新消息
↓
AI 开始生成
其中:
角色定义之前
Section titled “角色定义之前”条目会放在角色描述、场景等角色定义的前面。
角色定义之后
Section titled “角色定义之后”条目会放在角色描述、场景等角色定义的后面。
深度 @D ⚙️
Section titled “深度 @D ⚙️”把条目直接插进聊天记录的指定深度。
其中:
深度 0
最靠近提示词底部。
数字越大,位置越向较早的聊天记录移动。
因此可以简单记成:
深度越小 → 越靠近 AI 即将生成的位置。
🥪 可以把整个提示词想象成一个三明治
Section titled “🥪 可以把整个提示词想象成一个三明治”例如:
【角色定义之前】
────────────
【角色定义】
────────────
【角色定义之后】
────────────
【较早的聊天记录】
【深度 @D 4】
【聊天记录】
【深度 @D 3】
【聊天记录】
【深度 @D 2】
【聊天记录】
【深度 @D 1】
【最新聊天】
────────────
AI 开始回复所以:
角色定义之前像是放在角色卡前面的说明书。
角色定义之后像是贴在角色卡后面的补充说明。
深度 @D则像是直接把一张纸条塞进聊天记录里面。
而且:
@D 的深度越小,这张纸条通常就距离 AI 下一次生成越近。
🔢 「顺序 Order」怎么看?
Section titled “🔢 「顺序 Order」怎么看?”当多个条目位于相同类型的位置时,可以使用「顺序」决定它们的前后关系。
SillyTavern 当前规则是:
Order 数值越大,最终插入的位置越靠后。
例如:
角色定义之前[顺序 10]角色定义之前[顺序 35]发送给 AI 时就是:
[顺序 10]
[顺序 35]再比如:
角色定义之后[顺序 1]角色定义之后[顺序 100]结果就是:
[顺序 1]
[顺序 100]所以最好记成一句话:
Order 越大,同位置下越靠后。
官方文档也明确说明,例如 Order 100 会出现在 Order 250 前面,并指出越靠后的条目通常对输出具有更大的影响。
🧭 深度 @D 的排序
Section titled “🧭 深度 @D 的排序”深度首先决定条目被插入聊天记录的哪一层。
例如:
深度 @D[深度 4]深度 @D[深度 3]深度 @D[深度 2]深度 @D[深度 1]按提示词从前往后看,大致就是:
深度 4↓深度 3↓深度 2↓深度 1↓AI 即将生成因此:
Depth 越小 → 越靠后、越靠近最新消息。
如果多个条目拥有相同深度,再由 Order 决定它们在该位置中的先后。
例如:
深度 1[顺序 10]深度 1[顺序 50]深度 1[顺序 500]最终就是:
深度 1[顺序 10]深度 1[顺序 50]深度 1[顺序 500]🧠 最简单的记忆方法
Section titled “🧠 最简单的记忆方法”把 Position、Depth、Order 想象成寄快递:
Position(位置)
决定:
「送到哪个小区?」
角色定义之前、角色定义之后、聊天记录……
Depth(深度)
决定:
「送到聊天记录里的哪一栋楼?」
数字越小,越靠近最新消息。
Order(顺序)
决定:
「同一栋楼里的快递怎么排?」
Order 越大,越靠后。
所以:
Position 管大位置,Depth 管聊天中的位置,Order 管同位置条目的先后。
⚠️ 关于「越靠后越重要」
Section titled “⚠️ 关于「越靠后越重要」”通常来说,越靠近 AI 即将生成的位置,内容越容易对下一条回复产生明显影响。SillyTavern 官方文档也将「角色定义之后」描述为比「角色定义之前」影响更大,并说明较大的 Order 会使条目更靠近上下文末尾,从而具有更大的影响。
因此,非常重要的临时规则、当前状态、回复格式要求等,经常适合放在较浅的 @D 位置。
但不要理解成:
❌「提示词最前面和最后面的内容一定最强。」
不同模型对长上下文的注意力分布并不完全相同,也不存在 SillyTavern 保证的「首尾必定最强」规则。
教程里更准确的说法是:
通常越靠近提示词末尾、越靠近当前对话的位置,对下一次生成的直接影响越明显;但实际效果仍取决于所使用的模型。
下一步阅读:世界书设置。