headroomlabs-ai / headroom
headroomlabs-ai/headroom
在数据到达LLM之前压缩工具输出、日志、文件和RAG分块,为编码代理减少20%的令牌,为JSON减少60-95%的令牌,同时保持答案不变。提供库、代理和MCP服务器。
项目概览
项目概述
Headroom 是一个面向 AI 代理的上下文压缩层,旨在减少发送给大语言模型(LLM)的令牌数量,同时保持答案质量。它支持多种部署模式:作为 Python/TypeScript 库、本地代理服务器、MCP 服务器,以及命令行工具。Headroom 能够压缩工具输出、日志、文件、RAG 分块和对话历史,声称对 JSON 数据可减少 60-95% 的令牌,对编码代理可减少 15-20% 的令牌。项目采用 Apache-2.0 许可证,主要使用 Python 编写,并提供 TypeScript SDK。
核心功能
- 多模式部署:支持库模式(
compress(messages))、代理模式(headroom proxy)、代理包装(headroom wrap)和 MCP 服务器。 - 内容感知压缩:通过 ContentRouter 检测内容类型,并使用 SmartCrusher(JSON)、CodeCompressor(AST)和 Kompress-v2-base(文本)等压缩器。
- 可逆压缩(CCR):原始内容被本地缓存,LLM 可通过
headroom_retrieve按需检索。 - 跨代理记忆:共享存储,支持 Claude、Codex、Gemini、Grok 等,自动去重。
- 输出令牌减少:通过代理调整模型输出,减少冗余表述和深度思考。
headroom learn:从失败会话中挖掘经验,写入CLAUDE.local.md等文件。- 缓存对齐:检测可能破坏提供商 KV 缓存前缀的易变内容,并发出警告。
- 实时区域压缩:仅压缩新增字节,保持冻结前缀不变,避免缓存失效。
适用与不适用场景
适用场景:
- 日常使用 AI 编码代理,希望在不修改代码的情况下节省令牌。
- 跨多个代理工作,需要共享记忆。
- 需要可逆压缩,原始内容可在 TTL 内检索。
不适用场景:
- 仅使用单一提供商的原生压缩,且不需要跨代理记忆。
- 在沙盒环境中运行,无法启动本地进程。
技术架构与依赖
- 核心组件:CacheAligner、ContentRouter、CCR、SmartCrusher、CodeCompressor、Kompress-v2-base。
- 语言:Python 3.10+(核心),TypeScript SDK(
headroom-ainpm 包)。 - 依赖:FastAPI(代理)、LiteLLM(定价)、ONNX Runtime(内容检测)、HuggingFace 模型(文本压缩)。
- 可选扩展:
[proxy]、[mcp]、[ml]、[code]、[memory]、[vector](HNSW)、[relevance]、[image]、[agno]、[langchain]、[evals]、[pytorch-mps]。 - 平台支持:macOS Apple Silicon、Linux(x86_64/aarch64)、Windows(部分)。
安装与快速开始
# 安装 CLI(推荐使用 uv)
uv tool install --python 3.13 "headroom-ai[all]"
# 或使用 pip
pip install "headroom-ai[all]"
# TypeScript SDK(仅库,无 CLI)
npm install headroom-ai
# 快速开始
headroom deploy # 一键本地部署
headroom wrap claude # 包装编码代理
headroom proxy --port 8787 # 启动代理
headroom doctor # 健康检查
典型使用方法
库模式(Python):
from headroom import compress
compressed = compress(messages, model="claude-3-5-sonnet")
代理模式:
headroom proxy --port 8787
# 配置客户端使用 http://127.0.0.1:8787 作为 API 端点
MCP 服务器:
headroom mcp install
# 在 MCP 客户端中配置 headroom 服务器
包装代理:
headroom wrap claude
headroom unwrap claude
配置与部署要点
- 环境变量:
HEADROOM_OUTPUT_SHAPER=1启用输出缩减,HEADROOM_TLS_STRICT=0处理严格 TLS,HEADROOM_UPDATE_CHECK=off禁用更新检查。 - 代理配置:可通过
--backend bedrock等参数指定后端,支持 AWS Bedrock。 - MCP 配置:对于 Codex 等客户端,需使用绝对路径配置
command。 - 企业部署:支持 Docker 镜像(
ghcr.io/chopratejas/headroom:latest),提供托管服务。 - 平台注意事项:Intel macOS 需手动安装 ONNX Runtime;x86 主机需 AVX2 支持。
限制、风险与许可证
- 许可证:Apache-2.0。
- 限制:需要本地进程运行;某些功能(如 ONNX 检测)依赖特定硬件;输出节省为估计值。
- 风险:压缩可能丢失细节,但 CCR 提供可逆性;代理可能引入延迟;企业环境需注意 SSL 检查。
- 安全:本地优先,数据不离开机器;但代理会处理敏感数据,需确保环境安全。
官方链接
- GitHub 仓库:https://github.com/headroomlabs-ai/headroom
- 文档:https://headroom-docs.vercel.app/docs
- PyPI:https://pypi.org/project/headroom-ai/
- npm:https://www.npmjs.com/package/headroom-ai
- HuggingFace 模型:https://huggingface.co/chopratejas/kompress-v2-base
- Discord:https://discord.gg/yRmaUNpsPJ
安装和使用 Headroom 主要有三种方式,你可以根据自己的技术栈和使用习惯来选择。对于大多数用户,最推荐的方式是通过 uv 或 pip 进行安装,然后以代理(Proxy)模式快速开始。
安装指南
Headroom 支持多种安装方式,核心要求是 Python 3.10+。
方式一:使用 uv 工具安装(推荐)
如果你在 macOS (Apple Silicon) 或 Linux 上,并希望拥有一个全局的 headroom 命令,这是最干净的方式。它会将 Headroom 安装在一个独立的环境中。
# 安装包含所有功能的完整版本,并指定使用 Python 3.13
uv tool install --python 3.13 "headroom-ai[all]"
# 验证安装
headroom --version
如果安装后系统找不到 headroom 命令,可以运行 uv tool update-shell 来更新 PATH。
方式二:在 Python 项目中使用 pip
如果你更习惯在 Python 的虚拟环境中管理包,可以使用 pip 进行安装。
-
仅核心包(基础压缩功能):
pip install headroom-ai -
安装特定功能(例如代理服务器、代码压缩等):
pip install "headroom-ai[proxy]" # 代理模式必须 pip install "headroom-ai[code]" # 启用AST感知的代码压缩 pip install "headroom-ai[all]" # 安装所有功能
方式三:其他安装方式
- Node.js/TypeScript 项目:
npm install headroom-ai - Docker 原生模式:
- Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/chopratejas/headroom/main/scripts/install.sh | bash - Windows PowerShell:
irm https://raw.githubusercontent.com/chopratejas/headroom/main/scripts/install.ps1 | iex
- Linux/macOS:
快速开始:代理模式
安装完成后,最快速的体验方式就是启动一个本地代理服务器,然后将你的 AI 客户端指向它。
-
启动 Headroom 代理: 在终端中执行以下命令,Headroom 会在
8787端口启动一个本地代理。headroom proxy --port 8787 -
配置你的 AI 工具: 将你的 AI 编码工具(如 Claude Code、Cursor 等)的 API 请求地址指向这个本地代理。
- 对于 Claude Code:
ANTHROPIC_BASE_URL=http://localhost:8787 claude - 对于任何 OpenAI 兼容客户端:
OPENAI_BASE_URL=http://localhost:8787/v1 your-app
如果使用 Claude Code 且觉得手动设置麻烦,也可以直接运行
headroom wrap claude,它会自动完成配置。 - 对于 Claude Code:
完成这两步后,所有经过代理的 API 请求和工具输出都会被 Headroom 自动压缩优化。
💡 补充信息:全局工具 HeadroomSwitch
如果你在 Windows 系统上使用多个 AI Agent,并希望更直观地管理 Headroom 的开关,可以关注社区开发的图形化工具 HeadroomSwitch。
它并非官方工具,但可以帮你一键开启/关闭对 Claude Code、Cursor 等 17 种 Agent 的压缩代理,并实时统计节省的 Token 数量。你可以在其 GitHub 仓库找到更多信息。