context-mode:为编码 Agent 压缩上下文的 MCP 工具
context-mode 是一个面向 AI 编码 Agent 的上下文优化工具,以 MCP 服务形式提供 11 个工具。它让命令和脚本在隔离子进程中执行,只把输出结果放进上下文;同时把会话事件写入 SQLite,用 FTS5 建索引,在上下文压缩后通过 BM25 检索找回相关记录。
要点
- 支持 Claude Code、Gemini CLI、Copilot、Cursor、Codex CLI、Qwen Code 等十多种 Agent,部分平台只支持 MCP 不支持 hooks
- 检索结合 Porter 词干与 trigram 匹配,用 Reciprocal Rank Fusion 融合排序
- 项目页宣称上下文体积可减少 98%(315KB 降到 5.4KB),该数字来自项目自述,未经独立验证
- Elastic License 2.0 许可证,商用前需确认条款
为什么值得关注
上下文管理是长时间运行的 Agent 的核心难题。它的「执行结果不进上下文、历史按需检索」思路可以直接借鉴到自建工作流中,今天的配套实验就复现了这一机制。
配套实验
已验证
GitHub Actions 实际运行 · Python 3.12.15 · 耗时 0.2s
用 SQLite FTS5 + BM25 复现 Agent 会话记忆检索
验证 context-mode 采用的思路:把编码 Agent 的会话事件写入 SQLite FTS5,用 BM25 排序并以 RRF 融合 porter 与 trigram 两路检索,上下文压缩后按需取回少量相关记录。
结论RRF Top-3 recall = 0.88 (7/8)
…
期望 #9: Edited config/settings.toml: raised http client timeout from 5s to 15s
RRF Top-1 #9 porter=✓ trigram=✓ rrf=✓
Top-3 命中率:
porter 7/8
trigram 7/8
rrf 7/8
上下文体积(粗略估算):全量回放 ≈ 448 tokens,单次检索 Top-3 平均 ≈ 46 tokens(约 10%)
说明:事件越多,全量回放线性增长,而检索 Top-K 基本不变。
未命中的问题(词面不重合,属于纯词法检索的固有局限):
- which database did the user choose
RESULT: RRF Top-3 recall = 0.88 (7/8)
python main.py
查看代码与内网复现步骤 →
来源
### [context-mode:为编码 Agent 压缩上下文的 MCP 工具]({{URL}})
context-mode 是一个面向 AI 编码 Agent 的上下文优化工具,以 MCP 服务形式提供 11 个工具。它让命令和脚本在隔离子进程中执行,只把输出结果放进上下文;同时把会话事件写入 SQLite,用 FTS5 建索引,在上下文压缩后通过 BM25 检索找回相关记录。
- 支持 Claude Code、Gemini CLI、Copilot、Cursor、Codex CLI、Qwen Code 等十多种 Agent,部分平台只支持 MCP 不支持 hooks
- 检索结合 Porter 词干与 trigram 匹配,用 Reciprocal Rank Fusion 融合排序
- 项目页宣称上下文体积可减少 98%(315KB 降到 5.4KB),该数字来自项目自述,未经独立验证
- Elastic License 2.0 许可证,商用前需确认条款
**为什么值得关注**:上下文管理是长时间运行的 Agent 的核心难题。它的「执行结果不进上下文、历史按需检索」思路可以直接借鉴到自建工作流中,今天的配套实验就复现了这一机制。
来源:[mksglu/context-mode](https://github.com/mksglu/context-mode)