Caveman实测 – AI Agent 的极简输出压缩插件01. 项目简介02. 项目实测03. 挖一挖

Caveman实测 – AI Agent 的极简输出压缩插件01. 项目简介02. 项目实测03. 挖一挖

今天发点适合让 AI Agent 简洁输出的东西。

平时我们用 AI Agent 时,输出的内容不管对不对都会有一些啰里八嗦的废话,读起来很浪费我们的时间和精力,用起来也浪费 Token。

只要给你的 AI Agent 装上这个叫 Caveman 的GitHub项目之后,输出的内容立马变得简洁起来,只有在重点,没有废话。

 

01. 项目简介

 

Caveman 是一个给 AI Agent 用的压缩表达插件。

项目地址:https://github.com/JuliusBrussee/caveman

Caveman能让 Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 等少说铺垫话、场面话,多给有效信息。

重点是压缩“表达方式”,不是压缩模型思考、上下文、文件内容或工具调用本身。官方说的 65% 节省,指的是输出 token 平均减少,不等于总账单直接减少 65%。

Caveman 的思路是把语言习惯写成强规则,持续塞给代理。包括删除冠词、寒暄、弱化语、连接废话,允许句子碎片化,保留代码、命令、错误、API 名称和技术术语。

核心技能包括 caveman、caveman-commit、caveman-review、caveman-stats、caveman-compress、caveman-shrink。

  • /caveman:开启输出压缩。支持 lite、full、ultra、wenyan 等强度。full 是默认模式。
  • /caveman-commit:生成短 Conventional Commit 信息,强调为什么改,而不是流水账描述改了什么。
  • /caveman-review:做代码 review 时输出一行式意见,跳过客套和无用表扬。
  • /caveman-stats:读取 Claude Code 本地会话日志,估算 token 使用和节省情况。
  • /caveman-compress :压缩 CLAUDE.md、偏好、项目笔记这类自然语言记忆文件。
  • caveman-shrink:作为 MCP proxy 包一层上游 MCP server,压缩 tools/list、prompts/list、resources/list 里的描述字段。

Caveman 几个模式的差异:

  • lite:只是去掉废话,句子仍然比较正常。
  • full:默认模式。句子更短,允许 fragment。
  • ultra:更压缩,省掉更多连接词。
  • wenyan:文言压缩模式,主要面向中文,因为中文字符承载信息密度更高。这个模式很有趣,但不适合所有场景,尤其不适合需要面向团队协作、PR 评论或新手解释的内容。

caveman-compress 有一套谨慎的文件规则:

  • 只处理自然语言文件,比如 .md、.txt、.tex
  • 不处理 .py、.js、.json、.yaml、.env、.sql、.sh
  • 代码块、inline code、URL、路径、命令、技术名词必须原样保留
  • 原文件会备份成 FILE.original.md
  • 如果验证失败,不覆盖原文件

这个设计说明作者知道“压缩记忆文件”有破坏信息的风险,所以做了文件类型限制和验证流程。

 

02. 项目实测

case 1 Bug 解释

提示词:

解释一下为什么这个 React 组件会重复渲染,并给出最小修复方案:

 

function UserCard({ user }) {

const options = { showEmail: true };

return ;

}

 

const Profile = React.memo(function Profile({ user, options }) {

console.log(“render profile”);

return

{user.name}

;

});

不用Caveman:

用Caveman:

Caveman 明显更短,大概砍掉三分之一到一半内容,且没有明显错误。

case 2 Debug 修复

提示词:
帮我排查这个 Node.js 登录中间件的问题。用户 token 已经过期,但有时仍然能通过校验。请指出 bug,并给出修复代码。function auth(req, res, next) {  const token = parseToken(req.headers.authorization);  if (!token) return res.status(401).send(“missing token”);  if (token.exp < Date.now() / 1000) {    return res.status(401).send(“expired”);  }  req.user = token.user;  next();}

不用Caveman:

用Caveman:

Caveman 版输出 Token 少很多,正文和代码都更短,两版都指出 exp 缺失/非法会放行、边界判断应按 now >= exp、JWT 需要验签。

case 3 架构权衡

提示词:我们正在做一个 B2B SaaS,团队 8 个工程师,当前是单体 Rails 应用。现在有 3 个模块:计费、通知、报表。老板想拆微服务。请分析是否应该拆,给出建议和迁移路径。

不用Caveman:

用Caveman:

普通版约 1400 到 1600 token,Caveman 版约 650 到 800 token,减少大约 50%,扫读成本明显低。而且重点内容:不建议全面拆、先做模块化单体、通知/报表优先、计费最后拆,这些判断都保住了。

case 4 PR Review

提示词:

请 review 下面这段代码,重点看安全、并发和边界条件。只指出真实问题,不需要表扬。

 

async function transfer(fromUserId, toUserId, amount) {

const from = await db.users.findById(fromUserId);

const to = await db.users.findById(toUserId);

 

if (from.balance < amount) {

throw new Error(“insufficient funds”);

}

 

from.balance -= amount;

to.balance += amount;

 

await db.users.update(fromUserId, { balance: from.balance });

await db.users.update(toUserId, { balance: to.balance });

 

return true;

}

不用Caveman:

用Caveman:

这次两版差距没有前几组大,Caveman 粗略少 10% 到 15%,原因是 Caveman 多补了“幂等”问题。

而且代码 review 场景,不用 Caveman 已经是问题清单式写法,压缩空间有限。

case 5 Docker 优化

提示词:

帮我优化这个 Dockerfile,目标是减少镜像体积、提高构建缓存命中率,并避免把敏感文件带进镜像。

 

FROM node:20

WORKDIR /app

COPY . .

RUN npm install

RUN npm run build

CMD [“npm”, “start”]

不用Caveman:

用Caveman:

Caveman 版减少大约 35% 到 45% Token的。差异在基础镜像:普通版用 bookworm-slim,兼容性更稳;Caveman 用 alpine,体积更小。

case 6 数据库问题

提示词:

解释这个 PostgreSQL 查询为什么慢,并给出排查和优化方案。

 

表 orders 有 8000 万行,字段包括 id, user_id, status, created_at, total_amount。

常见查询:

 

SELECT *

FROM orders

WHERE user_id = $1

AND status = ‘paid’

ORDER BY created_at DESC

LIMIT 20;

不用Caveman:

用Caveman:

不用 Caveman 约 1000 到 1200 token;Caveman 版约 500 到 650 token,减少大约 45% 到 50%。

普通版多了稳定排序 created_at, id,这是 Caveman 漏掉的实用细节。

case 7 重构任务

function loadUser(id, callback) {

db.findUser(id, function(err, user) {

if (err) return callback(err);

 

api.fetchProfile(user.profileId, function(err, profile) {

if (err) return callback(err);

 

cache.set(id, profile, function(err) {

if (err) return callback(err);

callback(null, { user, profile });

});

});

});

}

不用Caveman:

用Caveman:

不用 Caveman 约 850 到 1000 token;Caveman 约 650 到 800 token,减少大约 20% 到 30%。

Caveman Token稍低,但优势不大。因为这题天然需要代码块,token 主要花在代码上,风格压缩空间有限。

case 8 新功能设计

提示词:设计一个“导出报表为 CSV”的后端接口。要求支持大数据量、权限校验、异步任务、下载链接过期。请给出 API 设计、数据流和主要表结构。

不用Caveman:

用Caveman:

不用 Caveman 约 1300 到 1600 token;Caveman 约 900 到 1100 token,减少大约 25% 到 35%。

普通版多了 Idempotency-Key、report_export_files 独立表、CSV 注入防护细节。

case 9 事故复盘

提示词:我们线上服务昨天 10:05 到 10:27 出现大量 500。初步发现 Redis 连接池耗尽,应用不断重试,数据库 QPS 同时升高。请写一份工程内部事故复盘,包含时间线、根因、影响、修复、后续行动。

不用Caveman:

用Caveman:

不用 Caveman 约 900 到 1100 token;Caveman 约 550 到 700 token,减少大约 35% 到 45%。

普通版多了占位符提示、数据一致性核查、单飞机制;Caveman 多强调 retry budget、jitter、熔断和保护 DB。

case 10 代码解释

提示词:请给刚入职的后端新人解释什么是数据库连接池,为什么不能每个请求都新建连接,并举一个实际服务里的例子。

不用Caveman:

用Caveman:

不用 Caveman 约 700 到 850 token;Caveman 约 300 到 400 token,减少大约 50% 到 60%。

两版都命中连接复用、建连成本、连接数限制、池大小不能乱配。普通版多了完整代码例子和“第 21 个请求等待”的直观说明。

这 10 个 case 跑下来,Caveman 没有出现明显技术错误,核心判断都保住了,但 Caveman 会牺牲一部分细节,在明确问题和熟手场景里,收益很高。

最后还要给大家说几个需要注意的点:

  • Caveman 只减少输出 token,输入 token 不会自动减少
  • skill 本身每轮会增加约 1k 到 1.5k input tokens
  • 如果普通回答本来只有 150 output tokens,启用 Caveman 可能反而更贵
  • 如果平台按请求计费,而不是按 token 计费,短回答不会降低请求数

 

03. 挖一挖

 

Caveman 这类工不是省几个 token的小需求,而是 AI Agent 进入我们的日常开发后,对输出效率、阅读成本和协作质量的要求变高了。

这次 10 个 case 测下来,Caveman 的价值也比较清楚。架构权衡、数据库优化、事故复盘、概念解释这类容易展开的任务,输出大多能减少 35% 到 60%;代码块占比高的任务,压缩幅度会降到 10% 到 30%。很适合处理模型容易啰嗦,但工程师只想看结论的场景。

对我们来说,Caveman 能减少每天读 AI 回复的时间;让 review、debug、方案讨论更像工程沟通,帮助统一输出风格,降低来回确认的成本。

Caveman 不该只被理解成省钱神器。它主要压缩输出 token,输入 token 和推理成本不会自动消失。

AI Agent 真正进入生产流程后,差距不只在会不会生成答案,也在生成的答案能不能被人快速使用。

原文链接:GitHub 狂揽 85K Stars,AI Agent 再也不说废话

购物车
滚动至顶部