让编码 agent 少说废话、少烧 token(caveman)

caveman 是 JuliusBrussee 开源的 token 压缩项目,用 Go 写成,让 AI 编码 agent 用「原始人」语气作答,并压缩它读入的日志、测试输出与 JSON,支持 30 多个 agent。这篇文章讲清它的三种装法、能压什么不能压什么、官方宣称节省与用户实测节省的差距,以及什么样的团队不适合用它。

AI 编码 agent 按 token 计费。它写回答习惯先铺垫一段再给结论,读入的日志、测试输出、搜索结果又是成屏成屏的原文。两头都在花钱,而其中相当一部分 token 并不携带判断。

caveman 是一套用 Go 写的 token 压缩工具,让 AI 编码 agent 用「原始人」语气作答,并压掉它读入的日志、测试输出与 JSON。

它拆成三块可以叠加的组件。skill 是一个规则文件,改的是 agent 说出来的话;proxy 跑在本机、夹在 agent 和模型服务商之间,改的是 agent 读进去的内容;middleware 把同样的压缩搬进你自己的代码,包在 LangChain、Vercel AI SDK、OpenAI 或 Anthropic 的调用外面。仓库地址是 https://github.com/JuliusBrussee/caveman,Apache-2.0 许可,主要语言 Go 占 46.4%,其余是 JavaScript 26.4%、TypeScript 15.2%、Python 11.0%。

caveman 项目的仓库横幅与标语

压缩后长什么样:一段原本 69 token 的 React 重渲染诊断,变成 New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo. 诊断结论和修复方案都没变,消失的是开场白。代码、命令、文件路径和精确的报错原文不进压缩流程,安全警告和「你确定吗」这类确认提示也会自动恢复成完整句子。

项目 2026 年 4 月创建,Stars 108685、Forks 6300、Watchers 244,开放 Issue 157 个。这些数字说明它已经从玩笑变成了有实际装机量的工具,也说明维护压力不小。

五分钟先跑通

三种装法按投入程度递增,先挑最轻的那种试。

skill 是规则文件,装完让 agent 自己改用原始人语气说话:

npx skills add JuliusBrussee/caveman -g

如果 agent 没有自动生效,在会话里输入 /caveman 手动唤起。官方说这条命令覆盖 30 多个 agent,包括 Claude Code、Codex、Gemini、Cursor、Windsurf、Cline 与 Copilot。

proxy 跑在你本机,压缩 agent 每次调用前要读进去的内容:

npm install -g @caveman-ai/cli && caveman setup --install
caveman claude

caveman 后面跟目标 agent 名。原生支持的还有 codex、gemini、aider、kilo、qwen、opencode、hermes、openclaw、pi,一共 10 个。

要在自己写的应用里用,装 middleware。TypeScript 和 Python 各一套:

npm install @caveman-ai/middleware @caveman-ai/sdk
pip install 'caveman-middleware[langchain]' caveman-sdk

Python 侧要求 3.11 以上,TypeScript 侧还要补上你实际用的框架包,例如 ai 或 openai。middleware 配套的 sdk 最新版本是 1.2.0,middleware 本身是 1.0.0 稳定版。

还有个完整安装器,会去配置 Claude Code 的 hooks 和状态栏徽章,扫描本机所有受支持的 agent:

curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/v3.0.0/install.sh | bash

它需要 Node.js 22.13 或更高版本,重复执行是安全的。Windows 上官方给的是 PowerShell 5.1 以上的 irm 命令,README 节选在这里被截断,完整写法要看仓库里的 INSTALL.md。

跑通之后你会得到什么

装完 skill 后,最直观的变化是终端里 agent 的回复变短了。原本一段客套铺垫加结论,现在只剩结论和动作。诊断质量是否下降,得靠你自己的用例判断,官方给的参考是 JetBrains 在 86 个真实编码任务上的测试结论:质量上没有可测量的损失。

装 proxy 之后,机器上会起一个本地服务,每次压缩都留一份原文备份,agent 需要时可以把它取回来。这解决的是「压过头了怎么办」的问题——压缩是有损的,但损失可回滚。

用 middleware 的情况,压缩发生在你自己的调用链里。工具返回的结果在送进模型之前被缩小,原始内容保留在你的历史记录中,模型可以按需回取。middleware 还提供 onDecision、onDiagnostic、onReport 这几个回调,用来观察压缩决策。

接下来能做的事,是把它挂到你日常最费 token 的那条路径上:长日志排查、大规模测试输出、搜索结果注入。先从一条路径开始看账单变化,比全量铺开更稳。

主要功能

skill 规则文件。一个文本规则,让 agent 把回答压成原始人语气。Apache-2.0,免费,官方说兼容 30 多个 agent,用一条 npx skills add 命令装。它只影响散文部分。

本机 proxy。夹在 agent 与模型服务商之间,压缩 agent 读入的日志、测试输出、JSON、diff 与搜索结果。CLI 和 runtime 都是 Apache-2.0,用 caveman setup --install 初始化,再用 caveman <agent名> 启动。

middleware 包装器。给已经写好的 LLM 调用加一层,框架侧的适配包括 LangChain、Vercel AI SDK、OpenAI 与 Anthropic。TypeScript 走 @caveman-ai/middleware,Python 走 caveman-middleware。

选择性保留。代码、命令、文件路径、精确报错原文不会被改写;安全警告与确认提示以完整句子返回,之后恢复原始人语气。这条规则是它敢用在正经编码场景的前提。

压缩留底。proxy 每压一次都保存原文,agent 可以随时取回,避免有损压缩把关键上下文吃掉。

Apache-2.0 全量授权。3.0.0 起整个仓库(engine、proxy、browse、MCP server、shrink、cavemem Go core 与共享平台)改为 Apache-2.0,没有托管服务限制,没有 Change Date,不需要商业许可。1.2.0 之前的 SDK 版本仍是 MIT。

多形态叠加。skill、proxy、middleware 可以同时用,多数人的路径是先装 skill,再往上加。

常用参数与配置

npx skills add JuliusBrussee/caveman -g 里的 -g 表示全局安装。装完之后,如果 agent 没自动切换,在会话里输入 /caveman 唤起,这是 skill 的开关。

caveman setup --install 做初始化配置,caveman claude 这类命令后面的第一个参数是指定要包裹的 agent。可选值就是那 10 个原生 profile:claude、codex、gemini、aider、kilo、qwen、opencode、hermes、openclaw、pi。

单独给某个 agent 装插件时可以用 --only 过滤,例如 Issues 里出现过的 npx -y github:JuliusBrussee/caveman -- --only opencode。

环境要求:完整安装器需要 Node.js 22.13+;Python middleware 需要 Python 3.11+,并且要求 caveman-sdk>=1.2,<2,1.1.0 缺少适配器要导入的 API。

运行模式可以设置(例如 always full)。有用户反馈这个设置会在每次会话开始时被重置,希望跨会话保留,这条 Issue 已标记为解决。

结果在哪里看

skill 的效果直接体现在终端里 agent 的回复长度上,没有额外的报告文件。

用完整安装器的话,Claude Code 的状态栏会多一个徽章,安装器负责把它配置好。

proxy 的压缩备份留在本机,agent 需要时按句柄取回原文。middleware 侧的压缩决策通过 onDecision、onDiagnostic、onReport 这几个回调暴露给你自己的代码,具体怎么落盘由你决定。

省了多少 token 这个数字,README 节选里没有给出查看方式。Issues 里有用户专门问过「能不能看到省了多少 token」,那条已被关闭,但仓库里没有说明这一步具体在哪里看。

实际使用中的坑

宣称 65% 的节省,有用户实测只有 8.5%。这条 Issue 标题就是「Advertised saving: 65%. Measured saving: 8.5%.」,引用了 JetBrains 的测试文章,目前状态是待解决。压缩率高度依赖你的对话里散文占比有多高,代码和日志占大头时,实际收益会明显低于宣传值。

opencode 插件安装报 ENOENT,找不到 caveman-compress.md。用户执行 npx -y github:JuliusBrussee/caveman -- --only opencode 时安装直接失败。这条已经解决,但如果你的 opencode 版本较旧,可能还会撞上。

模式设置不跨会话保留。有用户反馈,模式每次会话开始都被重置回 always full,用户手动选的选择没有生效。已解决。

部分编辑器集成不到位。Google Antigravity 与 Antigravity CLI 无法把它识别为 skill 或 agent,VS Code 里的 GitHub Copilot 走 npx 命令装的时候没有 hooks 生效。这两条都已解决,但说明「支持 30 多个 agent」和「每个 agent 的每条路径都顺」是两回事,装完建议先用一个小任务验证它真的接管了。

选型参考

下面的对照只涉及能解决部分相同问题的项目。caveman 同时做输出压缩与读入压缩,另外两个的侧重点不同。

项目适合谁部署方式主要限制什么情况下选它更合适项目地址
caveman终端里跑 Claude Code、Codex、Cursor 的独立开发者,被对话 token 账单困扰,且能接受非正式语气的输出npx 装 skill 规则文件;或 npm 全局装 CLI 起本机 proxy;或在应用里装 npm / pip middleware只压散文,代码、命令、路径与精确报错原文不动;官方宣称省 65%,有用户实测只到 8.5% 且该 Issue 待解决;proxy 原生只覆盖 10 个 agent你想同时压 agent 说出的内容和它读入的日志,并且接受「原始人语气」这种输出风格caveman
headroomlabs-ai/headroom需要在请求到达 LLM 之前压缩工具输出、日志、文件与 RAG chunk 的开发者仓库没有说明未逐一核实你的压缩需求集中在读入侧,不需要也不希望改动 agent 的输出语气headroomlabs-ai/headroom
LeanCTX想先弄清本地压缩的原理再决定装什么的开发者仓库没有说明未逐一核实你想先看原理拆解,再决定用哪套本地压缩方案LeanCTX

如果你在意的只是读入侧的压缩、又不打算改变 agent 的说话风格,Headroom 这类专注上下文压缩的项目更对口——caveman 的原始人语气是它最大的传播点,也是它最容易被团队评审否掉的地方。另一个要提前想清楚的差距是收益预期:65% 这个数字目前挂着一条实测 8.5% 的待解决 Issue,把它当稳压器用、而不是按比例折算省钱,预期才不会落空。

什么情况下别用它

团队对外交付物要求正式语气的场景不要用。caveman 的核心机制就是让 agent 说话不像人写的工作邮件,客服话术、客户文档、对外说明这类产出,改回来比省下的 token 更贵。

你的 token 消耗主要发生在代码生成和长文件读写上时不要用。压缩只作用于散文,这类负载里散文占比低,装完之后账单变化会很小。

需要严格审计每一句模型输出的流程不要用。压缩是有损的,虽然有备份和回取机制,但审计链条上多一层改写就意味着多一层解释成本。

你的 agent 不在官方支持列表里时不要急着用。30 多个 agent 是 skill 的覆盖面,proxy 原生只有 10 个 profile,两者不重合的部分你得自己想办法接。

只想在网页版聊天里省 token 的话也不适用。仓库支持的是跑在本机的编码 agent,README 的列表里没有网页端。

焚评:这个项目的量化评分

本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 10.0 分(满分 10)。下表是各维度的得分:

评分维度得分
热度动量(权重 25%)10.0 / 10
开发活跃(权重 25%)10.0 / 10
社区响应(权重 15%)10.0 / 10
文档质量(权重 15%)10.0 / 10
发布节奏(权重 10%)9.6 / 10
风险控制(权重 10%)10.0 / 10

评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。

内容核验说明

caveman 的收录价值在于它把「省 token」拆成输出语气和读入内容两条路径,安装命令、参数、原生支持的 10 个 agent 都能照着做,文章也点出 65% 宣称与 8.5% 实测的差距,以及只压散文、不碰代码与报错原文的边界。适合本机跑编码 agent、被账单困扰又肯接受非正式语气的独立开发者,先挑一条最费 token 的路径试。

仓库指标、压缩示例与各版本要求来自作者公开披露的仓库页面,诀.com 未独立验证;65% 节省为官方引用 JetBrains 测试的说法,另有用户实测 8.5% 的 Issue 状态为待解决,两者都不能当作可复现结论。

项目来源与说明

开源项目:JuliusBrussee(JuliusBrussee)

本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。

查看项目仓库