在此之前 `toApiMessage` **只回传文本块**,工具块整块丢弃。代价: - 模型每轮从零开始,会重复调同一个工具; - 它上一轮唯一能看到的只有**自己说过的话** —— 而那正是"背出成品句子"的温床。 现在按 blocks 原始顺序拼(⛔ 不把工具记录堆到末尾:先查什么、再说什么本身是脉络): - 工具调用 → `〔调用 名字 {关键参数} → 结果摘要〕`,args 截 120 / result 截 220 - 失败 → **只留第一行且切掉堆栈**。⚠ ️ 光靠长度截不住(实测:堆栈就在前 120 字里, 回归当场红了)—— 要按结构剥,` at ` 之后的是给开发者看的,进历史纯属污染 - 卡片 / 确认单 → 只留一个存在性锚(内容是渲染产物,复述没意义且很长) 配套改提示词:原来那条「⛔ 不许从上文抄数字」是为"历史里没有数字"写的, 现在自相矛盾了。改成**条件对得上才能用**:摘要行里写着当时传的参数, 主管一换条件旧数就作废 —— 这正是"同一批人报出 12、17、13、70"的由来。 测试:web 20 passed(新增 7 条分层回传回归,含肥载荷截断与堆栈剥离); service 1237 passed;tsc / build 干净。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .claude | Loading commit data... | |
| .design-sync | Loading commit data... | |
| apps | Loading commit data... | |
| clickhouse/config.d | Loading commit data... | |
| deploy | Loading commit data... | |
| docs | Loading commit data... | |
| packages | Loading commit data... | |
| scripts | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gitlab-ci.yml | Loading commit data... | |
| .npmrc | Loading commit data... | |
| .prettierrc | Loading commit data... | |
| README.md | Loading commit data... | |
| docker-compose.expose.yml | Loading commit data... | |
| docker-compose.managed.yml | Loading commit data... | |
| docker-compose.prod.yml | Loading commit data... | |
| docker-compose.yml | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| liu.cjs | Loading commit data... | |
| package.json | Loading commit data... | |
| pnpm-lock.yaml | Loading commit data... | |
| pnpm-workspace.yaml | Loading commit data... | |
| tsconfig.base.json | Loading commit data... | |
| turbo.json | Loading commit data... |