Files
2026-07-13 09:53:31 +00:00

331 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- WEHUB_ZH_README -->
> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/JuliusBrussee/caveman) · [上游 README](https://github.com/JuliusBrussee/caveman/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
<p align="center">
<img src="docs/assets/caveman-logo-banner.png" alt="Caveman" width="720">
</p>
<p align="center">
<strong>why use many token when few do trick</strong>
</p>
<p align="center">
让你的 AI 编程智能体(agent)像穴居人一样说话。<br>
答案一样,<strong>输出 token 少 65%</strong>。脑子还是大的。嘴巴小的。
</p>
<p align="center">
<a href="https://github.com/JuliusBrussee/caveman/stargazers"><img src="https://img.shields.io/github/stars/JuliusBrussee/caveman?style=flat&color=yellow" alt="Stars"></a>
<a href="./INSTALL.md"><img src="https://img.shields.io/badge/works_with-30%2B_agents-orange?style=flat" alt="30+ agents"></a>
<a href="https://github.com/JuliusBrussee/caveman/commits/main"><img src="https://img.shields.io/github/last-commit/JuliusBrussee/caveman?style=flat" alt="Last commit"></a>
<a href="LICENSE"><img src="https://img.shields.io/github/license/JuliusBrussee/caveman?style=flat" alt="License"></a>
</p>
<p align="center">
<a href="#before--after">看看效果</a> ·
<a href="#install">安装</a> ·
<a href="#pick-your-grunt">级别</a> ·
<a href="#what-you-get">你能得到什么</a> ·
<a href="#benchmarks">基准测试</a> ·
<a href="#the-whole-cave">生态</a> ·
<a href="#caveman-2">Caveman 2</a>
</p>
---
Caveman 是面向 [Claude Code](https://docs.anthropic.com/en/docs/claude-code),)、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 及 30+ 其他智能体的 skill/插件。安装一次即可。智能体会去掉废话,用精简的穴居人式表达作答,代码、命令和错误信息逐字节保持原样。每次回复都能省下输出 token,一直如此。
## 前后对比
<table>
<tr>
<th width="50%">🗣️ 普通智能体 — 69 tokens</th>
<th width="50%"><img src="docs/assets/dancing-rock.svg" width="18" height="18" alt=""> Caveman 智能体 — 19 tokens</th>
</tr>
<tr>
<td valign="top">
> 你的 React 组件会重新渲染,很可能是因为你在每次渲染周期都创建了新的对象引用。当你把内联对象作为 prop 传入时,React 的浅比较每次都会把它当成不同对象,从而触发重新渲染。我建议用 useMemo 来缓存(memoize)这个对象。
</td>
<td valign="top">
> 每次渲染新对象引用。内联对象 prop = 新引用 = 重渲染。用 `useMemo` 包起来。
</td>
</tr>
<tr>
<td valign="top">
> 好的!我很乐意帮你。你遇到的问题,多半是因为认证中间件没有正确校验 token 过期时间。我来看看并建议修复方案。
</td>
<td valign="top">
> 认证中间件有 bug。Token 过期检查该用 `<` 不是 `<=`。修复:
</td>
</tr>
</table>
同样的修复。字数约三分之一。技术内容一点没丢。
```
┌────────────────────────────────────────────┐
│ output tokens saved █████████ 65% │
│ input tokens saved ░░░░░░░░░ 0% │
│ technical accuracy █████████ 100% │
│ vibes █████████ OOG │
└────────────────────────────────────────────┘
```
Caveman 不会让脑子变小。Caveman 让*嘴巴*变小。压缩的是智能体**说的话**,不是它**知道的东西**。
## 安装
**一条命令。找到你机器上的每个智能体。逐个安装。**
```bash
# macOS · Linux · WSL · Git Bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash
```
```powershell
# Windows · PowerShell 5.1+
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex
```
约 30 秒。需要 Node ≥18。会跳过你没有的智能体。可安全重复运行。
> [!TIP]
> **开启:**输入 `/caveman` 或说*「像穴居人一样说话」*。**关闭:**说*「正常模式」*。在 Claude Code、Codex 和 Gemini 上,从第一条消息起就已开启。无需命令。
<details>
<summary><strong>为单个智能体安装,或 30+ 其他智能体中的任意一个</strong></summary>
<br>
每个智能体都有自己的路径(插件、扩展、规则文件或 `npx skills add`)。完整的按智能体对照表、所有标志位、dry-run 和卸载说明都在 **[INSTALL.md](./INSTALL.md)**。常见几个:
```bash
# Claude Code plugin
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman
# Gemini CLI extension
gemini extensions install https://github.com/JuliusBrussee/caveman
# Cursor / Windsurf / Cline / Codex / 30+ more, via the skills registry
npx skills add JuliusBrussee/caveman -a cursor
```
**安装坏了?** 在本仓库里打开你的智能体,然后说:*「Read CLAUDE.md and INSTALL.md, install caveman for me.」* 智能体读仓库,智能体修自己的脑子。蛇吃尾巴。
</details>
## 选择你的咕哝级别
六个级别。随时用 `/caveman <level>` 切换。级别会一直保持,直到你更改或会话结束。
| 级别 | 同一句话,压缩后 |
|---|---|
| *普通智能体* | 你应该把对象包在 `useMemo` 里,因为每次渲染都会创建新引用。 |
| `lite` | 对象包进 `useMemo`。每次渲染新引用。 |
| `full` *(默认)* | 每次渲染新引用。对象包进 `useMemo`。 |
| `ultra` | 每次渲染新引用。用 `useMemo` 包它。 |
| `wenyan` | 每次渲染新引用,所以包进 `useMemo` — 以文言文呈现,更短。 |
> [!NOTE]
> **说你的语言。** Caveman 保留你的语言。写葡萄牙语,就咕哝葡萄牙语。西班牙语、法语,一样。它压缩的是*风格*,从不翻译。`wenyan` 模式是刻意例外:文言文每个 token 能塞最多意思。
## 你能得到什么
| 命令 | 作用 |
|---|---|
| `/caveman [lite\|full\|ultra\|wenyan]` | 压缩每次回复。级别在整个会话中保持。 |
| `/caveman-commit` | Conventional Commit 提交信息,主题 ≤50 字符。讲 why 不讲 what。 |
| `/caveman-review` | 单行 PR 评论:`L42: 🔴 bug: user null. Add guard.` |
| `/caveman-stats` | 真实会话 token 用量、累计节省、美元。带 `--share` 的可发推一行话。 |
| `/caveman-compress <file>` | 把记忆文件(如 `CLAUDE.md`)改写成穴居人式表达。**之后每个会话**约省 46% 输入 token。代码、URL、路径逐字节保留。 |
| `caveman-shrink` | MCP 中间件。包装任意 MCP 服务器,压缩其工具描述。[npm](https://www.npmjs.com/package/caveman-shrink). |
| `cavecrew-*` | Caveman 子智能体(investigator、builder、reviewer)。比原版少约 60% token,主上下文撑得更久。 |
> [!TIP]
> 在 Claude Code 上,状态栏会显示 `[CAVEMAN] ⛏ 12.4k` — 那是你累计节省的 token,每次 `/caveman-stats` 都会更新。用 `CAVEMAN_STATUSLINE_SAVINGS=0` 让它安静。
## 基准测试
来自 Claude API 的真实 token 计数。10 条提示词平均**输出减少 65%**(范围 22–87%),对照默认啰嗦回复测量。仅统计输出 token,已提交且可在 [`benchmarks/`](./benchmarks/) 和 [`evals/`](./evals/) 中复现。
<!-- BENCHMARK-TABLE-START -->
| 任务 | 普通 | Caveman | 节省 |
|------|-------:|--------:|------:|
| 解释 React 重渲染 bug | 1180 | 159 | 87% |
| 修复认证中间件 token 过期 | 704 | 121 | 83% |
| 配置 PostgreSQL 连接池 | 2347 | 380 | 84% |
| 解释 git rebase vs merge | 702 | 292 | 58% |
| 将回调重构为 async/await | 387 | 301 | 22% |
| 架构:微服务 vs 单体 | 446 | 310 | 30% |
| 审查 PR 安全问题 | 678 | 398 | 41% |
| Docker 多阶段构建 | 1042 | 290 | 72% |
| 调试 PostgreSQL 竞态条件 | 1200 | 232 | 81% |
| 实现 React 错误边界 | 3454 | 456 | 87% |
| **平均** | **1214** | **294** | **65%** |
<!-- BENCHMARK-TABLE-END -->
> [!IMPORTANT]
> **诚实数字提醒。** Caveman 只压缩**输出** token。输入和推理 token 不动,skill 本身每轮还会增加约 1–1.5k 输入 token。所以整场会话的节省会小于输出数字,在本来就很简练的工作负载上甚至可能净负。真正的收益是**可读性和速度**。省钱是附加好处。Caveman 何时赢、何时输、如何自己测量:**[docs/HONEST-NUMBERS.md](./docs/HONEST-NUMBERS.md)**。
事实证明,短不只是更便宜。2026 年 3 月的一篇论文 [*Brevity Constraints Reverse Performance Hierarchies in Language Models*](https://arxiv.org/abs/2604.00025),) 测试了 31 个模型,发现约束大模型给出简短答案,在某些基准上**准确率提升约 26 个百分点**。有时字少 = 更对。
<details>
<summary><strong>caveman-compress 凭证</strong> — 真实 memory 文件,永久削减输入 token</summary>
<br>
| 文件 | 原始 | 压缩后 | 节省 |
|---|---:|---:|---:|
| `claude-md-preferences.md` | 706 | 285 | **59.6%** |
| `project-notes.md` | 1145 | 535 | **53.3%** |
| `claude-md-project.md` | 1122 | 636 | **43.3%** |
| `todo-list.md` | 627 | 388 | **38.1%** |
| `mixed-with-code.md` | 888 | 560 | **36.9%** |
| **平均** | **898** | **481** | **46%** |
此后的每次会话,该文件加载体积约小 46%。输入 token 永久节省,而非仅在一次回复中。
</details>
## 完整生态
<table>
<tr><td>
### <img src="docs/assets/dancing-rock.svg" width="20" height="20" alt=""> 想要完整智能体,而不仅是它的「嘴」?→ caveman-code
本 skill 压缩智能体**所说**的内容。**[caveman-code](https://github.com/JuliusBrussee/caveman-code)** 压缩**一切**——端到端的完整终端编程智能体,自上而下皆为 caveman 风格。在相同任务上 token 比 Codex **少约 2 倍**。20+ 提供商、plan mode(计划模式)、autopilot goal loop(自动驾驶目标循环),MIT。
```bash
npm install -g @juliusbrussee/caveman-code
```
[**▶ 试用 caveman-code →**](https://github.com/JuliusBrussee/caveman-code)
</td></tr>
</table>
五个工具,一个理念:**智能体用更少做更多。**
| 仓库 | 压缩对象 |
|------|------|
| [**caveman**](https://github.com/JuliusBrussee/caveman) *(你在这里)* | 智能体**所说**的内容 |
| [**caveman-code**](https://github.com/JuliusBrussee/caveman-code) | **完整智能体**,端到端 |
| [**cavemem**](https://github.com/JuliusBrussee/cavemem) | 智能体**记忆**的内容,跨会话 |
| [**cavekit**](https://github.com/JuliusBrussee/cavekit) | **构建循环**——规格驱动,无需猜测 |
| [**cavegemma**](https://github.com/JuliusBrussee/finetune-caveman) | 压缩**烘焙进权重**Gemma 微调) |
<details>
<summary><strong>另附:五个姊妹 skill,一次安装</strong></summary>
<br>
[**JuliusBrussee/skills**](https://github.com/JuliusBrussee/skills) — 适用于 Claude Code、Cursor、Gemini、Cline、Copilot 及 40+ 智能体:
| Skill | 作用 |
|------|------|
| [**caveman**](https://github.com/JuliusBrussee/skills/tree/main/skills/caveman) | 就是这个。少说,言之有物。 |
| [**grill-me**](https://github.com/JuliusBrussee/skills/tree/main/skills/grill-me) | 智能体在你造错东西*之前*审阅你的计划。 |
| [**interface-kit**](https://github.com/JuliusBrussee/skills/tree/main/skills/interface-kit) | 构建好看、加载快、人人可用的 UI。 |
| [**junior-to-senior**](https://github.com/JuliusBrussee/skills/tree/main/skills/junior-to-senior) | 对抗式审阅。初级输出进,高级输出出。 |
| [**loop-factory**](https://github.com/JuliusBrussee/skills/tree/main/skills/loop-factory) | 规格驱动的任务循环——收件箱 → 进行中 → 归档。 |
```bash
npx skills@latest add JuliusBrussee/skills
```
</details>
<details>
<summary><strong>🦞 教龙虾简洁表达——OpenClaw 集成</strong></summary>
<br>
[**OpenClaw**](https://openclaw.ai) 是自托管网关:一台设备,内含多个智能体,接入 Slack / Discord / iMessage / Telegram。龙虾强壮。龙虾聪明。龙虾也爱啰嗦。
同一安装器,限定单个智能体:
```bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash -s -- --only openclaw
```
只发生两件事,不多不少:caveman skill 落入工作区,并向 `SOUL.md` 追加一小块 marker 围栏代码块(OpenClaw 每轮注入,因此龙虾从第一条消息起就简洁——无需每会话 `/caveman`)。自定义路径?`OPENCLAW_WORKSPACE=/your/path`。用同一命令行加上 `--uninstall` 即可卸载;工作区其他内容不受影响。龙虾钳子依旧锋利。龙虾嘴巴如今更小。
</details>
## Caveman 2
**Caveman 让 token 变小。Caveman 2 让它 _可证明_。**
今日的节省数据(含 `/caveman-stats`)均为本地估算。Caveman 2 将在整个团队范围内测量并验证——真实凭证、真实仪表盘、token 确实下降的真实证明。正在构建中。
[**加入候补名单 → caveman.so**](https://caveman.so)
## 工作原理
1. 安装时向智能体投放一个 skill 文件。
2. Skill 指示智能体:去掉废话、保留实质、使用片段——但绝不改动代码、命令或错误信息。
3. 在 Claude Code 上,hook 每会话写入一个小型标志文件,使智能体从第一条消息起即以 caveman 风格说话,无需 `/caveman`
4. `/caveman-stats` 读取会话日志,统计节省的 token,并将数字写入 statusline。
5. `/caveman-compress` 重写 memory 文件(如 `CLAUDE.md`),使今后每次会话以更小的上下文启动。永久节省 token,而非一次性。
Hook 架构、文件归属与 CI 同步的维护者文档见 [CLAUDE.md](./CLAUDE.md)。
## 隐私
Caveman 不回传数据。无遥测、无分析、无账户、无后端。安装后零网络调用——skill 是一段 prompthook 是本地脚本,`/caveman-stats` 读取磁盘上已有的日志。安装时的拉取(GitHub 及各智能体自有 registry)详见 [SECURITY.md](./SECURITY.md#privacy--telemetry)。
## 赞助商
Caveman 永久免费。赞助商让这块石头保持锋利。
<p align="center">
<a href="https://www.atlascloud.ai">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/atlas-cloud-dark.svg">
<img src="docs/assets/atlas-cloud.svg" alt="Atlas Cloud" height="32">
</picture>
</a>
</p>
<p align="center">
<a href="https://www.atlascloud.ai"><strong>Atlas Cloud</strong></a> — 全模态 AI 推理平台,一个 API。
</p>
<p align="center">
<a href="https://github.com/sponsors/JuliusBrussee"><strong>想让你的石头出现在这里?→ 赞助 caveman</strong></a>
</p>
## 给本仓库加星
Caveman 帮你省 token、省钱。加星零成本。公平交易。⭐
[![Star History Chart](https://api.star-history.com/svg?repos=JuliusBrussee/caveman&type=Date)](https://star-history.com/#JuliusBrussee/caveman&Date)
---
<sub>
<strong>文档:</strong>
<a href="./INSTALL.md">安装矩阵</a> ·
<a href="./docs/HONEST-NUMBERS.md">诚实数据</a> ·
<a href="./CONTRIBUTING.md">贡献指南</a> ·
<a href="./CLAUDE.md">维护者指南</a> ·
<a href="https://github.com/JuliusBrussee/caveman/issues">Issues</a>
<br>
<strong>同作者其他项目:</strong>
<a href="https://github.com/JuliusBrussee/revu-swift">Revu</a> — 本地优先的 macOS 学习应用,采用 FSRS 间隔重复(<a href="https://revu.cards">revu.cards</a>
<br><br>
MIT — 免费如开阔平原上的猛犸群。
</sub>