Files
writing-agent/tools/st-request-diff/cmp-msg.mjs
T
chenmoranzhi 9dc927282f 预设兼容:按真实抓包对齐装配与包装层,补上声明式工具与预设正则。
- 装配只认 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:真假上游抓包对比工具、三份预设的机制结论与实测报告
2026-10-23 00:13:08 +08:00

13 lines
671 B
JavaScript

// 逐字对比两份抓包里指定下标的消息,打印差异位置。
import { readFileSync } from "node:fs";
const [a, b, idx] = process.argv.slice(2);
const get = (file) => JSON.parse(JSON.parse(readFileSync(file, "utf8")).body).messages[Number(idx)].content;
const left = get(a);
const right = get(b);
console.log("ST " + left.length + " 字 / WA " + right.length + " 字");
let i = 0;
while (i < Math.min(left.length, right.length) && left[i] === right[i]) i++;
console.log("首个差异在 " + i);
console.log("ST: " + JSON.stringify(left.slice(Math.max(0, i - 40), i + 60)));
console.log("WA: " + JSON.stringify(right.slice(Math.max(0, i - 40), i + 60)));