Context Gateway 完全指南:AI Agent 对话历史的智能压缩方案
使用 AI 编码 Agent(Claude Code、Cursor 等)时,你一定遇到过这个问题:对话进行到一半,上下文窗口满了,Agent 需要暂停几分钟来压缩历史。更糟的是,有时候压缩完回来,已经忘了之前讨论的上下文细节。
Context Gateway 正是为此而生。它是一个开源的 agentic 代理层,位于你的 AI Agent 和 LLM API 之间,当对话变长时在后台预计算压缩摘要——让你永远不需要等待上下文压缩。
本文将全面介绍 Context Gateway 的工作原理、安装配置、核心功能以及实战场景。
什么是 Context Gateway?
Context Gateway 由 YC 孵化的 Compresr 公司开发,是一个用 Go 编写的开源代理服务(Apache-2.0 许可,GitHub 621 ★)。它不是一个独立的编码助手,而是增强已有 AI Agent 的工具——像一层透明的中间件,默默优化 Agent 与 LLM 之间的对话流量。
核心思路很简单:不要让 Agent 在对话极限处才压缩上下文,而是在后台持续预计算摘要,让压缩结果立即可用。
快速安装
安装 Context Gateway 只需要一条命令:
curl -fsSL https://compresr.ai/api/install | sh
安装完成后,直接运行 context-gateway 会打开一个交互式 TUI 向导,帮你完成初始配置:
context-gateway
TUI 向导会引导你完成三个步骤:
- 选择 Agent — 从预置列表中选择你的 AI 编码 Agent
- 配置摘要模型 — 设置用于生成摘要的模型和 API Key
- 设置压缩阈值 — 默认在上下文使用达到 75% 时触发预压缩
支持的 AI Agent
Context Gateway 目前支持四种集成模式:
| Agent | 说明 |
|---|---|
| claude_code | Claude Code IDE 集成 |
| cursor | Cursor IDE 集成 |
| openclaw | 开源的 Claude Code 替代方案 |
| custom | 自定义 Agent 配置 |
如果你用的是其他 Agent(如 Codex、OpenCode),选择 custom 模式手动配置即可。
核心功能详解
1. 预计算摘要(Preemptive Summarization)
这是 Context Gateway 最核心的功能。传统的工作流是:
Agent 对话 → 上下文窗口满 → 触发压缩 → 等待完成 → 继续对话
而 Context Gateway 将其变为:
Agent 对话 → 后台持续预计算摘要 → 上下文窗口满 → 瞬间切换至摘要 → 继续对话
摘要结果会记录在 logs/history_compaction.jsonl 中,方便你查看每次压缩的内容和节省的 Token 数。
2. 工具输出压缩
Agent 调用工具后,返回的结果(尤其是代码搜索、文件读取等操作)往往体积庞大。Context Gateway 会自动压缩这些工具输出,在它们进入上下文之前就做瘦身处理。
v0.5.2 版本引入了 always_keep 保证机制——关键工具的结果不会被错误过滤掉,确保核心功能不受影响。
3. 智能上下文扩展(Expand Context)
当 Agent 需要更长的上下文时,Context Gateway 提供了 expand_context 工具(始终注入到 Agent 的工具列表中),支持 reranker 扩展——Agent 可以主动申请扩展上下文,而 Gateway 会智能选择最相关的历史信息返回。
4. 多 Agent 管理
从 v0.5.0 起,Context Gateway 支持在同一实例上管理多个 Agent 配置。每个 Agent 有独立的会话目录和配置参数,互不干扰。这对同时使用多个编码助手的开发者特别实用。
5. 成本追踪与仪表盘
v0.4.3 引入的 Dashboard 功能可以实时显示:
- 压缩节省的 Token 数量
- 对应的成本节省
- 会话使用统计
- 使用上限配置
数据一目了然,方便你评估压缩效果。
6. 多端口网关
v0.2.0 引入的多端口功能允许并行运行多个终端窗口,每个终端使用独立的端口和配置。这在调试不同 Agent 行为时非常有用。
实战配置示例
基本配置流程
安装后运行 context-gateway,TUI 向导会提示你选择 Agent 和配置参数。以下是典型配置项:
agent: claude_code summarizer_model: claude-sonnet-4 api_key: sk-xxxxxxxxxxxxxxxx trigger_threshold: 75 slack_webhook: https://hooks.slack.com/services/xxx
带自定义 Agent 启动
./start_agent.sh ./start_agent.sh cursor ./start_agent.sh claude_code -p 18081 --debug
Docker 部署
Context Gateway 从 v0.2.0 起支持 Docker 部署,适合需要持续运行的生产环境:
git clone https://github.com/Compresr-ai/Context-Gateway.git cd Context-Gateway make docker docker run -d -p 18081:18081 context-gateway:latest
高级功能
提供者扩展
Context Gateway 支持多种 LLM 提供者作为摘要引擎:
- AWS Bedrock — 适合已在 AWS 生态的团队(v0.3.0+)
- Ollama — 本地模型,零成本运行(v0.3.0+)
- Gemini — Google 的模型系列(v0.3.0+)
- OpenRouter — 灵活路由到多种模型(v0.2.0+)
- LiteLLM — 兼容任何 LiteLLM 支持的模型(v0.5.2+)
Phantom Tools(v0.5.2 新增)
这是一个巧妙的功能:在不修改 Agent 工具列表的前提下,虚拟注入工具。Agent 的配置不需要任何改动,Gateway 自动在代理层处理工具的注入和调用。
热重载配置
从 v0.5.2 起,修改配置文件后不需要重启 Gateway,配置会自动生效。这对于生产环境中的参数调优非常实用。
什么时候该用 Context Gateway?
推荐场景:
- 日常使用 Claude Code/Cursor 进行长会话编码,经常遇到上下文极限
- 需要同时管理多个 AI 编码 Agent
- 希望精确追踪 Token 使用和成本
- 团队协作,需要 Slack 通知压缩事件
不太适合的场景:
- 短会话工作流(每次几分钟,上下文远未用完)
- 完全在本地运行且不关心成本的场景
总结
Context Gateway 以预计算摘要的思路,优雅地解决了 AI Agent 对话中的上下文瓶颈问题。它不是一个独立工具,而是增强已有 Agent 体验的中间件——安装只需一条命令,配置通过 TUI 向导几分钟完成。
对于重度使用 AI 编码 Agent 的开发者来说,Context Gateway 省掉的是每次等待压缩的烦躁感,换来的是更流畅的编码体验。它背后的 Compresr 公司还提供云端压缩 API($0.10/1M tokens,新用户 $10 免费额度),但开源 Gateway 本身已经足够强大,可以独立使用。
相关链接: