Caveman浏览器压缩实战:本地Chrome如何节省129倍Token
【免费下载链接】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
Caveman 是一个开源 Token 节省工具,它的 Caveman Browse 功能通过连接本地 Chrome 浏览器,把网页的无障碍树压缩成精简结构,让 AI 智能体读取页面时只花 121 个 Token——比 Playwright 基线小 129.8 倍。整个过程无需任何云端服务,数据留在本机。
为什么浏览器操作会吃掉海量 Token?
当 AI 智能体(如 Claude Code)需要操作浏览器时,它必须"看懂"页面。传统的做法有两种:
- 截图:图片 Token 消耗高,且文字信息无法精确检索;
- 完整无障碍树(AX Tree):Chrome 原生的
Accessibility.getFullAXTree返回的是原始 JSON,一个 200 行的运营后台表格页就有398,494 个 Token。
就算用 Playwright 的 ARIA 快照优化后,也要 15,704 个 Token。页面越大,智能体"看到"的成本越高——而其中 99% 的内容跟你当前要做的操作毫无关系。
Caveman Browse 的思路是:别给智能体看整个页面,只给它看它要操作的那几个元素。
工作原理:四步压缩流水线
Caveman Browse 是一个本地 MCP(Model Context Protocol)服务器,工作流程如下:
- 附着 Chrome:通过 Chrome DevTools Protocol 连接你本机已安装的 Chrome,无需额外浏览器实例;
- 读取无障碍树:抓取真实 Chrome 的
Accessibility.getFullAXTree; - 强制压缩:通过 Caveman 引擎的
a11y压缩器(源码位于 browse/session.go 与 engine/compressors/axtree.go),只保留与任务最相关的节点; - 可字节级恢复:原始完整数据先存入本地 CCR 存储,智能体随时可用恢复句柄(recovery handle)取回原始字节。
它对外只暴露 4 个工具:browser_snapshot(快照)、browser_act(点击等动作)、browser_eval(执行 JS)、browser_recover(恢复原始数据)。
实测数据:121 Token 对抗 15,704 Token
基准测试使用 Chrome 151 + 固定版本 Playwright,每个数据为 5 次独立运行的中位数,详见 browse/BENCHMARK.md。
大页面:运营后台 200 行订单表格
| 表示方式 | Token 数 | 对比原始 AX 树 |
|---|---|---|
原始Accessibility.getFullAXTreeJSON | 398,494 | — |
| Playwright ARIA 快照 | 15,704 | 少 96.06% |
| Caveman 完整结果(含 UID、恢复句柄、精确计数) | 13,368 | 少 96.65% |
Caveman 聚焦查询ORD-0173 | 121 | 少 99.97%(比 Playwright 小 129.8 倍) |
关键点在于最后一行:当智能体明确"我要处理订单 ORD-0173"时,Caveman 的query参数只返回最相关的最高分匹配节点及其祖先节点(最多 12 个),最终仅121 个 Token——而 Playwright 基线是 15,704 个。
小页面:诚实的失利
在极小的结账表单页上,Caveman(111 Token)反而比 Playwright(67 Token)更大。这是官方主动披露的:Caveman 额外返回了操作 UID、恢复句柄和精确 Token 计数,而这些能力在微型页面上"不划算"。官方没有宣称"任何页面都赢",这正是这个项目可信的原因。
快速上手:从安装到首次快照
一键安装 Caveman
npm install -g @caveman-ai/cli && caveman setup --install完整安装说明见 INSTALL.md(支持 Windows/macOS/Linux,需 Node.js 18+)。
用 Caveman Browse 读取网页
caveman browse https://example.com "pricing" # 带查询词的聚焦快照 caveman browse act <uid> click # 对指定元素执行点击 caveman browse eval 'document.title' # 执行 JS 表达式 caveman browse recover <handle> # 恢复字节级原始数据 caveman browse close # 关闭共享 Chrome也可直接构建独立二进制:
go build ./browse/cmd/caveman-browseMCP 方式接入任意智能体时,用caveman tools browse <url> "<query>"即可,详见 docs/technical/local-tools.md。
查询聚焦:大页面的黄金用法
对大型页面,永远带上 query 参数。browser_snapshot.query是专为大页面设计的 Token 高效路径:它保留最匹配的无障碍节点及其祖先,同时在 CCR 中留存完整原始树。紧凑输出采用[uid] role "name"行格式,只有可操作元素才分配 UID Token。
安全设计:它不会偷偷做坏事
面向普通用户,几个安全细节值得了解:
- 导航白名单:只允许
http(s)、about:blank和有界data:text/html,拒绝file:、javascript:等特权协议; - 失败即关闭:未知句柄或动作会直接报错(
cave_snake_code错误),绝不把原始 AX 树倾倒给智能体; - 本地优先:快照、CCR 存储全部在本地磁盘(
~/.caveman/),不依赖 Caveman 云端账号; - 诚实标注:所有节省数据标记为
inferred(推断值),因为真实计费数据只有服务商知道。
适用边界:什么时候该用、什么时候别用
| 场景 | 是否推荐 |
|---|---|
| 大型后台页面、长列表、数据仪表盘 | ✅ 强烈推荐,聚焦查询收益最大 |
| 同域内可预测控件的自动化操作 | ✅ 官方 Phase 1 覆盖范围 |
| 极小表单页 | ⚠️ 可能比裸 ARIA 文本略大,换取的是 UID 与恢复能力 |
| 跨源 iframe、下载、弹窗、任意站点操作 | ❌ 明确列为延后功能 |
写在最后
Caveman Browse 证明了一个思路:智能体浏览器操作的成本瓶颈不在"操作"本身,而在"看到"。把 39 万 Token 的原始 AX 树压缩到 121 Token 的聚焦视图,同时保留字节级恢复能力——这就是"少即是多"在 AI 工具链里的落地。
想深入了解架构,可以阅读 docs/technical/architecture.md 与 docs/technical/engine.md;想看基准测试如何复现,browse/BENCHMARK.md 里附了完整的可执行命令。
【免费下载链接】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),仅供参考