那本 237 条世界书的卡,是怎么被我们修好的

一位创作者的世界书写了 237 条,AI 第三轮就把师父认成仇人。这篇是完整排障记录:从关键词扫描、别名覆盖、token 预算到递归触发,一步步找出四种「无声失效」,顺带得出几条可复用的世界书写法。附症状排查表。

一排老式图书馆卡片抽屉,其中一格拉开,几张写满字的索引卡飞向旁边摊开的书

卡是测试期一位创作者发来的:237 条世界书,王国史、九大门派、主角前世今生,一看就是几个通宵的产物。 她的原话是「设定我全写了,它凭什么还乱编」。实测确实惨,第三轮对话,模型把女主的师父认成了她的仇人。

我们花了一个晚上把这张卡修到能用。过程值得记下来,因为它把世界书所有的「无声失效」踩了个遍。

先讲机制,不然排障没法看懂

主流实现(SillyTavern 及兼容应用)里,世界书不是模型的记忆,是一套按需递档案的机制。你每发一条消息, 系统扫描最近若干轮对话,拿每个条目的关键词去匹配;命中的条目注入到发给模型的提示词里;注入总量受 token 预算约束,超了就按优先级丢弃;被注入的内容还能再触发别的条目,这叫递归。细节在SillyTavern 官方文档里, 但这四步足够看懂下面的排障了。

关键推论:条目失效不报错。模型不会说「我没收到档案」,它只会自信地编。所以排障只能从注入侧一层层查。

第一层:师父为什么变仇人

查「李云山」这条。条目在、开关开着、关键词写的是全名。然后翻聊天记录——对话里从头到尾没人叫过全名, 全是「师父」「老李」「掌门」。关键词一个都没覆盖,条目从未触发过。这张卡 237 条里有 60 多条是人物, 几乎全只写了全名。补完别名(师父/老李/李掌门/掌门都算),当晚这类错误消失了一半。 后来统计我们经手的「不触发」求助,别名漏写占了超过一半,比任何高级设置都常见。

第二层:补完别名还是错

另一半错误更阴。有条「惊蛰剑」的档案写了 800 字,文笔很好,像小说正文。问题有两个。 一是它一个人吃掉了预算的三分之一,排在它后面的低优先级条目整批被静默丢弃——这就是「聊得越久越失效」的来源, 预算是隐形的,塞满了不会响。二是模型面对 800 字抒情散文,反而抓不住「这剑是镇派之宝、认主、剑灵姓阮」 这三个事实。我们把它压成 150 字电报体,同一个模型、同样 20 轮追问,设定命中肉眼可见地变好。 档案是给模型看的参考资料,不是给读者看的正文,这句话后来成了我们改卡的第一原则。

第三层:时灵时不灵

还剩一类玄学症状:同一个设定,有时对有时错。这个查起来最简单——关键词在更早的楼层出现过, 但扫描深度只有 4 轮,聊出扫描窗口就等于没聊过。两个修法:把真正每轮都该在场的世界观根基 (魔法体系规则、时代背景)升为常驻,其余靠递归续命——在相关条目内容里主动写出彼此的关键词, 「青云门」的档案里提到「惊蛰剑」,聊到门派时剑的档案自动跟上。递归用好了,设定会自己长出脉络。 常驻别贪多,每一条都是每轮必付的房租,超过五条就该重新审视。

排查表(收藏这个就够了)

症状最可能的原因修法
设定完全没生效世界书没绑定到角色/会话,或全局开关没开先确认绑定关系,再看单条目开关
有时生效有时不生效关键词只在更早的楼层出现,扫描深度不够提高扫描深度,或把该设定升为常驻
前几轮生效,聊久了失效token 预算被吃满,低优先级条目被丢弃压缩条目内容,下调不重要条目的优先级
触发了但模型不采信条目内容太长太文学,关键信息被淹没改电报体档案,事实前置
改了条目没变化改动只存在编辑器里,会话仍用旧缓存重新发送一条消息,让系统重新扫描注入

这张卡最后怎么样了

237 条拆成了 310 多条(一条一事,「北境王国」和「北境王国的现任国王」是两条),人物条目全部补齐别名, 长条目全部电报化,常驻从 11 条砍到 4 条。创作者后来又跑了一次 20 轮测试,师父还是师父。 她的世界书没有白写——白写的只是没被递到模型眼前的那部分。

顺带说下我们这边:Foreverse chara_card_v3 规范完整支持世界书导入, 含 V3 decorators,触发、预算、递归的行为和桌面端酒馆对齐。你在电脑上调好的书,搬到手机上行为一致, 不用重新踩一遍这篇文章。

常见问题

世界书和角色卡的 description 有什么区别?

description 是常驻的:每一轮对话都完整占用上下文,适合放角色的核心人设。世界书默认是按需的:只有对话里出现关键词才注入对应条目,适合放数量大、但不是每轮都用得上的设定——地名、支线人物、历史事件。把所有设定都塞进 description,等于每轮都在为用不上的信息付 token。

世界书条目没触发,怎么排查?

按顺序查四点:一,关键词是否真的出现在最近几轮对话里(触发靠扫描最近消息,不是全文);二,别名有没有覆盖——对话里叫「老李」,关键词只写了「李云山」就不会触发;三,扫描深度是否太浅,关键词出现在更早的楼层就扫不到;四,token 预算是否被前面的条目吃满,后面的条目被静默丢弃。

一本世界书多大算太大?

条目数量本身不是问题,几百条也没关系——问题在单轮注入量。触发式条目每轮实际注入的总量受 token 预算限制,常驻(constant)条目则每轮必进。经验值:常驻条目控制在 5 条以内,单条内容 200 字以内;触发条目单条不超过 300 字。写满 2000 字的「王国编年史」不如拆成 10 条各管一段。

V2 和 V3 的世界书有什么区别?

V3(chara_card_v3)在条目上增加了 decorators——以 @@ 开头的指令,可以精确控制注入深度、触发条件等行为,世界书的表达力更强。V2 卡的世界书在支持 V3 的应用里可以正常使用,反过来 V3 特有的 decorators 在旧应用里会被忽略。导入前确认应用支持的规范版本,能省掉很多「为什么行为不一致」的困惑。

有想法或问题?来 Discord 聊聊 →

世界书塞了 237 条设定,AI 还是叫错名字:一次完整的排障记录 · Foreverse · 新梦