AI
Headroom 使用
Headroom 本地上下文压缩层:在工具输出、日志、文件和 RAG 块到达 LLM 之前对其进行压缩,节省 60-95% token。上游接 OmniRoute,下游模型无感。RTK 裁终端输出,Headroom 裁 API 上下文。
安装服务
前置:OmniRoute 已部署在同一 ~/.docker/compose.yml。
添加 Headroom 服务
~/.docker/compose.yml
services:
headroom:
image: ghcr.io/chopratejas/headroom:latest
container_name: headroom
ports:
- "127.0.0.1:20129:20129"
command: ["--host", "0.0.0.0", "--port", "20129"]
environment:
OPENAI_TARGET_API_URL: http://omniroute:20128/v1
LITELLM_SUPPRESS_DEBUG_INFO: "True"
restart: unless-stopped
volumes:
- ~/.docker/headroom-data:/root/.headroom
depends_on:
- omniroute
command覆盖镜像默认的--port 8787,使容器内也监听20129。OPENAI_TARGET_API_URL将压缩后的请求转发到同 compose 内的 OmniRoute。volumes把/root/.headroom(含proxy_savings.json统计、压缩缓存)挂到绑定挂载~/.docker/headroom-data,避免docker compose down/ 更新镜像后统计清零。
命令
# 启动
$ docker compose up -d headroom
# 停止
$ docker compose stop headroom
# 更新
$ docker compose up -d --pull always headroom
验证
$ curl http://127.0.0.1:20129/health
$ curl http://127.0.0.1:20129/stats
集成 MCP
provider
baseURL指向 Headroom proxy,MCP 通过docker exec进入容器。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"headroom": {
"type": "local",
"command": ["docker", "exec", "-i", "headroom", "headroom", "mcp", "serve", "--proxy-url", "http://localhost:20129"],
"enabled": true
}
},
"provider": {
"omniroute": {
"api": "openai-compatible",
"options": {
"baseURL": "http://127.0.0.1:20129/v1"
},
"models": {
"auto/best-free": { "name": "Auto Best Free", "description": "免费最优,日常首选" },
"oc/big-pickle": { "name": "Big Pickle", "description": "OpenCode 免费模型" },
"oc/deepseek-v4-flash-free": { "name": "DeepSeek V4 Free", "description": "DeepSeek V4 免费版" }
}
}
},
"model": "omniroute/auto/best-free"
}
流量路径:OpenCode → Headroom
:20129(压缩)→ OmniRoute:20128→ LLM。
~/.cursor/mcp.json
"mcpServers": {
"headroom": {
"command": "docker",
"args": ["exec", "-i", "headroom", "headroom", "mcp", "serve", "--proxy-url", "http://localhost:20129"]
}
}
运维与卸载
# 健康检查
$ curl http://127.0.0.1:20129/health
# 压缩统计
$ curl http://127.0.0.1:20129/stats
# 仪表盘
$ curl http://127.0.0.1:20129/dashboard
# MCP 状态(容器名 headroom,容器内 headroom CLI)
$ docker exec headroom headroom mcp status
# 删除容器
$ docker compose rm -f headroom
# 删除镜像
$ docker rmi ghcr.io/chopratejas/headroom:latest
卸载后从
~/.cursor/mcp.json或opencode.json移除headroom;OpenCode 还将 providerbaseURL改回http://localhost:20128/v1。
注意事项
- Headroom 与 OmniRoute 须在同一 compose 文件,容器间通过服务名
omniroute互通 - Proxy 压缩 HTTP 流量,MCP 压缩 Agent 主动提交的大块内容,二者数据面独立