公司动态

如何压缩上下文还保留错误现场:Caveman JSON 压缩器的完整指南

📅 2026/8/31 9:57:03
如何压缩上下文还保留错误现场:Caveman JSON 压缩器的完整指南
如何压缩上下文还保留错误现场Caveman JSON 压缩器的完整指南【免费下载链接】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 Agent 的实际使用中工具返回的 JSON 往往是 Token 消耗的大户。Caveman 是一个面向 Claude Code 等编码 Agent 的技能工具它的核心卖点是用原始人式精简的思路为模型上下文瘦身官方宣称可削减 65% 的 Token。其中真正干活的是位于 engine/compressors/ 目录下的Caveman JSON 压缩器它专门处理工具输出里的 JSON 负载一边折叠重复数组一边原样保留 error/message 子树做到瘦身不丢关键信息。为什么 JSON 值得单独压缩Agent 跑任务时一次工具调用动辄返回几十上百条记录订单列表、API 响应、日志事件……这些 JSON 有两个共同点数组高度重复——绝大多数元素是同一形状的重复记录关键信号藏在少数元素里——报错的那一条、异常值的那一条恰恰不能丢。所以 JSON 压缩器json.go的设计目标很明确折叠重复的保留有信号的丢掉的还要能找回。整个策略分为三条规则。规则一error/message 子树原样保留压缩器内置了一个正则json.go 第32行匹配这些键名error、errors、message、msg、stack、stacktrace、exception、reason、details、warning等递归遍历 JSON 时只要某个对象的键命中这个正则它下面的整棵子树都会被标记为preservejson.go 第110-136行——子树内的数组再长也不折叠逐条原样保留。这解释了压缩器测试用例里的场景json_test.godata数组的 12 条记录被折叠而error.items里的 12 个元素一个不少地留下。对 Agent 来说压缩后的输出里错误信息必须逐字可读是硬约束。规则二长数组只留有信号的元素没被保护、且长度超过阈值默认 8 个元素的数组会进入selectArray的筛选流程json.go 第141行。哪些元素会被强制保留按优先级保留类别策略默认参数首尾锚点数组头尾各留几个保住开头长什么样、结尾长什么样前 3 后 2错误态元素元素正文命中error/failed/timeout/panic...等关键词全部保留统计异常对每个数值字段做中位数 MAD 稳健 z 分数检测z ≥ 2.0 标记为异常变化点CUSUM 检测序列的制度切换两侧边界都留最多 8 处切分查询相关项有检索 query 时用确定性 BM25 打分补充相关元素归一化分 ≥ 0.30全部判定都是确定性的——没有随机数、没有向量嵌入同一输入永远得到同一输出这对前缀缓存很关键。被丢掉的元素不会凭空消失而是每段连续丢失区生成一个省略标记{__caveman_elided__: 10, __caveman_invariants__: status: ok×10}标记既告诉模型这里省了多少条又附带从这批元素里计算出的事实摘要invariants.go比如恒定字段、状态分布计数、数值区间——但摘要只陈述验证过的事实绝不猜测。规则三压缩是有损的但可恢复JSON 压缩器被归为 S4 安全级别有损。这意味着压缩前引擎会先把原始字节存入本地CCR上下文恢复存储engine/ccr/store.go并在压缩后的负载里附带恢复句柄Agent 需要完整原始数据时随时可以取回逐字原文。反过来以下情况压缩器会直接放弃、原样透传json.go 第81-104行JSON 解析失败、或包含多个顶层值一个元素都没折叠掉——光重新序列化不构成压缩不能冒领功绩。进阶Best-of 策略模式如果引擎的 TOON 标志位设为 best-ofJSON 内容类型会改用jsonStrategyjson_strategy.go它把TOON 编码对模型无损和数组省略有损各跑一遍用真实 Token 计数器比较结果只采用省 Token 更多的那个两个都不省就整体放弃。上手与延伸阅读安装后通过 CLI 启动 Agent 即可自动生效npm i -g caveman-ai/cli再caveman claude详见 engine/README.md压缩器完整行为说明与默认参数json.go、json_test.go省略标记的不变量摘要机制invariants.go上下文恢复CCR实现engine/ccr/store.go缓存规划与轨迹重写等配套机制docs/technical/cache-and-rewriter.md。一句话总结Caveman JSON 压缩器 error/message 子树原样保留 长数组按首尾/错误/异常/变化点/相关性筛选保留 省略标记附带事实摘要 原文本地可恢复。四条规则叠起来才是它敢在 Agent 上下文里做有损压缩的底气。【免费下载链接】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),仅供参考