Labs · 世界书触发模拟
贴一段对话,
看哪些世界书条目会被触发。
「为什么我的世界书没触发」是世界书第一痛点——以前的调试方式是改一下、开一局、看效果。把世界书 JSON 和最近几轮对话贴进来:命中的关键词标出来,constant 常驻标出来,递归激活画出链条,概率条目还能重掷。 引擎按 SillyTavern 1.18 的扫描激活语义移植,全程本地运行。
世界书
把世界书 JSON 拖进来,或点击选择
点这里选择世界书 JSON 文件
支持酒馆世界书导出 JSON · 角色卡 JSON(自动取内嵌世界书)对话文本
加载世界书、贴上对话,触发结果会出现在这里。
不开一局新聊天,怎么测世界书触发?
把世界书 JSON 和最近几轮对话贴进上面的模拟器:每个条目都给判定和理由——命中的关键词标黄、 副关键词四种逻辑(AND_ALL / NOT_ANY 等)翻译成人话、递归链画出来、概率条目可以反复重掷。 引擎按 SillyTavern 1.18 的扫描激活语义移植、全程浏览器本地跑,改一条词条几秒钟就能验一轮, 不用再拿真实聊天当试验田。
这个工具怎么来的
触发引擎从 Foreverse App 的世界书激活器逐行为移植——那套实现对齐 SillyTavern 1.18 的 checkWorldInfo,被 60+ 条单元测试锁定行为。网页版把其中的扫描与激活相位搬进浏览器:关键词匹配(大小写、整词边界、中文关键词、正则关键词)、secondary keys 的 AND_ANY / AND_ALL / NOT_ANY / NOT_ALL 四种逻辑、constant、递归扫描(含 excludeRecursion / preventRecursion / delayUntilRecursion 的层级状态机)、概率掷骰、同组互斥,全部按同一套判定跑。
移植的行为对齐用的是 App 侧的单元测试用例集:把代表性用例(含中文关键词、大小写覆盖、副关键词四逻辑、递归链、装饰语法)搬成网页引擎的自测,全部通过才上线。2026-07 移植。
它做不到什么
它模拟的是「哪些条目会被激活」,不是「最终注入了什么」。真实聊天里激活之后还有 token 预算裁剪——预算不够时低优先级条目会被挤掉;还有注入位置的排序、以及跨轮的 sticky / cooldown 计数。这三样需要会话状态,单次模拟给不了,带这些设置的条目会打上「按无状态模拟」的提示徽标。
带角色过滤(characterFilter)的条目在这里按「不过滤」处理——网页没有「当前是谁在说话」的语境。另外不同前端对递归和概率的实现有差异,这里按 SillyTavern 1.18 语义。
常见问题
为什么我的世界书条目没触发?
最常见的四个原因,这个工具都会直接标出来:①关键词没出现在扫描窗口里——默认只扫最近 4 条消息,关键词出现在更早的楼层不算数;②副关键词(secondary keys)条件不满足——AND_ALL 要求全部出现,NOT_ANY 要求全都别出现,方向经常被记反;③条目被禁用或是没有关键词的死条目;④概率没掷中——带 30% 概率的条目十次里七次不触发是正常行为。
递归触发是什么意思?
条目 A 被对话触发后,A 的内容本身会进入下一轮扫描——如果 A 的正文里出现了条目 B 的关键词,B 也会被激活,这就是递归。写世界书时可以故意利用它做「设定链」:聊到灯塔就带出灯塔的看守人,再带出看守人的秘密。这个工具会把递归链画出来(「由某某条目的内容触发」),这是肉眼在酒馆里看不到的信息。
模拟结果和真实聊天里会完全一致吗?
扫描和激活的判定一致(关键词匹配、大小写、整词、secondary 逻辑、递归、概率、组内互斥都按 SillyTavern 1.18 语义移植)。但真实运行时还有三样这里不模拟:token 预算裁剪(激活太多时低优先级条目会被挤掉)、注入位置的先后顺序、跨轮的 sticky/cooldown 状态。带这些设置的条目会打上提示徽标。
我的世界书会被上传吗?
不会。解析和模拟全在你的浏览器里跑,页面加载完断网也能用。这也是为什么它能随便喂几万字的世界书——没有服务器在中间。