
Caveman Trajectory Rewriter 指南用 AI 重写历史上下文省掉一半 Token【免费下载链接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/cavemanCaveman 是一个专为 Claude Code 等 AI 编程代理设计的开源 Token 压缩工具口号是 why use many token when few token do trick。它的 Trajectory Rewriter轨迹重写器会悄悄调用另一个小模型把 AI 代理对话中陈旧的、低价值的历史上下文重写成精简摘要再经过一套严格的确定性检查门把关后才允许替换原文——目标是让代理读得更少同时不丢失任何一条错误信息。为什么需要 Trajectory Rewriter历史上下文是个无底洞 ️AI 编程代理干活时会不断产生轨迹trajectory每次工具调用的输出、文件列表、编译日志、测试报告……这些内容每一轮都会原封不动地塞进上下文再发给大模型。任务拖到几十轮之后大部分历史早已过期却还在持续消耗输入 Token 和费用。Caveman 1 解决的是说得少让代理用原始人式的简短语言回答而 Trajectory Rewriter 是 Caveman 2 的新能力解决的是读得少——在发给模型之前先把陈旧的历史压掉。它和代理缓存规划器cache planner是两套独立系统详见官方文档docs/technical/cache-and-rewriter.md。工作原理外部模型重写 双闸门校验 Trajectory Rewriter 的机制来自论文 AgentDietarXiv 2509.23586被原样搬进了 Caveman 的本地代理里核心设计有四个1. 用一个隐形的小模型重写主代理完全不知道它的存在。Rewriter 会用一个便宜的小模型如claude-haiku-4-5或gpt-5-mini重写指定的历史步骤重写结果以这就是原始工具输出的样子呈现给主代理。2. 滞后窗口只重写老了 2 步的内容重写不会碰最新的内容。它取目标步骤前 2 步lag a2加上后 1 步b1作为上下文窗口让模型判断哪些信息已经不再承重。重写目标永远固定为s-2这个位置太新的内容一律不动。3. 双 θ 闸门θ 默认 500 Token调用门目标步骤 Token 数不超过 500 时直接跳过连 API 都不调用——省得重写费比省下的还多应用门重写完成后再比一次省下的 Token 必须超过500 才接受。θ 是一个可调参数rewriter/rewriter.go它让机制自适应小代码库里自动熄火仓库级大任务才真正开火。4. 只重写不删除rewrite-never-delete被删掉的内容必须留一句摘要提示例如37 个pycache条目已省略绝不允许挖出一个空洞。模型被明确告知三类浪费无用的构建噪音、窗口内重复出现的内容、已经过期的旧信息提示词全文见 rewriter/prompt.go。安全护栏失败的字节必须原样存活 ️Rewriter 最危险的地方是万一它把一条错误日志删了代理下一步就可能做出错误修复。因此验收门rewriter/gate.go是纯函数式的确定性检查任何一条不过就整体拒绝、原样保留检查项规则失败信号词fail / error / panic / traceback / timeout 等词出现就必须保留失败计数5 failed 不能改写成 1 failed数字必须跟着名词存活退出码非零 exit code 必须原样保留源码位置path:行号[:列号]无条件逐字节保护无论是否在同一行有失败词失败行详情每一条失败行必须逐字幸存禁止合并同类错误被拒绝的重写永远不会进入代理上下文但它的 API 花费仍会被如实上报方便你核算省下的比花掉的多不多。可恢复性CCR 指针兜底 每一段被接受的重写结尾都会带一行恢复指针[condensed by caveman; original recoverable via ccr:…]这个ccr:…标记与代理压缩路径使用同一套语法原始字节会以 SHA-256 句柄存进 CCR 存储engine/ccr/store.go。也就是说最坏情况是代理多花一轮去取回原文而不是静默丢失数据。实现细节见 rewriter/rewriter.go。已知限制它不是万能的 ⚠️官方代码注释里明确列出了不保证项建议使用者心里有数抓不住编造所有门都是存活性检查——只验证原文里的东西还在不限制模型新增了什么。一句捏造的剩下的失败与本题无关是能通过检查的防线靠的是线上监控而非这个门。警告密集日志永远压不动源码位置被无条件保护所以一份 200 条警告的编译器日志必须全部保留位置永远过不了 θ 门。这是刻意设计不是 bug。需要联网和额外模型与完全离线的缓存规划器不同Rewriter 必须配置外部模型与密钥无法离线工作。重写是模型生成的文字不是无损编码官方文档建议任何质量等价的结论都要经过任务级评估docs/technical/cache-and-rewriter.md。配置指南三个关键参数 ⚙️Rewriter 通过 rewriter/rewriter.go 中的Config结构体配置关键项只有几个参数说明默认值Provideranthropic或openai未知值直接报错拒绝启动必填Model重写用小模型如claude-haiku-4-5、gpt-5-mini必填APIKey重写模型的密钥必填Theta双闸门阈值Token500两个工程细节值得一提输出上限被限制在原步骤的 Token 数25616384 之间撞到上限视为被截断直接拒绝绝不静默裁掉尾巴对 gpt-5 系列推理模型会自动省略 temperature 参数避免全部请求 400rewriter/provider.go。此外重写缓存必须按SHA-256(步骤字节) || PromptVersion做键改过提示词就要失效旧缓存防止两套机制的产物混用rewriter/prompt.go。完整的重写路径条件阈值、模型配置、结构检查、失败信号保全、CCR 存储汇总在官方文档 docs/technical/cache-and-rewriter.md。总结省 Token 的安全带设计 Trajectory Rewriter 的思路可以概括为一句话让便宜模型动刀让确定性规则当裁判让恢复指针兜底。它不追求每次请求都省钱而是靠双 θ 闸门保证只在真有大块可压缩时才出手靠验收门保证错误信息一条不丢靠 CCR 保证随时能拿回原文。对于跑长任务、大仓库、多轮调试的 AI 编程代理用户这正是输入 Token 成本优化的下一步。模块源码全部开放在 rewriter/ 目录BSL-1.1 许可配合 engine/ 的压缩器一起阅读能完整理解 Caveman 2 的读得更少是怎么落地的。【免费下载链接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/caveman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考