省 Token 纪律(token-lean)
目标:不降低产出质量,把动态上下文(工具结果 + 对话历史)的 token 砍掉 50-60%。
静态系统提示(技能清单 / 连接器状态 / 身份文件)是平台层,本纪律改不动,也不去碰。
正确性底线(优先于一切省 token 规则)
- 截断后必须标注"仅预览前 N 行",禁止基于残缺内容下结论。
- 信息不足 → 补精准查询,不猜。
- 关键事实存疑时,允许 1 次低成本验证(grep 行号/单行命令),不受"防重复读"限制。
豁免场景(完整读取优先,不启动截断纪律)
以下场景以完整性为第一优先级,不执行本纪律的截断/分段读取,主动全量读取;除非用户明确说"省着读":
- 整份合同/协议审阅(法律文本逐字核对)
- 全文精读 / 逐字校对
- 法规、监管文件全文
- 论文、学术文献全文
- 长文档翻译
- 代码完整 review(用户明确要求审全部)
- 需逐字确认的敏感内容
最易翻车 5 连(反例速查)
- 整读 3000+ 行文件(应先
wc -l或limit分段)。 - 裸 grep 全目录,无
head/类型限定。 - 子代理摘要写 5000 字(超上限,见铁律 6)。
- 主线程自己跑 ≥3 步探索链,不派子代理。
- 拿"没读全"当"读全"下结论。
铁律 1 · 子代理隔离(最大一刀,单轮综合可砍 30-50%;单项工具输出实测 95-99%+,见实测基线)
凡是会产生大量中间步骤的任务,一律丢给子代理,主线程只收一段摘要。
- 探索/检索/读代码库 → 用
Explore子代理(thoroughness: quick/medium/very thorough)。 - 多步研究/网页抓取汇总/批量文件分析 → 用
Agent(general-purpose),description写清"只回摘要,不回中间过程"。 - 主线程禁止自己跑 grep+Read+WebFetch 的长链(≥3 步探索就改派子代理)。
- 子代理 prompt 必须自包含:说清文件路径、要找什么、要回什么粒度的结论。
- 子代理返回的摘要若信息不足,再针对性补一次精准查询,不整轮重跑。
> 原理:子代理上下文独立,结束后只回摘要,主线程上下文近乎不涨。
铁律 2 · 工具输出截断(每步省 10-25%)
任何可能吐大量的调用,先截断再读。
Read:默认带limit(先limit: 60看结构),长文件用offset/limit分段,不用整读。Grep:用head_limit限行数;先靠行号定位,再Read精确几行,不整文件拉。Bash:拿不准输出量就先| head -N——截断本身就是判断,不额外wc探测。- 命令输出超 ~200 行:先要摘要或报错片段,不把全量塞回上下文。
WebFetch:prompt 明确"只抽取 X 字段/要点",不让它回整页 markdown。- 图片/PDF/大附件非必要不
Read(1 张图 ≈ 1-2k token):先问用途或只看文件名/尺寸。
铁律 3 · 防重复读取(省 5-15%)
上下文里已有的,绝不二次拉。
- 同一文件本会话已 Read 过:改
Edit/局部Read(offset),不整文件重读。 - 同一 URL 已 WebFetch 过:用已得结论,不重复抓。
- 子代理已检索过的内容:直接采用其摘要,不主线程再跑一遍。
- 判断"是否已读过"看本回合已有的 tool result,不靠记忆。
- 例外:存疑/关键事实允许 1 次低成本验证(见正确性底线 3)。
铁律 4 · Checkpoint 压缩(随会话长度复利)
长任务(≥8 步或跨多轮)设压缩点。
- 每完成一个阶段,用一段紧凑摘要覆盖该阶段的中间过程,不无限追加历史。
- 摘要只留:已决定的结论、关键路径、未决项、下一步。丢细节与重试噪声。
- 多轮会话开场先复述"当前进度摘要",再续做,不把整段旧对话重新展开。
铁律 5 · 重技能懒加载
- pdf / pptx / tencent-docs / tencent-local-office-edit / sheetagent 等重型 skill,按需才调
Skill,不预载。 - 临时一次性调用(如单次格式转换)做完即止,不留常驻。
- 本纪律需被触发才加载;已固化到用户级
~/.workbuddy/MEMORY.md偏好,全程生效。
铁律 6 · 输出侧压缩(最终回复也占上下文)
- 最终回复:表格 > 列表 > 段落;一句话能说完不写三段。
- 子代理返回格式固定四段:结论 / 关键路径 / 未决项 / 下一步,且硬上限 ≤300 字 / ≤40 行,超出判不合格退回重写。
- 命令的报错横幅/成功噪音(如 npm 的无关警告)直接忽略,不逐字转述。
铁律 7 · 轻工具降级
- 轻工具优先:
Grep>Read整读;Glob>find;WebSearch摘要 >WebFetch整页;单文件/短文件才直接Read。 - 定位用 grep 行号,取数用
offset/limit,绝不"先整读再找"。
铁律 8 · 失败快停 + 合并往返
- 偶发错误重试 ≤2 次(网络类抖动 ≤3 次),仍失败换方案;同一错误反复出现才报告,不早放弃。
- 独立工具调用并行发(一次多调用),不串行排队。
- 长命令后台跑(run_in_background),期间干别的,不空等轮询。
自检度量(可操作版)
- 单轮自查:复盘本轮工具输出,单步 >50KB 或单轮合计 >100KB 即违规,下轮改正。
- 对照法(可选):两个独立会话跑同一任务,对比 tool result 总量;常规执行不用它。
- token 换算口径:中文 1 字 ≈ 1 token,英文 ≈ 4 字符 = 1 token,混合按比例估,别用"字节÷2"一刀切。
实测基线(2026-08-16,样本 D:/AI/Claw,5 个代表步骤)
| 档位 | 5 步总输出 | 粗估 token | 相对本纪律 |
|---|---|---|---|
| 零纪律(整读 + 全目录递归/grep) | 66.5 MB | ≈3300 万 | 11276× |
| 普通不守纪律(单层 ls + 限定 grep + 整读 3 页) | 1.03 MB | ≈51.6 万 | 175× |
| token-lean(Glob/Grep+head20/分段读 60 行/摘要) | 5.9 KB | ≈3000 | 1× |
- 单项工具输出可省 95-99%+;全会话平均(含历史/系统提示/必要输出)落点 50-60% 是保守值。
- 样本为 HTML(ASCII 为主),"字节÷2"的 token 粗估偏乐观,实际 token 更低,量级结论不变。
- 零纪律的 66.5MB 会直接爆掉 ~200K token 上下文窗口,真实表现是"爆窗→截断→重试→再烧",纪律的意义不止省钱,是保命。
触发与边界
- 触发词:省 token / 减少消耗 / 控制上下文 / 低成本跑任务;或任务明显多步、多文件、多抓取。
- 触发机制:skill 需被显式触发才加载,不存在"自动生效";已固化到用户级
~/.workbuddy/MEMORY.md偏好(2026-08-16),新会话自动继承。 - 适用边界:纯规则,加载 ~1.5-2k token;短会话(≤3 轮)收益不明显,长会话/多轮才回本。