OpenClaw 夜间仓库巡检会调用 linter、测试与 grep,把数 MB 的 JSON灌进模型上下文。按 Anthropic 标价原样付费,自律的自动化也会变成四位数 API 账单。Headroom 插在网关与供应商之间:默认 8787 端口的本地代理,在请求抵达 api.anthropic.com 前用 SmartCrusher / CodeCompressor / CCR 压缩工具输出、日志与历史。公开基准显示 SRE 类追踪可减 92% 令牌,代码搜索负载 73–92%——本指南在工具密集回合上瞄准 60–80%+,无需改动 Skill Markdown。
请与 OpenClaw 令牌预算与工具节流、macOS 上的 LaunchAgent 与 cron 搭配;密钥卫生见 openclaw.json 与 .env 配置。
披露:MacHTML 可选提供云 Mac mini 用于网关演练;本手册厂商中立,适用于任意 macOS 主机。
为何 OpenClaw + Headroom 是独特组合
OpenClaw 擅长常开网关:Slack/Telegram 入口、工具白名单、反复读取巨型工作区的多步 Skill。Headroom 擅长上下文压缩——不是改写你的意图,而是缩小工具返回值。多数团队只拉一根杠杆,因此这一组合少见:
| 杠杆 | 削减对象 | 盲点 |
|---|---|---|
| 仅 OpenClaw 节流 | 回合数、并发 | 仍原样送入 50 KB linter JSON |
| 仅换小模型 | 输入/输出单价 | 复杂审计易漏报 |
| Skill 内手工截断日志 | 临时手工 | 破坏 cron 可复现性 |
| Headroom 代理 + OpenClaw | 供应商前的工具/RAG/日志令牌 | 需本地 Python 3.10+ 进程 |
Headroom README 将 OpenClaw 列为一级集成(ContextEngine 插件与通用 OpenAI 兼容代理)。你保留 OpenClaw 编排;Headroom 改写模型看到的载荷形态。
外部参考:Headroom GitHub、Headroom 代理文档、Anthropic API。
架构:网关 → 代理 → Anthropic
┌─────────────┐ HTTP/SSE ┌──────────────────────┐ HTTPS ┌─────────────────┐
│ OpenClaw │ ────────────► │ Headroom proxy │ ────────► │ api.anthropic.com│
│ gateway │ 127.0.0.1:8787│ SmartCrusher + CCR │ │ (real API key) │
│ :8788 tools │ │ /v1/messages │ └─────────────────┘
└─────────────┘ └──────────────────────┘
▲ │
│ tool stdout/json │ headroom_retrieve if model needs originals
└──────────────────────────────┘
路由规则:OpenClaw 从环境(~/.openclaw/.env)与 openclaw.json 读取供应商 Base URL。将 Anthropic 流量指向 Headroom,而非公网端点。Headroom 用代理进程环境中的真实 ANTHROPIC_API_KEY 转发——OpenClaw 可沿用同一变量名,但主机须为本地。
端口纪律:Headroom 默认绑定 8787——与许多 OpenClaw 网关示例相同。生产环境建议 Headroom 占 8787、OpenClaw 网关改 8788(亦可对调)。在 LaunchAgent plist 中成对记录。
分步手册(macOS 2026)
1. 安装带 proxy 扩展的 Headroom
python3 --version # must be 3.10+
pip install "headroom-ai[proxy]"
headroom --version
Apple Silicon 上磁盘允许可装 pip install "headroom-ai[all]";仅 proxy 可减小镜像体积。
2. 启动代理并开启日志与统计
export ANTHROPIC_API_KEY="sk-ant-..." # real key — proxy forwards upstream
headroom proxy \
--host 127.0.0.1 \
--port 8787 \
--log-file ~/.headroom/openclaw-proxy.jsonl
验证健康状态:
curl -s http://127.0.0.1:8787/health | python3 -m json.tool
curl -s http://127.0.0.1:8787/stats | python3 -m json.tool
测试流量后应看到 optimize: true 与持续增长的 tokens_saved。
3. 将 OpenClaw 的 Anthropic 调用经代理路由
编辑 ~/.openclaw/.env(chmod 600):
ANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_BASE_URL=http://127.0.0.1:8787
# If you use OpenAI-compatible models in the same gateway:
# OPENAI_BASE_URL=http://127.0.0.1:8787/v1
确认网关在启动前解析环境——见 JSON 与 .env 配置。勿提交这些行。
4. 必要时将 OpenClaw 网关移出 8787
当 Headroom 占用 8787 时,在 ~/.openclaw/openclaw.json 将网关监听设为 8788:
{
"gateway": {
"port": 8788,
"host": "127.0.0.1"
}
}
重启网关;健康探针应对准 8788,而非 Headroom 端口。
5. 可选——Headroom OpenClaw 原生插件路径
Headroom 将 OpenClaw 文档化为 ContextEngine 插件(headroom/providers/openclaw)。若偏好插件而非裸 Base URL:
pip install "headroom-ai[all]"
headroom wrap openclaw # when available in your installed version
若无 wrap openclaw,请坚持 proxy + ANTHROPIC_BASE_URL——见 代理文档的通用路径。
6. 用大工具载荷做冒烟压缩测试
触发返回大 JSON 的 Skill(测试输出或 find)。对比:
curl -s http://127.0.0.1:8787/stats | python3 -m json.tool
tail -n 5 ~/.headroom/openclaw-proxy.jsonl
目标:首次真实审计 savings_percent 趋向 ≥40%;工具密集夜间常超 60–80%。
7. 用 launchd 持久化 Headroom(与 OpenClaw 并行)
创建 ~/Library/LaunchAgents/ai.headroom.proxy.plist,ProgramArguments 调用 headroom proxy --host 127.0.0.1 --port 8787,EnvironmentVariables 注入 ANTHROPIC_API_KEY,StandardOutPath 指向 ~/.headroom/logs/。在 ai.openclaw.gateway 之前加载,确保网关启动时 Base URL 可用——模式见 LaunchAgent 指南。
8. 接入 MCP / Claude Code 边车(可选)
Headroom 暴露 MCP 工具(headroom_compress、headroom_retrieve、headroom_stats)。为 Claude Code 沙箱供料 OpenClaw Skill 时,安装一次 MCP:
headroom mcp install
OpenClaw Skill 可调用 http://127.0.0.1:8787/stats 做看板。
9. 在代理上设置预算护栏
headroom proxy --port 8787 --budget 50.0 --log-file ~/.headroom/openclaw-proxy.jsonl
--budget 50.0 在 Headroom 内设置美元日上限——补充而非替代 OpenClaw 单回合节流。
10. 用 openclaw doctor 验证
openclaw doctor
Doctor 应显示网关在 8788 健康、供应商经 127.0.0.1:8787 可达,且无端口冲突(EADDRINUSE)。
夜间巡检流水线模式
典型本地 02:00 cron 或 LaunchAgent 触发 OpenClaw Skill:
git fetch --all并与maindiff- 经允许的工具运行
npm test/eslint/ 自定义审计脚本 - 将摘要发到 Slack
无 Headroom 时,步骤 2 常注入 1.5万–6.5万 令牌 stderr(公开 SRE 基准:65,694 → 5,118)。经代理压缩,模型可通过 CCR 取回 还原 FATAL 行。
可引用:经 127.0.0.1:8787 的 Headroom 路由 OpenClaw Anthropic 流量,可在保留 CCR 可逆性的同时将工具密集上下文减少 60–92%——与 OpenClaw 节流叠加控费,而非替代。
若将记忆压缩与 HTTP 层工具压缩分离,请对照 Hermes 与 OpenClaw。
大陆节点建议预留出口带宽并配置 npm 镜像;云 Mac mini 演练约 ¥120/天,仅作容量参考。
故障排查
聊天返回 502 / 连接被拒绝
现象:启用代理后 OpenClaw 日志立即出现上游错误。
修复:确认 Headroom 在监听(curl http://127.0.0.1:8787/health)。若网关与代理争抢 8787,拆分端口(步骤 4)。按序重载 LaunchAgent:先 Headroom,后 OpenClaw。
/stats 节省率接近 0%
现象:tokens_saved 持平;transforms 为空。
修复:确保流量经代理——ANTHROPIC_BASE_URL 须设在网关进程环境,而非仅交互 Shell。调试可临时 headroom proxy --no-optimize 对比。大载荷须为工具/消息体,而非短提示。
模型“丢失”堆栈细节
现象:压缩回合缺少审计期望的行号。
修复:Headroom CCR 本地存原文;在 Skill 中允许 headroom_retrieve,或单次诊断回合设 x-headroom-bypass: true。勿为夜间任务全局关压缩——改检索策略。
Mac mini 上 EMFILE 或 CPU 飙升
现象:并发审计 + ML 压缩(--llmlingua)打满 Apple Silicon。
修复:非必要去掉 --llmlingua;对齐 工具并行 / ulimit。cron 窗口将 OpenClaw 并发工具调用限制为 3–5。
常见问题
Headroom 会取代 OpenClaw 令牌节流吗?
不会。Headroom 缩小进入模型的内容;OpenClaw 限制工具触发频率。两者并用——见 令牌预算手册。
80% 节省是否保证?
Headroom 按负载公布 60–95% 区间。OpenClaw 工具密集审计常见 60–92%;短对话节省更少。用仓库实测 /stats。
Anthropic 会拦截代理请求吗?
Headroom 用密钥转发官方 API——与直连 SDK 相同。仅在代理主机保存 ANTHROPIC_API_KEY;日志泄露则轮换。
Headroom 在 Linux、OpenClaw 在 macOS 可行吗?
可以——防火墙允许时设 ANTHROPIC_BASE_URL=http://linux-host:8787。延迟敏感网关宜在同一 Mac mini共置代理。
与 Hermes 轨迹压缩有何不同?
Hermes 压缩Agent 记忆轨迹;Headroom 在 HTTP 层压缩工具输出与消息。选型见 Hermes 与 OpenClaw——可分机共存。
改用本地 Ollama而非 Anthropic?同一 Headroom 代理可压缩端侧模型的工具载荷——参阅 Headroom + Ollama 本地加速指南,修复 16 GB Mac mini 上的预填充卡顿。