Headroom — 核心架构与设计理念#

本章深入解析Headroom的中间层定位、拦截内容类型、工作原理和四种接入方式总览,帮助理解其"压缩层"设计的本质思想。


1. 中间层定位:Agent与LLM之间的"压缩滤网"#

Headroom的架构定位非常清晰——它不是一个独立的Agent,也不是LLM本身的一部分,而是夹在AI Agent和LLM之间的一个透明中间件

┌─────────────────────────────────────────────────────────────────┐
│                        AI Agent层                               │
│  ┌─────────┐  ┌──────────┐  ┌─────────┐  ┌──────────────────┐   │
│  │ 工具调用 │  │ 代码搜索  │  │ 文件读写 │  │ 对话历史/RAG检索  │   │
│  └────┬────┘  └────┬─────┘  └────┬────┘  └────────┬─────────┘   │
└───────┼────────────┼─────────────┼─────────────────┼─────────────┘
        │            │             │                 │
        ▼            ▼             ▼                 ▼
┌─────────────────────────────────────────────────────────────────┐
│                    Headroom 压缩中间层                          │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │  内容路由器 → 算法选择器 → 压缩执行器 → 缓存存储          │   │
│  │              ↓(需要时)                                 │   │
│  │         headroom_retrieve 按需取回                        │   │
│  └──────────────────────────────────────────────────────────┘   │
└───────┬─────────────────────────────────────────────────────────┘
        │ 压缩后的精简内容
        ▼
┌─────────────────────────────────────────────────────────────────┐
│                         LLM层                                   │
│              GPT-4 / Claude / Codex / 其他模型                  │
└─────────────────────────────────────────────────────────────────┘

设计思想:Harness Engineering范式#

Headroom的设计体现了**Harness Engineering(驾驭层工程)**的核心思想:

  • 不改变模型本身:不微调、不修改LLM权重,通过外部工程手段提升效率

  • 透明拦截:对Agent和LLM双方都是透明的,Agent不需要感知压缩过程,LLM收到的仍是标准格式消息

  • 分层处理:不同类型内容采用不同策略,而非"一刀切"

  • 本地优先:所有数据留在本地,隐私可控


2. 拦截的内容类型#

Headroom拦截所有送入LLM的内容,覆盖AI Agent工作流中的全量信息流:

内容类型

典型来源

冗余特征

压缩潜力

工具输出

grep/find/cat等命令结果、API返回值

大量重复结构、无关信息多

⭐⭐⭐⭐⭐ 极高

命令行结果

终端stdout/stderr、构建日志、测试输出

大量INFO日志、堆栈重复

⭐⭐⭐⭐⭐ 极高

代码搜索结果

ripgrep/ack搜索、代码引用列表

大量匹配行中只有少数相关

⭐⭐⭐⭐ 高

RAG检索片段

向量检索返回的文档块

检索到的top-k中存在冗余片段

⭐⭐⭐ 中

文件内容

读取的源代码、配置文件

导入部分、注释、空行有压缩空间

⭐⭐ 中低

对话历史

多轮对话记录

早期对话信息密度降低

⭐⭐⭐ 中

关键洞察:代码搜索和SRE日志排查是压缩效果最显著的场景——这些场景下信息密度极低,100行中往往只有3-5行有用信息。


3. 工作原理#

Headroom的压缩工作流可以分为四个阶段:

阶段1:内容路由(Content Routing)#

输入内容 → MIME类型检测 → 格式识别(JSON/代码/日志/自然语言) → 路由到对应算法

这是Headroom区别于"一刀切"压缩方案的关键第一步。不同内容类型的信息结构完全不同:

  • JSON有固定的键值结构,可以做统计式压缩

  • 代码有语法树结构,可以保留签名删除函数体

  • 自然语言有语义冗余,可以用专用小模型压缩

阶段2:算法压缩(Compression)#

根据路由结果选择对应的压缩算法执行压缩,详见02章

阶段3:缓存存储(Cache)#

  • 原始内容:完整存入本地SQLite数据库,永不删除

  • 压缩内容:送入LLM

  • 元数据:记录压缩比、内容指纹、时间戳等,用于检索和统计

阶段4:按需检索(Retrieve,可选)#

如果LLM在后续对话中发现压缩后的信息不足以回答问题,可以调用headroom_retrieve工具:

LLM判断信息不足 → 调用headroom_retrieve(查询条件) → 从本地缓存取回原文 → 继续推理

4. 四种接入方式总览#

Headroom提供了四种灵活的接入方式,覆盖从"零代码快速体验"到"深度定制集成"的全部场景:

接入方式

改动成本

适用场景

一句话说明

① Library

低(几行代码)

自建AI应用

Python/TS中直接调用compress(messages)

② Proxy

零(无代码改动)

现有OpenAI兼容客户端

起本地代理,改base_url即可

③ Agent Wrap

零(一条命令)

Claude Code/Codex/Cursor用户

headroom wrap claude直接包住

④ MCP Server

低(配置MCP)

MCP原生客户端

注册三个工具,MCP客户端自动识别

接入方式对比#

维度

Library

Proxy

Agent Wrap

MCP Server

代码改动

需要

不需要

不需要

不需要(配置MCP)

灵活性

最高

中高

适用范围

自建应用

任何OpenAI客户端

主流编程Agent

MCP兼容客户端

可控性

完全控制

配置控制

命令行参数

工具调用控制

上手难度

需要写代码

改一行配置

一条命令

配置MCP

💡 选型建议:如果你是Claude Code/Codex等编程Agent的用户,直接用Agent Wrap最快;如果你在开发自己的AI应用,用Library最灵活;如果你已有OpenAI兼容客户端想快速试效果,用Proxy零成本接入。


5. 设计理念总结#

Headroom的架构设计体现了三个核心工程思想:

思想1:分层透明中间件#

不侵入Agent内部,也不修改LLM,通过拦截模式(Interceptor Pattern)在通信链路上增加处理层。这是经典的中间件设计模式,在Web开发(Nginx/Envoy)、数据库(ProxySQL)等领域早已成熟验证。

思想2:内容感知,对症下药#

拒绝"一个算法打天下",而是先分类再处理。这与计算机网络中的协议分层、编译器中的多阶段优化有异曲同工之妙——不同层次、不同类型的问题需要不同的解决方案

思想3:可逆设计,留有余地#

压缩不是信息丢弃,而是"冷热分离"——热数据(压缩版)常驻上下文,冷数据(原文)存在本地随时可取。这是Headroom最聪明的设计,也是区别于所有其他压缩方案的核心差异点。