Labs · Prompt 装配透视
预设、卡、世界书拖进来,
看这一轮 prompt 是怎么拼出来的。
「为什么我的预设没生效」「词条触发了怎么没进上下文」「顺序到底谁说了算」——酒馆玩家的三大悬案, 病根都在装配这一步,而酒馆自己只给你一坨折叠 JSON。把预设、角色卡、世界书拖进来(都可选), 这里重演点发送那一刻的完整装配:每一段按来源着色、每条词条有下落、token 预算逐层往下扣。 语义按 SillyTavern 1.18 源码逐函数移植,全程本地运行。
预设
可选拖入或点击选 JSON
没放预设 = 按酒馆内置默认编排装配(main → 世界书 → 卡字段 → 历史 → PHI)。角色卡
可选拖入或点击选 PNG / JSON / charx
世界书
可选拖入或点击选 JSON
把预设、角色卡、世界书拖进上面三个位子——都可选,放什么装什么。
或者先看演示:
不开酒馆,怎么看一轮 prompt 的真实结构?
把手头的预设 JSON、角色卡(PNG/JSON/charx)、世界书 JSON 拖进上面三个位子,再填一句要发的话: 装配结果按发送顺序列出每条消息,点开任何一条能看到它由哪些段拼成、每段从哪个文件的哪个字段来、 宏展开前后长什么样。顶部的全景色带按 token 占比画出整个上下文窗口的构成——预设块、卡字段、 世界书、历史各占多少,一眼看完。改一个输入,整个装配结果实时重排。
这个工具怎么来的
装配语义按 SillyTavern 1.18 源码逐函数核定移植:prompt_order 即最终消息顺序、marker 填充与缺席追加(preparePromptsForChatCompletion)、卡 system_prompt 替换 main(含 {{original}} 与 forbid_overrides)、@深度注入的 order 组与角色合并规则(populationInjectionPrompts)、历史从最新往回的预算装填(populateChatHistory)、示例块整段 all-or-nothing(populateDialogueExamples)、世界书八个注入位的分桶与 order 升序拼接(checkWorldInfo 收尾段)。
词条激活引擎与本站世界书触发模拟器共用同一份实现(对齐 App 侧 60+ 单元测试锁定的激活器);宏引擎与宏演练场共用;token 估算与角色卡体检器同口径。透视台把三门散件装成一台整机,外加装配层自己的 85 条金标自测(主干顺序、卡覆盖、注入深度、预算裁剪、真实社区文件结构不变量)。2026-07 移植。
它做不到什么
世界书自身的 token 预算裁剪不模拟(酒馆默认给词条上下文 25% 的预算,超了会按优先级砍)——激活词条超水位时页面会提示,但结果按全部注入展示。正则脚本不进装配(去正则测试器调它);sticky/cooldown 是跨轮状态,单次模拟按无状态处理。
只模拟 Chat Completion 轨的 normal 生成:群聊、continue/impersonate/quiet、第三方扩展注入(总结、向量记忆)、合并连续 system 消息的开关都不在面里。酒馆版本仍在漂移,边角行为以你手上的版本为准——本页钉在 1.18 语义。
token 数是字符占比估算(中文约 1.6 字/token、英文约 4 字符/token,每条消息另计 4 token 格式开销),不是模型真分词器——预算边缘的裁剪判定可能与真实运行差一两条消息。
常见问题
为什么我的预设块像没生效一样?
最常见的四种,这个工具都会直接标出来:①块定义了但没排进 prompt_order——按酒馆语义它完全不生效,透视台把它列在「预设块诊断」里;②块在编排里被停用;③块被设成 @深度注入(injection_position=1),它不在主干位置、而是插进聊天历史的倒数第 N 条,位置跟你想的不一样;④main 块被角色卡的 system_prompt 悄悄替换了——这是酒馆默认开启的行为(prefer character prompt),透视台会给替换后的 main 打上「卡覆盖」徽标。
世界书触发了,为什么内容还是没进 prompt?
触发和送达是两回事,中间还有四道坎:预设把 World Info 占位停用了(内容整个丢弃);占位根本不在编排里(内容会被追加到 prompt 最末尾——酒馆的真实行为,多半不是作者想要的位置);@深度词条注入后在 token 装填时被裁掉;编排里没有 Chat History 占位(@深度注入连落点都没有)。透视台给每条词条一个下落报告:进了哪、卡在哪一道。
「@深度注入」到底插在哪?
从最新一条消息往回数:深度 0 贴在最末,深度 2 隔两条聊天消息,以此类推——注入消息本身不占深度位。同深度、同 order 组、同角色的多个注入会合并成一条消息(预设块在前、世界书/作者注在后);不同 order 组分开,数值大的组排前面。这套规则全部按 SillyTavern 1.18 的注入代码复刻,你可以在装配结果里看到每条注入的实际落点。
模拟结果和真实发送会完全一致吗?
主干语义一致:prompt manager 编排顺序、marker 填充、卡覆盖 main/jailbreak、世界书全部注入位(before/after/@深度/示例区/作者注位/outlet)、宏展开、token 预算装填顺序,都按 SillyTavern 1.18 源码逐函数核定。有几层刻意不模拟:世界书自身的预算裁剪(默认上下文 25%,超水位会给提示)、正则脚本、跨轮的 sticky/cooldown、群聊、continue/impersonate 等特殊生成类型、第三方扩展注入。token 数是字符占比估算不是真分词器。完整清单见下方「它做不到什么」。
我的预设和卡会被上传吗?
不会。解析、词条扫描、装配全在你的浏览器里跑,页面加载完断网也能用。这也是它敢让你直接拖整本世界书进来的原因——没有服务器在中间。