Files
wehub-resource-sync 1a46bd5860
CI / changes (push) Waiting to run
CI / lint (push) Blocked by required conditions
CI / build-wheel (push) Blocked by required conditions
CI / test-dashboard-ui (push) Blocked by required conditions
CI / workflow-validation (push) Blocked by required conditions
CI / windows-native-wrapper (push) Blocked by required conditions
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime-code-nonroot name:code-nonroot]) (push) Waiting to run
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime-code-slim name:code-slim]) (push) Waiting to run
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime-code-slim-nonroot name:code-slim-nonroot]) (push) Waiting to run
CI / build-wheel-windows (push) Blocked by required conditions
CI / prefetch-model (push) Blocked by required conditions
CI / test (1) (push) Blocked by required conditions
CI / test (2) (push) Blocked by required conditions
CI / test (3) (push) Blocked by required conditions
CI / test (4) (push) Blocked by required conditions
CI / test-extras (push) Blocked by required conditions
CI / test-agno (push) Blocked by required conditions
CI / commitlint (push) Waiting to run
CI / build (push) Blocked by required conditions
CI / docker-native-e2e (push) Blocked by required conditions
CI / macos-native-wrapper (push) Blocked by required conditions
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime-nonroot name:nonroot]) (push) Waiting to run
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime-slim name:slim]) (push) Waiting to run
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime-slim-nonroot name:slim-nonroot]) (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime name:]) (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime-code name:code]) (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime-code-nonroot name:code-nonroot]) (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime-code-slim name:code-slim]) (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime-code-slim-nonroot name:code-slim-nonroot]) (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime-nonroot name:nonroot]) (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime-slim name:slim]) (push) Waiting to run
Docker / docker-manifest (map[bake_target:runtime name:]) (push) Blocked by required conditions
Docker / docker-manifest (map[bake_target:runtime-code name:code]) (push) Blocked by required conditions
Docker / docker-manifest (map[bake_target:runtime-slim-nonroot name:slim-nonroot]) (push) Blocked by required conditions
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime name:]) (push) Waiting to run
Docker / promote-latest (push) Blocked by required conditions
Init E2E / docker-init-e2e (push) Waiting to run
Init Native E2E / init-native (macos-latest, claude) (push) Waiting to run
Init Native E2E / init-native (macos-latest, codex) (push) Waiting to run
Install Native E2E / install-native (ubuntu-latest) (push) Waiting to run
Merge Conflicts / merge-conflicts (push) Waiting to run
Docker / docker-build (map[name:arm64 platform:linux/arm64 runs_on:ubuntu-24.04-arm], map[bake_target:runtime-slim-nonroot name:slim-nonroot]) (push) Waiting to run
Docker / docker-manifest (map[bake_target:runtime-code-nonroot name:code-nonroot]) (push) Blocked by required conditions
Docker / docker-manifest (map[bake_target:runtime-code-slim name:code-slim]) (push) Blocked by required conditions
Docker / docker-manifest (map[bake_target:runtime-code-slim-nonroot name:code-slim-nonroot]) (push) Blocked by required conditions
Docker / docker-manifest (map[bake_target:runtime-nonroot name:nonroot]) (push) Blocked by required conditions
Docker / docker-manifest (map[bake_target:runtime-slim name:slim]) (push) Blocked by required conditions
Docker / docker-build (map[name:amd64 platform:linux/amd64 runs_on:ubuntu-24.04], map[bake_target:runtime-code name:code]) (push) Waiting to run
Init Native E2E / init-native (macos-latest, copilot) (push) Waiting to run
Init Native E2E / init-native (ubuntu-latest, claude) (push) Waiting to run
Init Native E2E / init-native (ubuntu-latest, codex) (push) Waiting to run
Init Native E2E / init-native (ubuntu-latest, copilot) (push) Waiting to run
Install Native E2E / install-native (macos-latest) (push) Waiting to run
Release Please / release-please (push) Waiting to run
Security / Dependency audit (pip-audit) (push) Waiting to run
Security / CodeQL (javascript-typescript) (push) Waiting to run
Security / CodeQL (python) (push) Waiting to run
Security / Secret scan (gitleaks) (push) Waiting to run
Wrap E2E / docker-wrap-e2e (push) Waiting to run
Wrap Native E2E / wrap-native (macos-latest) (push) Waiting to run
Wrap Native E2E / wrap-native (ubuntu-latest) (push) Waiting to run
docs: make Chinese README the default
2026-07-13 09:51:56 +00:00

31 KiB
Raw Permalink Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

  ██╗  ██╗███████╗ █████╗ ██████╗ ██████╗  ██████╗  ██████╗ ███╗   ███╗
  ██║  ██║██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔═══██╗██╔═══██╗████╗ ████║
  ███████║█████╗  ███████║██║  ██║██████╔╝██║   ██║██║   ██║██╔████╔██║
  ██╔══██║██╔══╝  ██╔══██║██║  ██║██╔══██╗██║   ██║██║   ██║██║╚██╔╝██║
  ██║  ██║███████╗██║  ██║██████╔╝██║  ██║╚██████╔╝╚██████╔╝██║ ╚═╝ ██║
  ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚═╝     ╚═╝
              面向 AI 智能体的上下文压缩层

JSON 数据场景 token 减少 6095%,编码智能体场景减少 15-20% · 库 · 代理 · MCP · 内容感知压缩器 · 本地优先 · 可逆

CI codecov PyPI npm Model: Kompress-v2-base License: Apache 2.0 Docs

Docs · 安装 · 验证 · 智能体 · Discord · llms.txt

AI 智能体 / LLM请在此阅读 /llms.txt,或获取 实时索引 / 完整文档 blob


chopratejas%2Fheadroom | Trendshift

Headroom 会在内容到达 LLM 之前,压缩 AI 智能体读取的一切——工具输出、日志、RAG 分块、文件和对话历史。答案相同,token 仅为原来的一小部分。

Headroom 实际运行效果
实时演示:10,144 → 1,260 tokens — 同样找到 FATAL。

它能做什么

  • 库(Library — 在 Python 或 TypeScript 中使用 compress(messages),可内联集成到任意应用
  • 代理(Proxyheadroom proxy --port 8787,零代码改动,支持任意语言
  • 智能体封装(Agent wrap — 一条命令运行 headroom wrap claude|codex|copilot|cursor|aider|opencode|cline|continue|goose|openhands|openclaw|vibe;用 headroom unwrap <tool> 撤销
  • MCP 服务器headroom_compressheadroom_retrieveheadroom_stats,适用于任意 MCP 客户端
  • 跨智能体记忆(Cross-agent memory — 在 Claude、Codex、Gemini 之间共享存储,自动去重
  • headroom learn — 挖掘失败会话,将修正写入 CLAUDE.local.md(默认,已 gitignore)或 CLAUDE.md / AGENTS.md / GEMINI.md
  • 输出 token 缩减(Output token reduction — 裁剪模型写回的内容(不仅是发送给它的内容):去除冗余套话/重复代码,并在常规步骤中跳过深度“思考”。参见输出 token 缩减
  • 可逆(CCRReversible — 原文本地缓存,可按需检索

工作原理(30 秒)

 Your agent / app
   (Claude Code, Cursor, Codex, LangChain, Agno, Strands, your own code…)
        │   prompts · tool outputs · logs · RAG results · files
        ▼
    ┌────────────────────────────────────────────────────┐
    │  Headroom   (runs locally — your data stays here)  │
    │  ────────────────────────────────────────────────  │
    │  CacheAligner  →  ContentRouter  →  CCR            │
    │                    ├─ SmartCrusher   (JSON)        │
    │                    ├─ CodeCompressor (AST)         │
    │                    └─ Kompress-v2-base (text, HF)  │
    │                                                    │
    │  Cross-agent memory  ·  headroom learn  ·  MCP     │
    └────────────────────────────────────────────────────┘
        │   compressed prompt  +  retrieval tool
        ▼
 LLM provider  (Anthropic · OpenAI · Bedrock · …)
  • ContentRouter — 检测内容类型,选择对应压缩器
  • SmartCrusher / CodeCompressor / Kompress-v2-base — 压缩 JSON、AST 或散文文本
  • CacheAligner — 稳定前缀,使提供商 KV 缓存真正命中
  • CCR — 本地存储原文;若需要,LLM 可调用 headroom_retrieve

Architecture · CCR reversible compression · Kompress-v2-base model card

快速开始(60 秒)

# 1 — Install
uv tool install "headroom-ai[all]"      # Install `headroom` CLI as a global tool in self-contained virtual env
pip install "headroom-ai[all]"          # Python — ships the `headroom` CLI
npm install headroom-ai                 # TypeScript SDK only — no `headroom` CLI

# 2 — Pick your mode  (the `headroom` commands below come from the uv or pip install)
headroom wrap claude                    # wrap a coding agent
headroom proxy --port 8787              # drop-in proxy, zero code changes
# or: from headroom import compress      # inline library

# 3 — Verify setup and see the savings
headroom doctor                         # health check — confirms routing is working
headroom perf
headroom dashboard                      # live savings dashboard (proxy must be running)

建议使用 headroom 时,每次启动一个封装后的智能体会话,以确保完成所有必要配置。封装编码智能体时,headroom 会启动本地代理,设置提供 rtk、tokensave 等工具的 MCP 服务器,并启动已将请求代理到 headroom 的编码智能体会话。

headroom CLI 通过 PyPI 包分发。npm 上的 headroom-ai 是 TypeScript SDK——供导入的库(import { compress } from 'headroom-ai'),不是 CLI,因此不提供 headroom 命令。

细粒度可选依赖:[proxy][mcp][ml][code][memory][vector](可选 HNSW 后端——需要 C++ 工具链,不包含在 [all] 中)、[relevance][image][agno][langchain][evals][pytorch-mps](Apple GPU 内存嵌入器卸载——设置 HEADROOM_EMBEDDER_RUNTIME=pytorch_mps)。需要 Python 3.10+

Codex / 全局安装

若 Codex 或其他 MCP 客户端无法可靠继承 shell 中的 PATH,请将 Headroom 安装为持久化 uv 工具,并在客户端中指向该二进制文件的绝对路径:

uv tool install "headroom-ai[all]"
command -v headroom

然后在 MCP 配置中使用返回的路径:

[mcp_servers.headroom]
command = "/absolute/path/from/command-v/headroom"
args = ["mcp", "serve"]

仅当客户端启动时,PATH 已包含 uv 工具目录时,command = "headroom" 才有效。

验证

真实智能体工作负载上的节省:

工作负载 压缩前 压缩后 节省
代码搜索(100 条结果) 17,765 1,408 92%
SRE 事故排查 65,694 5,118 92%
GitHub issue 分类 54,174 14,761 73%
代码库探索 78,502 41,254 47%

在标准基准测试中保持准确性:

Benchmark Category N Baseline Headroom Delta
GSM8K Math 100 0.870 0.870 ±0.000
TruthfulQA Factual 100 0.530 0.560 +0.030
SQuAD v2 QA 100 97% 19% compression
BFCL Tools 100 97% 32% compression

复现:python -m headroom.evals suite --tier 1 · 完整基准测试与方法学

输出 token 缩减(削减模型写回的内容)

上文所述内容会缩小你发送的 prompt。但你也要为模型写回的每一个 token 付费——而在 Opus 级别模型上,输出成本是输入的 5 倍。其中大量输出是浪费:比如「好的,让我来…」这类开场白、重复打印你刚展示过的代码,以及在读取文件等常规步骤上进行冗长的「思考」。

Headroom 也能从代理侧削减这些输出,无需你改动任何代码:

  • 冗长度引导(verbosity steering — 在 system prompt 末尾追加一条简短的「保持简洁、不要复述上下文」说明(这样你的 prompt 缓存仍能命中)。
  • 努力度路由(effort routing — 当某轮对话只是模型在工具结果之后继续执行时(例如读取文件、测试通过),会降低模型的思考努力度。新问题与错误仍保持全力。

开启方式:

export HEADROOM_OUTPUT_SHAPER=1     # off by default
headroom proxy --port 8787

已经在运行代理? 这些开关在每次请求时都会实时读取,因此若代理是 headroom wrap 复用(而非重新启动),则不会看到你之后 export 的值——其环境在启动时已被快照。headroom wrap 现在会通过 loopback POST /admin/runtime-env 将你当前的设置热同步到正在运行的代理,因此可无需重启立即生效(无冷启动、无请求中断、无缓存丢失)。请在你 wrap 之前设置它们。在共享代理上,这些覆盖是全局的——以最后一次显式设置为准。

找到适合你的简洁度。 人们不会自己想要多简洁的回答——他们会表现出来(打断冗长回复,或在读完之前就继续下一步)。headroom learn --verbosity 会读取你过去的会话并自动选择合适级别:

headroom learn --verbosity            # preview what it found (dry run)
headroom learn --verbosity --apply    # save it; the proxy uses it from now on

查看你节省了多少输出 token。 输出节省是反事实的——我们永远看不到模型本来会写什么——因此 Headroom 报告的是诚实的估算值及置信区间,而不是编造数字:

headroom output-savings
# Reduction: 31.7%  (95% CI 27.7% … 35.7%)   [estimated]

想要实测数字而非估算?将 10% 的对话留作未塑形对照组:export HEADROOM_OUTPUT_HOLDOUT=0.1。仪表板会在输入压缩旁显示 Output Tokens Saved 卡片,标注为 measuredestimated,并附带置信区间。

→ 完整说明(含测量方法学):输出 token 缩减

Star History Chart

Agent 兼容性矩阵

Agent headroom wrap Notes
Claude Code --memory · --code-graph · --1m · --tool-search
Codex 与 Claude 共享记忆
Cursor Manual setup 启动代理并打印 Cursor 设置的 base URL
Aider 启动代理 + 启动应用
Copilot CLI 启动代理 + 启动应用
OpenClaw 作为 ContextEngine 插件安装
OpenCode 注入配置 · 启动代理 + 启动应用
Cline 启动代理 + 注入配置
Continue 启动代理 + 注入配置
Goose 启动代理 + 启动应用
OpenHands 启动代理 + 启动应用
Mistral Vibe 启动代理 + 启动应用
Cortex Code Library only 节省 6065%(库模式;无 wrap

任何 OpenAI 兼容客户端均可通过 headroom proxy 使用。MCP 原生:headroom mcp install。 使用 headroom unwrap <tool> 撤销持久化包装(支持:claudecopilotcodexopencodeopenclaw)。

GitHub Copilot CLI 订阅模式

Headroom 可将 GitHub Copilot CLI 订阅流量路由到本地代理:

headroom copilot-auth login
headroom wrap copilot --subscription -- --model gpt-4o

这样 Headroom 可拦截 OpenAI 兼容的 Copilot CLI 请求,在转发至 GitHub Copilot 托管 API 之前应用相同的代理压缩流水线。该包装器会用 Headroom 可复用的 GitHub OAuth token 换取 Copilot 的短期 API token,并在启动时将上游端点打印为 COPILOT_PROVIDER_API_URL=...

headroom copilot-auth login 会存储 Headroom 专用的 Copilot OAuth token。 这可避免依赖通用的 GitHub 或 Copilot CLI token——它们虽可读取 Copilot 账户元数据,但仍可能被 Copilot 的 token 交换端点拒绝。

对于 GitHub Enterprise Server 或自定义域名的 Copilot 部署,请在启动前设置部署域名:

export GITHUB_COPILOT_ENTERPRISE_DOMAIN=ghe.example.com

对于 github.com/enterprises/your-enterprise 这类 GitHub.com Enterprise Cloud URL 请勿设置 enterprise-domain 覆盖。Headroom 会使用 GitHub 的正常 token 交换端点,以及为已登录账户公布的 Copilot API 端点。

平台支持说明:通过 Copilot CLI Keychain 存储在 macOS 上复用认证已通过冒烟测试。Windows Credential Manager、Linux Secret Service / secret-tool,以及 Docker/CI token 注入路径已实现或规划中作为认证发现路径,但在经过真实操作系统验证之前,仍不应视为已完全验证。对于 Docker 与 CI,建议显式传入 GITHUB_COPILOT_TOKENGITHUB_COPILOT_GITHUB_TOKEN,而非依赖主机钥匙串访问。

何时使用 · 何时跳过

非常适合,如果你…

  • 每天运行 AI 编程 agent,并希望在不改代码的情况下节省成本
  • 跨多个 agent 工作,并希望共享记忆
  • 需要可逆压缩——在配置的 TTL 内可通过 CCR 取回原始内容

可以跳过,如果你…

  • 只使用单一提供商的原生压缩,且不需要跨 agent 记忆
  • 在沙箱环境中工作,本地进程无法运行
集成 — 将 Headroom 接入任意技术栈
Your setup Hook in with
Any Python app compress(messages, model=…)
Any TypeScript app await compress(messages, { model })
Anthropic / OpenAI SDK withHeadroom(new Anthropic()) · withHeadroom(new OpenAI())
Vercel AI SDK wrapLanguageModel({ model, middleware: headroomMiddleware() })
LiteLLM litellm.callbacks = [HeadroomCallback()]
LangChain HeadroomChatModel(your_llm)
Agno HeadroomAgnoModel(your_model)
Strands Strands 指南
ASGI apps app.add_middleware(CompressionMiddleware)
Multi-agent SharedContext().put / .get
MCP clients headroom mcp install
包含内容
  • SmartCrusher — 通用 JSON:字典数组、嵌套对象、混合类型。
  • CodeCompressor — 面向 Python、JS/TS、Go、Rust、Java、C/C++、Perl 的 AST 感知压缩。
  • Kompress-v2-base — 我们的 HuggingFace 模型,在 agentic traces 上训练。
  • Image compression — 通过训练的 ML 路由器实现 40–90% 缩减。
  • CacheAligner — 稳定前缀,使 Anthropic/OpenAI KV 缓存真正命中。
  • Live-zone compression — 仅压缩新增字节(新鲜工具输出、最新轮次);冻结前缀保持字节级一致,避免破坏提供商缓存。历史记录永不丢弃。
  • CCR — 可逆压缩;LLM 按需检索原始内容。
  • Cross-agent memory — 共享存储、智能体溯源、自动去重。
  • SharedContext — 跨多智能体工作流的压缩上下文传递。
  • headroom learn — 面向 Claude、Codex、Gemini 的基于插件的失败挖掘。
流水线内部机制

Headroom 在 compress()、SDK 与代理之间暴露统一的请求生命周期:

SetupPre-StartPost-StartInput ReceivedInput CachedInput RoutedInput CompressedInput RememberedPre-SendPost-SendResponse Received

  • Transforms 负责实际工作:CacheAligner → ContentRouter → SmartCrusher / CodeCompressor / Kompress-base(仅 live-zoneIntelligentContext 与 RollingWindow 已在 PR-B1 中退役)。
  • Pipeline extensions 通过 on_pipeline_event(...) 观察或自定义生命周期阶段。
  • Compression hooks 与规范生命周期并行,作为额外的扩展接缝。
  • Proxy extensions 仍是 ASGI 中间件、路由与启动策略的服务器/应用集成接缝。

提供商与工具特定行为位于 headroom/providers/ 下,使核心编排专注于生命周期、顺序与策略。

  • CLI/tool slicesheadroom/providers/claudecopilotcodexopenclaw
  • Provider runtime slicesheadroom/providers/claudegemini,以及 headroom/providers/registry.py 中的共享后端/运行时调度
  • Core files 保持编排优先wrap.pyclient.pycli/proxy.pyproxy/server.py 委托提供商特定的环境塑造、API 目标规范化、后端选择与传输调度。

面向团队的 Headroom

Headroom OSS 面向个人开发者构建:在笔记本上运行 headroom proxyheadroom wrap,几分钟内即可开始削减 token — 免费、本地优先,数据永不离开你的机器。

整个工程组织中运行则是另一回事:共享、始终在线的部署;集中化配置与版本发布;组织级节省仪表盘;SSO 与访问控制;气隙/VPC 安装;以及关键时刻有人可联系。这正是我们帮助企业完成的事 — 自托管加支持,或全托管。

若你的团队在大额支出 LLM token — Claude Code、Codex、Cursor,或 CI 中运行的智能体 — 且希望所有人都能享受这些节省,而非仅一台笔记本:

→ 发送邮件至 hello@headroomlabs.ai,附上你的技术栈与大致月度 LLM 支出,我们将帮助你在组织内推广 Headroom。

本仓库中的一切保持开源(Apache 2.0)。托管服务仅面向希望由我们部署、支持并扩展的团队。

安装

pip install "headroom-ai[all]"          # Python, everything — includes the `headroom` CLI
npm install headroom-ai                 # TypeScript SDK (library only — no `headroom` CLI)
docker pull ghcr.io/chopratejas/headroom:latest

细粒度 extras[proxy][mcp][ml]Kompress-v2-base)、[code][memory][vector](可选 HNSW 后端 — 需要 C++ 工具链,不在 [all] 中)、[relevance][image][agno][langchain][evals][pytorch-mps]Apple-GPU memory-embedder 卸载 — 设置 HEADROOM_EMBEDDER_RUNTIME=pytorch_mps)。需要 Python 3.10+

注意[all] 覆盖核心栈,但不包含框架适配器。请单独安装:pip install "headroom-ai[langchain]"(另有 [agno][strands][anyllm][bedrock])。

使用 pipx?请显式选择受支持的解释器:

pipx install --python python3.13 "headroom-ai[all]"

若想看到美元节省,请选择 3.13。 仪表盘的 Proxy $ Saved 磁贴使用 LiteLLM, 为压缩定价,而 LiteLLM 无法在 Python 3.14+ 上安装。在 3.14 上仍可追踪 token 节省,但美元数字保持 $0.00。若你已在 3.14 上安装,请用 pipx reinstall headroom-ai --python python3.13 切换并重启代理。

安装指南 — Docker 标签、持久化服务、PowerShell、devcontainers。

CPU 要求(x86/x86_64): ONNX 支持的功能 — Magika 内容检测与 embedding 相关性 — 使用需要 AVX2 的预编译 ONNX Runtime。在无 AVX2 的 x86 主机上(部分 Docker/QEMU 环境与较旧的云 VM),Headroom 会自动回退到非 ONNX 路径(BM25 相关性、启发式检测),而非崩溃。arm64/Apple Silicon 无需 AVX2。

更新

headroom update          # detects pip / pipx / uv tool and upgrades in place
headroom update --check  # report the latest release without upgrading
headroom update --pre    # include pre-releases

headroom update 会判断 Headroom 的安装方式(pip/venv、pip --user、pipx、uv tool),并在 macOS、Linux 与 Windows 上执行匹配的升级。对于 git checkout、可编辑安装、Docker 镜像以及外部管理的系统 Python(PEP 668),它会打印正确的手动步骤,而非猜测。

代理还会在启动时显示一行「有可用更新」提示。它最多每天后台检查一次 PyPI,且从不阻塞。使用 HEADROOM_UPDATE_CHECK=off 可退出(在 --stateless 模式与 CI 中也会跳过)。

企业 / SSL 检查环境

pip install "headroom-ai[all]"CERTIFICATE_VERIFY_FAILEDunable to get local issuer certificate)失败,说明你的网络使用 SSL inspection — 即 MITM 代理出示公司签发的 CA。构建后端(maturin)通过你的 TLS 栈不信任的连接下载 rustup请先安装 Rust,以免构建时再拉取:

# macOS / Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh && rustup default stable
# Windows
winget install Rustlang.Rustup && rustup default stable

重启 shell 后,再执行 pip install "headroom-ai[all]"。在可用时,预构建 wheel 可完全避免 Rust 构建:pip install --only-binary headroom-ai headroom-ai。预构建 wheel 面向 Windowswin_amd64)、Linuxx86_64 / aarch64)与 macOSApple Silicon 与 Intel)发布,因此这些平台的安装永远不需要本地 Rust 工具链 — 上述「先装 Rust」流程仅适用于无匹配 wheel 时的平台无关 sdist 回退。

有两个运行时资源通过 TLS 拉取;若被阻断,请通过 REQUESTS_CA_BUNDLE / SSL_CERT_FILE / CURL_CA_BUNDLE 信任你的企业 CA

  • cdn.pyke.io — Rust 核心的 ONNX Runtime。也可通过 ORT_STRATEGY=systemORT_LIB_LOCATION=/path/to/onnxruntime 预先提供。
  • huggingface.cokompress-base 压缩模型。预先下载并用 HF_HUB_OFFLINE=1 运行,或设置 HF_ENDPOINT 指向可信镜像。

禁用压缩(纯网关)运行时无需上述任一资源。

「Basic Constraints of CA cert not marked critical」(Python 3.13+ 严格模式)

这与上文是另一种失败情形。若 TLS 失败并出现:

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:
Basic Constraints of CA cert not marked critical

则企业 CA 已被找到并信任 — 将其加入 CA bundle 不会改变结果。Python 3.13 + OpenSSL 3.x 默认启用 VERIFY_X509_STRICT,它强制执行 RFC 5280 §4.2.1.9CA 证书的 basicConstraints 必须标记为 critical。Zscaler 等检查根证书将 CA:TRUE 设为无 critical 位,因此证书链被拒绝。

HEADROOM_TLS_STRICT=0 设置为仅从每个 TLS 上下文中清除严格标志 Headroom 控制项 — 代理的 httpx 上游客户端以及用于模型下载的 urllib3/huggingface_hub 路径。链验证、签名、过期和主机名检查均保持开启;这严格窄于禁用验证。

HEADROOM_TLS_STRICT=0 headroom proxy --port 8787

Rust 核心的 ONNX 下载(cdn.pyke.io)使用独立的 TLS 栈(rustls / 操作系统信任存储),不受 HEADROOM_TLS_STRICT 影响。在 Windows 上,企业根证书必须位于机器证书存储中(浏览器已在该处信任它);或使用 ORT_STRATEGY=system + ORT_LIB_LOCATION=/path/to/onnxruntime 预先配置 ONNX Runtime,以完全跳过下载。

headroom learn

headroom learn 实际运行

headroom learn — 挖掘失败会话,将修正写入 CLAUDE.local.md(默认,已被 git 忽略;团队共享文件请使用 --target CLAUDE.md/ AGENTS.md / GEMINI.md

文档

从这里开始 深入了解
快速入门 架构
代理 压缩原理
MCP 工具 CCR — 可逆压缩
记忆 缓存优化
失败学习 基准测试
配置 局限性
持久化安装 (headroom init / headroom install apply) 节省分析 (headroom savings / headroom perf / headroom doctor)

对比

Headroom 在本地运行,覆盖所有内容类型,兼容各大主流框架,且可逆

范围 部署 本地 可逆
Headroom 全部上下文 — 工具、RAG、日志、文件、历史记录 代理 · 库 · 中间件 · MCP
RTK CLI 命令输出 CLI 包装器
lean-ctx 工具输出、文件、Shell、历史记录 代理 · 库 · 中间件 · MCP · CLI
Compresr, Token Co. 发送至其 API 的文本 托管 API 调用
OpenAI Compaction 对话历史 提供商原生

致谢。 Headroom 内置了出色的 RTK 二进制文件,用于 Shell 输出重写 — git show --short、作用域化的 ls、摘要化安装器。衷心感谢 RTK 团队;他们的工具是我们技术栈的一等公民,Headroom 会压缩其下游的一切内容。Headroom 也可将 lean-ctx 用作选定的 CLI 上下文工具;在运行 headroom wrap ... 之前设置 HEADROOM_CONTEXT_TOOL=lean-ctx

贡献

git clone https://github.com/chopratejas/headroom.git && cd headroom
uv sync --extra dev && uv run pytest

.devcontainer/ 中的 Devcontainers(默认 + 带 Qdrant 与 Neo4j 的 memory-stack)。参见 CONTRIBUTING.md

社区

许可证

Apache 2.0 — 参见 LICENSE