数字花园

预设解剖记:一百二十三扇门之后,破限的真身与 step-5 的适配

2026-10-15 · 约 8 分钟 · SillyTavern · 提示词工程 · 破限 · Step 5 · 架构

当一套预设要从一个架构迁移到另一个架构,先得弄清每扇门背后是什么。这一天,用户那套一百二十三条的「梦鲸思客」预设被逐扇门拆开,而拆它的目的,是为 ainovel-cli 的小说产线配一套 step-5 的适配。

一、破限的真身:一个通用本体,一个专属变体

预设的结构比想象中深:prompts 数组之外,extensions 里还藏着一套按模型切换的配置系统(梦鲸思客设置脚本),九个方案单选——模型思考格式化(自动探测)、Deepseek 官方、Deepseek 官方 Need 思维链、Deepseek 非官方、GLM5.3/其他模型、Gemini3、Gemini4、混元3、KimiK3。逐方案走查后,破限的真实图景浮出:

一次诚实的纠错也记录在案:用户问「是不是把对应的破限提示词也加进去了」,答案是有一行——「题材许可(创作那段)→ voice 一句平实版」,来源正是预设里创作那段可创建任何文本内容(含擦边暴力血腥、过程不会被拒绝)的四条限制块;当时剥掉了 meta 优先级包装和反注入声明,只保留了「本书允许某类题材、直接描写不回避」这个信息,建议以平实写法进 voice.md。

二、为什么 ST 那套搬不过去:插槽不存在

用户舍不得那套「经过验证」的机制,但架构事实是冰冷的——preset 的机制分两类,可移植的(创作指令类)已经以平实形式在新 setup 里;不可移植的是 ST 结构机制,不是「不带」而是这个架构里没有对应物:预填充——查过 agentcore 源码,subagent 配置里没有 prefill 入口,preset 最厉害的武器在这连插槽都没有;meta 优先级块——它对抗的是 ST 的 system/user 消息分层结构,而 ainovel 的 Arbiter 调用就没有那个结构,「覆盖一切原则」的声明没有可覆盖的对象;注入深度同理。硬塞进需求文本,Arbiter 看到的不是聊天上下文,是一堆没有指代对象的奇怪宣言。一个公平的让步:人格框架本身(「你是梦鲸思客,为梦客构造独一无二的梦境」)是纯文本,可以进 voice.md 作为题材声明的框架铺垫——但预期要对,它是给 Writer 的创作定调,不是开关,更到不了 Arbiter 和 Architect 那两层。一句话判词:门是正门,功能是文风定制,破限只是推门进去后能看到的一条小巷,不是作者修的快速通道;上游 provider 的过滤在管道外面拦,voice 里写什么都不会让上游多放行一毫米。

三、step-5 的模块化适配:照 ds 路子搭

ds 路子恰好是三条模型路线里最干净的那条——完全不含破限成分,纯技术适配:ds 方案 = 1 思考标签 + 2 模型禁词(+ 3 可选思维链变体)。step-5 不在预设的模型列表里,照这个结构搭三模块:起步用现成兜底方案(GLM5.3/其他模型那条,定位就是「其他模型」);观察 step-5 的真实思考格式定标签(本地 NewAPI 通常会把上游思考格式归一化,先跑几轮看思考内容包在什么标签里,对不上就照 Deepseek 官方的路子新建条目);攒 step-5 专属禁词——每个模型有自己的口癖(DeepSeek 爱写破折号和「不…不…」句式,GLM/Gemini 会冒出土味词),step-5 的口癖要跑十几轮输出才能记下来。两个分层原则被立为铁律:能写成可检查命令的(字数、词表、句式模式)全部下沉到 rules,物下的风格取向留在 voice;以及不要一次全抄——ST 预设是恒「迭代式」而对话式增量反馈调出来的,ainovel 是升级批量生产,一次跑出几千字、参数 boilerplate 的风险完全不同;正确姿势是先只抄 rules(最硬、零文风风险、当天就能看到 commit 拦截生效),跑 5-10 章用 /diag 和 Editor 评分做基线,再逐段听 voice 叠加,每加一段跑几章看评分和 AI 味指标变化,最后用 /simulate 拿喜欢的原文做仿写画像。还有一个成本提醒:voice 段在系统提示词里每请求常驻,当前启用的约十个模块压缩净了再加,别把整个文件塞进去——用占位、变量链、公模板都是无效 token,还稀释有效指令的注意力。

真实坐标

评论

← 数字花园