1. 项目概述
Caveman 是一个开源工具集——包含一个类似 Claude Code 的技能和一个本地代理——它通过压缩 AI 编程智能体读取的内容(输入)和生成的内容(输出),在不丢失精确代码、错误信息或关键上下文的前提下,降低其 Token 消耗。
2. 背景与定位
- 核心使命:随着智能体编程会话时长增加,上下文窗口迅速被填满,API 费用也随之攀升。Caveman 秉持“少即是多”的理念,实时精简冗长的工具输出、日志、JSON 和差异对比(diff),使智能体能在相同预算内完成更多工作,同时保证原始字节始终可恢复。
- 两款互补产品:原有的 Caveman 技能可使智能体自身的响应更简洁(基准测试显示输出 Token 减少约 65%),代价是每轮对话有少量额外开销。较新的 Caveman 2 是一个本地代理,可拦截发往服务商的流量,并在数据离开本机前压缩输入(一项固定基准测试报告显示,服务商统计的输入 Token 减少了 33.2%)。
- 与同类项目的区别:Caveman 并非尝试总结或改写内容(这可能导致精确代码或堆栈跟踪丢失),而是采用感知内容类型的无损安全压缩——仅在确认体积严格减小时才应用转换,保留基于内容寻址的原始副本以实现逐字节精确恢复,并在其文档(“真实数据”)中明确区分哪些节省量是本地推算的,哪些是经独立基准测试验证的。
3. 功能分类
🗜️ 压缩引擎
针对智能体最常处理的内容类型提供感知类型的压缩器:
- JSON 结构压缩(键/结构/错误树)——通常减少 70–90%
- 日志压缩(错误、追踪、边界)——85–95%
- 代码压缩(导入、签名、类型)——40–70%
- Diff 压缩(头部、变更行)——60–80%
- 搜索结果及文本/HTML 压缩——50–95%
目的:在消耗上下文 Token 之前,先精简最嘈杂、最重复的内容类型。
🖼️ 像素模式
将密集文本(打包的工具目录、长日志)渲染为 PNG 图像供具备视觉能力的模型使用,已有记录案例从约 5.5 万文本 Token 降至约 1.1 万图像 Token(−79%)。
目的:当模型读取图像比读取原始文本成本更低时,用图像 Token 替代文本 Token。
🧠 学习与分析
caveman learn 命令会扫描智能体的本地历史记录,找出 Token 消耗大户并对修复方案进行分类。
目的:在不向外发送数据或不产生用户费用的前提下,发现具体且可量化的节省机会。
🔌 智能体封装
原生支持 Claude Code、OpenAI Codex CLI、Gemini CLI、Aider、opencode、Hermes Agent 和 OpenClaw,并通过 baseURL 级别兼容 Vercel AI SDK、LangChain、LiteLLM、CrewAI 和 PydanticAI 等框架——总计支持 30 多个智能体。
目的:让任何现有智能体配置都能通过压缩代理路由流量,只需极少甚至无需修改代码。
🧰 CLI 工具
独立命令如 caveman shrink、caveman browse、caveman mem remember|recall 和 caveman toon encode|decode。
目的:让开发者在智能体会话之外也能直接通过脚本调用相同的压缩原语。
4. 核心亮点
- 逐字节精确恢复:每个压缩负载在传输前都会将其原始字节存储在基于内容寻址的存储中,确保没有任何数据真正丢失。
- 仅当体积减小时才压缩的保证:仅在可测量地减小体积时才执行转换;若拒绝转换,则会记录原因,而非静默降低内容质量。
- 输入/输出分离压缩:技能(输出)和代理(输入)可独立采用,团队可从价值更高的部分开始入手。
- 透明的基准测试:“真实数据”文档区分了本地推算的节省量与独立测量的基准测试结果,避免夸大宣传。
- 可选强度等级:智能体内的
/caveman技能支持多种压缩强度(lite、full、ultra 以及“文言”变体),以匹配不同的简洁度需求。 - 广泛的智能体覆盖:通过原生封装或简单的 baseURL 配置,支持 30 多个智能体和框架,而非将用户锁定在单一智能体产品中。
5. 按角色划分的使用场景
- 通用开发者:在日常智能体编程会话(Claude Code、Codex、Gemini CLI、Aider 等)中减少 Token 花费和上下文膨胀,无需改变提示词习惯。
- DevOps/SRE:压缩冗长的 CI 日志、命令输出和诊断信息(
caveman shrink -- [command]),使智能体能在更小的上下文窗口内进行事件分诊。 - 数据/研究科学家:使用
caveman learn分析智能体会话历史,量化 Token(即成本)的实际消耗位置,为工作流调整提供依据。 - 项目经理:参考基准测试和“真实数据”文档,在团队范围内推广 Caveman 之前评估切合实际的降本预期。
6. 快速入门
查找所需内容
浏览 docs/ 目录获取架构、CLI 参考、安全/隐私说明及基准测试方法,建议从 docs 目录下的 README.md 开始。
安装/集成
# 代理 (Caveman 2) — 压缩输入
npm install -g @caveman-ai/cli && caveman setup --install
caveman claude # 或: codex, gemini, aider, hermes, openclaw
# 技能 — 压缩输出,安装到智能体的技能目录中
npx skills add JuliusBrussee/caveman
贡献代码
git commit -s -m "your message" # 每次提交都需要 DCO 签名
针对您修改的包运行相应的测试套件(go test ./...、pnpm test 或 pytest),保持 PR 小而专注,并向主仓库提交。问题可发送至 [email protected] 或在 GitHub 讨论区提出。
7. 项目结构
caveman/
├── agents/profiles/ # 智能体封装定义 (Claude Code, Codex, Gemini CLI, ...)
├── integrations/recipes/ # 服务商 SDK 集成示例 (LangChain, LiteLLM, ...)
├── engine/ # 压缩引擎和像素模式渲染
├── browse/ # 浏览器内容压缩实现
└── docs/ # 架构、CLI 参考、基准测试、安全文档
8. 相关生态
- 上游智能体/平台:Claude Code (Anthropic)、OpenAI Codex CLI、Gemini CLI (Google)、Aider、opencode、Hermes Agent (Nous Research)、OpenClaw —— Caveman 是对这些工具的封装而非替代。
- 互补框架:Vercel AI SDK、LangChain、LiteLLM、CrewAI 和 PydanticAI 可通过标准
baseURL配置指向 Caveman 代理。 - 内置第三方组件:内部使用了 pxpipe (MIT)、Spleen 字体 (BSD-2-Clause) 和 GNU Unifont (OFL-1.1 / GPLv2-with-font-exception),主要用于像素模式渲染。
9. 许可证
Caveman 按目录采用拆分许可模式。
- ✅ 可在 MIT 许可下自由使用、修改和重新分发技能、智能体 SDK、CLI、客户端 SDK 及应用层工具。
- ✅ 可在 BSL-1.1 许可下免费为自有第一方流量自托管引擎、代理、缓存引擎、重写器、浏览功能和 MCP 服务器。
- ❌ 未经项目商业授权,不得将 BSL-1.1 涵盖的组件(引擎/代理/MCP 服务器)作为第三方托管或嵌入式服务提供。
- ℹ️ BSL-1.1 涵盖的代码将于 2030 年 6 月 21 日或各版本发布四年后(以较早者为准)自动转换为 Apache-2.0 许可。
- ℹ️ GitHub 自身的元数据将许可证列为“NOASSERTION”,因为拆分的 MIT/BSL-1.1 模式无法映射到单个 SPDX 标识符——请查阅各目录中的
LICENSE文件以获取实际适用的条款。
10. 常见问题
问:Caveman 是否会静默损坏或丢失数据?
答:不会——每个压缩负载都保留了基于内容寻址的原始字节副本,且仅在测量结果严格小于输入时才传输转换结果;否则拒绝转换并记录原因。
问:我可以只使用输出压缩技能而不用代理,或者反过来吗?
答:可以。技能(npx skills add JuliusBrussee/caveman)和代理(npm install -g @caveman-ai/cli)是独立的产品,可以分别采用。
问:Caveman 支持哪些编程智能体?
答:原生封装涵盖 Claude Code、OpenAI Codex CLI、Gemini CLI、Aider、opencode、Hermes Agent 和 OpenClaw,总计支持 30 多个智能体,包括可通过 baseURL 配置的框架。
问:我可以为自己的团队自托管代理/引擎吗?
答:可以,根据 BSL-1.1 许可,为第一方流量自托管是免费的;只有将其作为托管或嵌入式服务提供给第三方时才需要商业许可。
问:基准测试数据(65%、33.2%)来自哪里?
答:请参阅 docs/HONEST-NUMBERS.md 和 docs/WRAP-BENCHMARK.md,其中区分了本地推算的估计值与独立固定的基准测试结果。
11. 快速链接
- 代码仓库:https://github.com/JuliusBrussee/caveman
- 文档:https://github.com/JuliusBrussee/caveman/tree/main/docs
- 贡献指南:https://github.com/JuliusBrussee/caveman/blob/main/CONTRIBUTING.md
- 讨论/联系:仓库的 GitHub Discussions,或 [email protected]
12. 总结
Caveman 为 AI 编程智能体提供了一种实用的方法,使其在读写更少内容的同时不丢失任何重要信息——将输出精简技能与输入压缩本地代理相结合,两者均有逐字节精确恢复保障作为后盾。对于使用 Claude Code、Codex、Gemini CLI 或类似工具进行长时间智能体编程会话的开发者和团队而言,它最具价值,能够在不放弃精确代码、错误或日志的前提下,显著降低 Token 消耗。