预设兼容:按真实抓包对齐装配与包装层,补上声明式工具与预设正则。
- 装配只认 prompt_order.enabled;squash_system_messages 只合并相邻 system(新增 system 档,连接符按酒馆用单换行)
- 包装层:new_chat_prompt、示例对话(new_example_chat_prompt + <START> 切段 + name)、角色卡三块与 personality_format/scenario_format、{{user}}/{{char}} 取值、任务契约并进预设条目
- 工具协议:按 ToolBindings / 伪工具协议数据声明真 tools(presetToolPolicy=preset),工具描述用到的条目不再重复作为消息发出
- 正则:promptOnly 作用于对话历史(含 depth 过滤)、写入时脚本改写回复;{{//}} 注释按配平扫描
- tools/st-request-diff:真假上游抓包对比工具、三份预设的机制结论与实测报告
This commit is contained in:
@@ -46,6 +46,9 @@ Worker / skill 执行时,Runtime 将黑板 tag 与固定体裁说明拼成 LLM
|
||||
「对话.历史」是排序表中的普通标签,按 projection 动态裁剪后插入
|
||||
```
|
||||
|
||||
「对话.历史」不只是文本块:装配时它被切成**真多轮 message[]**(user / assistant 轮)进预设的 `chatHistory` 洞;
|
||||
分袋时它之前的块进 `worldBookBefore`、之后的进 `worldBookAfter`。
|
||||
|
||||
`order 0` 建议为槽位人设(`worker.persona`)。
|
||||
`tier` 仅缓存提示;权威顺序是投影排序表。
|
||||
|
||||
@@ -183,19 +186,41 @@ contextIsolation: none | role_pov | blind_review
|
||||
|
||||
---
|
||||
|
||||
## 9. 拼接结果形态(目标)
|
||||
## 9. 拼接结果形态
|
||||
|
||||
worker 先给出**分段结果**,再由预设决定最终 `messages[]` 的形状:
|
||||
|
||||
```text
|
||||
system:
|
||||
{shared-context}
|
||||
{worker SKILL body}
|
||||
{固定输出协议}
|
||||
assembleWorkerContextSections()
|
||||
├─ chunks: block|history|turn (按投影排序表顺序)
|
||||
└─ tail: 本步任务 / 定稿摘要 / 待改底稿 …
|
||||
|
||||
user:
|
||||
{按 segment 顺序格式化的 Markdown 或结构化块}
|
||||
workerContextToBags()
|
||||
├─ before → presetPack.worldBookBefore
|
||||
├─ history → presetPack.history【真多轮 message[]】
|
||||
├─ after → presetPack.worldBookAfter
|
||||
├─ turn → presetPack.currentTurn
|
||||
└─ postTurn → presetPack.postTurn
|
||||
|
||||
PresetLlmProvider(options.presetPack)→ assemblePlayWorkerMessages()
|
||||
```
|
||||
|
||||
实现:`src/skills/context-segments.ts` → `assembleWorkerContext()`;由 `src/worker/executor.ts` 调用。
|
||||
发出去的形式(有历史时):
|
||||
|
||||
```text
|
||||
system 预设条目(main / 文风 / 破限)
|
||||
system worldBookBefore:契约 + 史前资料
|
||||
system worldBookAfter:变量 / 真值
|
||||
assistant 历史轮…
|
||||
user 历史轮…
|
||||
user currentTurn:用户.最新输入
|
||||
system postTurn:本步任务
|
||||
```
|
||||
|
||||
`flat`(`assembleWorkerContext()` 的返回值)仍保留,作为无 historical 分段时的单包形式;
|
||||
`contextSegments` 里没有 `对话.历史` 的 worker(创作期产出 JSON 那些)继续走单包。
|
||||
|
||||
实现:`src/skills/context-segments.ts` 与 `src/preset/play-frame.ts`;由 `src/worker/executor.ts` 调用。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user