Headroom:压缩工具输出与RAG内容,减少LLM令牌消耗
一个给AI代理压缩工具输出和RAG内容的本地组件,省令牌且不把原文发走。
GitHub headroomlabs-ai/headroom 更新 2026-10-20 分支 main 星标 76.2K 分叉 5.9K
Python Rust TypeScript LLM上下文压缩 RAG ONNX Runtime Claude Code MCP Apple Silicon

🧭 决策指南

适合,如果你

  • 你在Claude Code或其他编码代理中处理大量工具输出、日志或文件。
    README 的“Get started”与“Agents”内容提供`headroom wrap claude`,核心描述明确包含tool outputs、logs和files。
  • 你希望用代理模式接入现有LLM调用而不修改业务代码。
    README 的“Get started”提供`headroom proxy --port 8787`,并标注“drop-in proxy, zero code changes”。
  • 你的Python应用使用OpenAI客户端,并希望直接获得压缩结果统计。
    README 的Python示例使用`from headroom import compress`、`model="gpt-4o"`以及`result.tokens_saved`。
  • 你的环境是Apple Silicon或具备AVX2的Linux/x86主机。
    README 的“Install”说明原生wheel覆盖Apple Silicon和Linux,并说明x86/x86_64的ONNX功能需要AVX2。

不适合,如果你

  • 你必须在Intel macOS上直接使用默认源码安装,不愿配置Homebrew onnxruntime。
    README 的“Intel macOS: no prebuilt ONNX Runtime”说明`x86_64-apple-darwin`默认源码构建失败,并要求`ORT_LIB_LOCATION`等配置。
  • 你只安装npm包,却需要使用`headroom`命令行。
    README 的“Get started”明确说明npm `headroom-ai`是TypeScript SDK only,不提供`headroom` command。
  • 你的x86主机没有AVX2,却必须使用Magika或embedding relevance的ONNX路径。
    README 的“CPU requirement (x86/x86_64)”说明无AVX2时会回退到BM25 relevance和heuristic detection。
  • 网络策略同时阻断`cdn.pyke.io`和`huggingface.co`,且不能预下载资源或设置离线变量。
    README 的“Two download hosts can still need attention”要求预提供ONNX Runtime,或预下载模型并使用`HF_HUB_OFFLINE=1`。

前置条件

  • Python安装路径要求Python 3.10+;CLI示例使用Python 3.13。 / Python installation requires Python 3.10+; the CLI examples use Python 3.13.
  • ONNX-backed功能在x86/x86_64上需要AVX2;无AVX2会使用BM25和启发式回退。 / ONNX-backed features require AVX2 on x86/x86_64; without it, BM25 and heuristic fallbacks are used.
  • CLI来自PyPI包`headroom-ai[all]`,npm `headroom-ai`仅提供TypeScript SDK。 / The CLI comes from the PyPI package `headroom-ai[all]`; npm `headroom-ai` provides only the TypeScript SDK.
  • 需要模型或ONNX资源时,README列出`cdn.pyke.io`和`huggingface.co`。 / When model or ONNX assets are needed, the README lists `cdn.pyke.io` and `huggingface.co`.

第一步命令(README 原文)

uv tool install --python 3.13 "headroom-ai[all]"

要注意

  • Claude Code的Serena默认只注册到wrapped project的local范围。
    README 的`headroom wrap`说明Serena注册在`~/.claude.json`的local-scope;全局需`--code-memory-scope user`。
  • MCP客户端可能不继承PATH,配置时应使用`command -v headroom`返回的绝对路径。
    README 的“uv, pipx, and MCP clients that don't inherit your PATH”明确要求配置绝对路径。
  • Intel macOS的`ORT_LIB_LOCATION`必须指向lib目录而不是Homebrew前缀。
    README 的“Intel macOS”明确说明`ORT_LIB_LOCATION`必须指向`lib/`,且需要`ORT_PREFER_DYNAMIC_LINK=1`。
  • 启用`[vector]`需要C++工具链,并且不包含在`[all]`中。
    README 的“Install”对`[vector]`标注optional HNSW backend、needs a C++ toolchain、not in `[all]`。

替代方案

  • BM25 relevance与heuristic detection:x86主机没有AVX2,且可以接受README所述的非ONNX回退路径时更合适。
    Install
  • 纯gateway模式:只需要转发网关而不启用压缩资源时更合适,因为README说明该模式不需要相关asset。
    Install

材料未说明

  • README截取材料未提供不同模型下的延迟、内存和CPU开销数据。
  • README截取材料未提供“Agent compatibility”章节的完整兼容矩阵。
  • 除10,144→1,260 tokens示例外,材料未给出各类日志、文件和RAG chunks的独立压缩效果。
  • 材料未说明压缩对不同模型回答质量的系统性评测范围;仅给出同一FATAL的示例。
  • 材料未提供Release v0.41.0的变更内容,无法判断该版本带来的具体能力变化。
  • 材料未说明Headroom for Teams的席位、权限、计费或部署边界。

💡 深度解析

6
适合 我在 Codex 中通过 MCP 使用 Headroom,但客户端不会继承交互式 Shell 的 PATH;我应该怎样配置,才能避免 `headroom` 命令启动失败?
适合读者: 使用 MCP 的 Codex 客户端用户、运行在不继承交互式 PATH 的环境中

适合,但必须使用 Headroom 的绝对路径配置 MCP;README 已明确指出 Codex 等客户端常常不能继承交互式 Shell 的 PATH。

  • README 要求先用 command -v headroom 找到可执行文件路径,再把该绝对路径放入 MCP 配置的 command 字段。
  • 示例配置使用 args = ["mcp", "serve"],而不是把 npm 包当作 CLI 使用。
  • CLI 只随 PyPI 包提供;npm install headroom-ai 只安装 TypeScript SDK,不提供 headroom 命令。
  • 如果通过 uv 安装,还要确认 uv tool 目录已加入 PATH;否则客户端仍可能无法找到命令。

README 没有说明 Codex 具体版本、MCP 配置文件位置或客户端对 stdio 启动错误的诊断方式,因此这些部分需要结合客户端文档确认。

  • uv, pipx, and MCP clients that don't inherit your PATH: “Codex and other MCP clients often cannot inherit an interactive shell `PATH`”
  • README 示例:`command = "/Users/you/.local/bin/headroom"` 与 `args = ["mcp", "serve"]`
  • Install: “The `headroom` CLI ships only in the PyPI package. The npm `headroom-ai` package is the TypeScript SDK”
  • Install: `uv tool update-shell`
command -v headroom
材料未说明:README 未说明 Codex 当前版本对应的 MCP 配置文件路径。;README 未说明 Codex 对 MCP stdio 日志、启动超时和退出码的具体处理方式。;README 未说明多个 MCP server 同时运行时的端口或进程资源要求。
适合 我已经用 Python 的 OpenAI SDK 调用 `gpt-4o`,当前主要问题是工具和 JSON 输出过长;我不想重写 Agent,能否只在模型请求前接入 Headroom?
适合读者: 已有 OpenAI Python 调用链、想低改造成本接入上下文压缩的应用开发者

适合,因为 Headroom 提供 Python inline API,也提供不改现有调用代码的 OpenAI 兼容 Proxy。

  • README 的 Python 示例直接调用 compress(messages, model="gpt-4o"),再把 result.messages 传给 client.chat.completions.create。
  • 若不想修改调用链,可运行 headroom proxy --port 8787;README 将其描述为“drop-in proxy, zero code changes”。
  • 项目专门处理 JSON、工具输出、日志、文件和 RAG chunks;项目描述给出 JSON 可减少 60% 至 95% Token,但实际比例取决于输入。
  • 压缩在本机执行,提示词和文件内容不会发送到远程压缩服务。

需要注意,Proxy 会增加本地路由层,README 未说明你现有 OpenAI SDK、代理环境变量和重试逻辑是否无需额外配置。

  • Inline, in Python: `from headroom import compress` and `compress(messages, model="gpt-4o")`
  • Get started (60 seconds): `headroom proxy --port 8787 # drop-in proxy, zero code changes`
  • 项目描述: “60-95% fewer tokens for JSON”
  • Quickstart: “Compression runs on your machine; no prompt or file content is sent anywhere to be compressed.”
headroom proxy --port 8787
材料未说明:README 未说明 OpenAI SDK 的 base URL、认证变量和流式请求需要怎样配置。;README 未说明 Proxy 对函数调用、工具调用参数和多模态消息的完整兼容范围。;README 未给出压缩处理本身增加的平均延迟。
视情况 我需要在没有 AVX2 的 x86 云主机上压缩敏感日志和 JSON,并且不希望内容离开机器;Headroom 是否仍然可用?
适合读者: 在无 AVX2 的 x86 云主机上部署 Headroom、需要本地处理敏感日志的运维开发者

视情况,因为 Headroom 在无 AVX2 的 x86 主机上不会因 ONNX 能力直接崩溃,但会回退到非 ONNX 路径,效果和性能可能不同。

  • README 说明 Magika 内容检测和 embedding relevance 使用需要 AVX2 的预编译 ONNX Runtime。
  • 无 AVX2 时会回退到 BM25 relevance 和 heuristic detection;这保留了可用性,但不等价于完整的 ONNX 路径。
  • README 明确表示压缩在本机执行,提示词和文件内容不会发送到远程压缩服务,符合敏感日志的本地处理约束。
  • 可使用 Docker 部署;README 还指出 Intel macOS 应使用 Docker-native install,但没有把该限制直接扩展到所有 x86 云主机。

因此,若工作负载接受 BM25 和启发式路径,可以考虑;若必须使用 embedding relevance 或 Magika 的完整能力,README 没有保证无 AVX2 时的效果、延迟或资源占用。

  • Install: “The ONNX-backed features — Magika content detection and embedding relevance — use a precompiled ONNX Runtime that needs AVX2”
  • Install: “Headroom falls back to its non-ONNX paths — BM25 relevance, heuristic detection”
  • Quickstart: “Compression runs on your machine; no prompt or file content is sent anywhere to be compressed.”
  • Install: `docker pull ghcr.io/headroomlabs-ai/headroom:latest`
docker pull ghcr.io/headroomlabs-ai/headroom:latest
材料未说明:README 未给出无 AVX2 与完整 ONNX 路径之间的压缩比例、召回质量和延迟对比。;README 未说明云主机的最低内存、CPU 核数或 Docker 资源限制。;README 未说明本地持久化部署在无 AVX2 环境下是否有额外配置。
适合 我每天用 Claude Code 处理大型代码仓库,希望减少工具输出、文件和会话历史的 Token,但不想手工修改代理配置;Headroom 是否适合?
适合读者: 使用 Claude Code、希望减少代码代理上下文 Token 的个人开发者

适合,因为 README 直接提供了面向编码代理的 wrap 模式,并且压缩在本机完成。

  • headroom wrap claude 会启动本地代理、配置 Claude Code,并可安装 Serena 进行语义代码导航。
  • 项目覆盖工具输出、日志、文件和会话历史;README 给出的示例是从 10,144 个 Token 压缩到 1,260 个,同时找到同一个 FATAL。
  • README 对编码代理给出的说明是“20% fewer tokens for coding agents”,但这不是所有仓库和任务的保证。

如果团队要求所有项目共享 Serena,可使用 --code-memory-scope user;若不需要,则可用 --code-memory none 跳过。README 没有说明不同 Claude Code 版本、仓库规模或压缩后代码修改正确率的系统测试结果。

  • Get started (60 seconds): `headroom wrap claude`
  • Quickstart: “Headroom compresses everything your AI agent reads — tool outputs, logs, RAG chunks, files, and conversation history”
  • Agents: “headroom wrap starts a local proxy, installs Serena for semantic code navigation”
  • 项目描述: “20% fewer tokens for coding agents”
headroom wrap claude
材料未说明:README 未给出 Claude Code 不同版本的兼容性矩阵。;README 未量化压缩对代码修改正确率、测试通过率和端到端延迟的影响。;README 未说明大型仓库中 Serena 与 Headroom 的资源消耗。
适合 我所在企业网络会进行 SSL inspection,平台统一使用 Python 3.13,并希望通过 uv 安装隔离的 Headroom CLI;安装失败时该怎么判断是否适合采用?
适合读者: 在企业 TLS 检查网络中使用 Python 3.13、希望通过 uv 安装 CLI 的平台工程师

适合,README 同时覆盖 Python 3.13 的 uv 隔离安装、企业 CA 导致的证书错误以及无本地 Rust 构建的替代路径。

  • 推荐命令是 uv tool install --python 3.13 "headroom-ai[all]",CLI 会安装在自包含环境中。
  • 若出现 CERTIFICATE_VERIFY_FAILED,README 解释这是企业 SSL inspection 可能造成的 CA 信任问题,并给出先安装 Rust 的处理方式。
  • 若匹配预编译 wheel,可使用 pip install --only-binary headroom-ai headroom-ai,避免构建阶段下载 Rust;README 也列出 Windows、Linux 和 macOS wheel。
  • 运行时可用 headroom doctor --network 检查上游证书签发者、信任状态和网关阻断页。

但 README 没有给出企业代理认证、内部 PyPI 镜像或模型下载域名白名单的完整配置,也没有保证 [all] 包含所有框架适配器。

  • Get started (60 seconds): `uv tool install --python 3.13 "headroom-ai[all]"`
  • Corporate networks and SSL inspection: `CERTIFICATE_VERIFY_FAILED` 与企业 CA 说明
  • Corporate networks and SSL inspection: `pip install --only-binary headroom-ai headroom-ai`
  • Corporate networks and SSL inspection: `headroom doctor --network`
  • Install: “`[all]` covers the core stack but not the framework adapters.”
uv tool install --python 3.13 "headroom-ai[all]"
材料未说明:README 未说明企业代理需要哪些认证变量或代理参数。;README 未说明如何配置内部 PyPI 镜像及模型下载域名白名单。;README 未说明离线安装时 `[all]` 依赖和模型文件的完整预下载清单。
视情况 我用 LangChain 构建 RAG,检索结果包含大量重复片段,想保留相关内容但减少发送给 LLM 的 Token;Headroom 是否能直接接入?
适合读者: 使用 LangChain 构建 RAG 应用、需要压缩检索片段的 Python 应用团队

视情况,因为 Headroom 有 LangChain 适配器和相关性处理能力,但压缩会改变检索上下文,是否适合取决于任务是否允许筛选或重组原文。

  • LangChain 适配器需要单独安装;README 明确说明 [all] 不包含框架适配器,应安装 headroom-ai[langchain]。
  • 项目覆盖 RAG chunks,并提供 BM25、Embedding 和可选向量后端等相关性路径。
  • headroom perf 和 headroom dashboard 可观察压缩效果;dashboard 要求 Proxy 正在运行。
  • 对必须逐字保留原文、完整数值或所有引用边界的任务,项目洞察明确列为不适合,因为压缩可能造成信息损失。

README 没有给出 LangChain chain、retriever 类型或具体 embedding 模型的兼容矩阵,也没有提供压缩前后召回率、引用准确率和答案一致性的统一基准。

  • Install: “`[all]` covers the core stack but not the framework adapters”
  • Install: `pip install "headroom-ai[langchain]"`
  • 项目洞察:压缩对象包括 “RAG chunks”
  • 项目洞察 usage_limitations:不适合必须逐字读取完整原文的审计、取证或精确数据处理任务
  • Get started (60 seconds): `headroom perf` / `headroom dashboard`
pip install "headroom-ai[langchain]"
材料未说明:README 未说明 LangChain 版本、chain 类型和 retriever 实现的兼容范围。;README 未提供 RAG 召回率、引用准确率或回答一致性的量化结果。;README 未说明使用 Embedding 或向量后端时的模型下载大小和运行时延迟。

✨ 核心亮点

  • 工具输出、日志、文件和RAG chunks进入LLM前压缩
  • 示例将10,144 tokens压到1,260,仍找到同一FATAL
  • 支持库、proxy、MCP server及Claude Code包装模式
  • 本机执行压缩,README称prompt和文件内容不会外传
  • ONNX功能在x86主机要求AVX2,否则回退BM25与启发式路径

🔧 工程化

  • `headroom proxy --port 8787`提供无需改代码的代理模式
  • `headroom wrap claude`启动本地代理并配置Serena
  • Python可用`compress`处理消息,返回tokens_saved与压缩比例

⚠️ 风险

  • Intel macOS没有预构建ONNX Runtime,源码安装默认失败
  • x86无AVX2时Magika和embedding relevance改走回退路径
  • `npm install headroom-ai`只有TypeScript SDK,不提供headroom命令
  • 运行时可能依赖cdn.pyke.io与huggingface.co下载资源

👥 适合谁?

  • 使用Claude Code、MCP或编码代理且关注上下文成本的团队
  • 需要接入OpenAI Python客户端或TypeScript SDK的开发者
  • 在Apple Silicon、Linux或支持AVX2的x86环境运行者