mksglu/context-mode:用 MCP 协议破解 AI Coding 的 Context 危机

彩虹网

mksglu/context-mode:用 MCP 协议破解 AI Coding 的 Context 危机

阅读说明

这是一篇技术内容,适合想深入理解的读者。

mksglu/context-mode:用 MCP 协议破解 AI Coding 的 Context 危机

核心命题

Anthropic 在 Round 96 的文章中揭示了 MCP 协议通过资源池化实现 98.7% Token reduction 的机制——但那篇文章没有回答的问题是:工程师如何在本地真正落地这套思路? context-mode 给出了答案。它是一个 MCP Server,也是一个完整的 Agent Context 管理操作系统,解决了从「工具输出吞噬 Context」到「会话压缩导致记忆丢失」的全链路问题。

为什么这项目值得推荐

Context 正在偷走你的 Agent 能力。 一个 Playwright 快照 56KB。20 条 GitHub Issue 59KB。一次访问日志 45KB。30 分钟对话后,40% 的 Context 窗口已经被原始工具数据填满。当 Agent 开始压缩会话释放空间时,它忘记了自己在编辑哪个文件、哪些任务在进行、你最后要求了什么。

这不是 Agent 笨。这是架构问题。

context-mode 从 2015 年的操作系统设计思想中汲取灵感——那一年,Docker 证明了「让进程活在容器里而不是bare metal上」可以带来多么根本性的变革。context-mode 将同样的范式移植到 AI Coding 的 Context 管理:让原始工具数据活在沙箱里,而不是塞进 LLM 的上下文窗口。

笔者认为,context-mode 真正聪明的地方不是某个单点优化,而是一个完整的四层解法,每层对应一个真实的 Context 痛点:

核心技术解法

第一层:Context Saving — 沙箱工具输出

这是最直接的一层。context-mode 提供一组 ctx_* 工具(ctx_execute、ctx_batch_execute、ctx_fetch_and_index 等),所有工具执行都发生在沙箱内,只有最终结果返回给 Agent。

# Before: 47 × Read() = 700 KB context
# After:  1 × ctx_execute() = 3.6 KB context
ctx_execute("javascript", `
  const files = fs.readdirSync('src').filter(f => f.endsWith('.ts'));
  files.forEach(f => console.log(f + ': ' + fs.readFileSync('src/'+f,'utf8').split('\\n').length + ' lines'));
`);

官方数据:315 KB → 5.4 KB,98% 压缩率。这与 Round 96 Article 中 Anthropic 报告的 98.7% Token reduction 数量级完全一致——但实现路径不同:Anthropic 通过 MCP 协议共享资源池实现,context-mode 通过沙箱工具 + 增量结果实现。

"After 30 minutes, 40% of your context is gone." — context-mode README

第二层:Session Continuity — SQLite + FTS5 的会话记忆

大多数 Agent 在 Context 压缩后丢失会话状态,因为它把历史数据扔进了 Context Window——压缩时这些数据要么被丢弃,要么变成不可检索的压缩块。

context-mode 的解法:用 SQLite 持久化所有会话事件(文件编辑、Git 操作、任务、错误、用户决策),然后用 FTS5 全文搜索在需要时检索最相关的事件。当会话压缩时,不是把历史 dump 回去,而是建立索引、允许按需召回。

这意味着 Agent 可以「从上次停止的地方继续」,而不需要把整个上下文历史都存在 Context Window 里。

第三层:Think in Code — 让 LLM 编程分析而非计算

「读取 50 个文件来统计函数数量」是一种极其浪费的 Context 使用方式。正确的做法是让 Agent 写一个脚本执行统计,然后只 console.log() 结果。

context-mode 在所有 15 个支持的平台上强制执行这一范式:

"The LLM should program the analysis, not compute it. Instead of reading 50 files into context to count functions, the agent writes a script that does the counting and console.log()s only the result. One script replaces ten tool calls and saves 100x context."

第四层:No Prose-Style Enforcement — 尊重模型输出风格

这是我认为 context-mode 最反直觉的设计。官方明确指出:

"Aggressive brevity prompts have been shown to degrade coding/reasoning benchmarks — the routing block stays focused on where data goes, not on how the model talks."

context-mode 控制的是数据路由,不控制模型输出风格。这与 Round 96 Article 中 Anthropic 的 System Prompt 25-word 限制导致的 3% 能力下降形成了鲜明对比。两个项目从不同角度证明了同一个结论:不要用 Prompt 限制牺牲模型的核心能力。

架构设计亮点

Hook-based 路由强制

context-mode 的核心创新之一是通过 Hook 机制(PreToolUse、PostToolUse、PreCompact、SessionStart)在 Agent 层面注入路由规则。这意味着:模型在执行工具前,路由指令已经存在于 Context 中;模型不需要「被告知要节省 Context」,它只是自然地选择了 context-mode 提供的工具。

PreToolUse hook → 检查工具类型 → 如果是原始 Read()/Bash() → 替换为 ctx_execute()

在 Claude Code 上,这个路由是完全自动的——插件注册所有 Hook,SessionStart 时自动注入路由指令,不需要修改任何项目文件。

15 平台覆盖

context-mode 已经支持:Claude Code(插件市场)、Gemini CLI、Cursor(插件)、Copilot、OpenCode、Zed、Kiro、pi-agent 等 15 个平台。这个覆盖范围意味着大多数主流 Coding Agent 用户都能直接使用。

Personal Analytics — ctx_insight

这不是核心功能,但值得关注:90 个指标、37 种洞察模式、4 个复合评分(生产力、质量、委托度、Context 健康度),覆盖 23 个事件类别。对于想要量化自己 Agent 使用效率的工程师,这是一个独特的数据面。

竞品对比

维度

context-mode

通用 Prompt 压缩

Memory 工具

数据位置

沙箱内,不进 Context

进入 Context 后压缩

外部存储但检索不精确

会话连续性

SQLite + FTS5 精确召回

不可逆压缩丢失细节

语义相似度召回

平台覆盖

15 个主流平台

Prompt 相关

框架相关

Token 压缩率

98%(官方数据)

取决于策略

依赖实现

副作用

无(数据位置控制)

可能丢失关键上下文

检索延迟

笔者认为,context-mode 相比其他方案的根本优势是数据流控制而非事后压缩。它不是在 Context 已经满了之后再想办法,而是让原始数据从一开始就不进入 Context Window。

快速上手

Claude Code(最简方式):

# 从插件市场安装,完全自动路由
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode
# 重启 Claude Code
/claude --version  # 需要 v1.0.33+

验证安装:

/context-mode:ctx-doctor
# 所有检查应该显示 [x]

查看节省量:

/context-mode:ctx-stats
# 每个工具的 Token 节省明细

主题关联性

Round 96 Article → Round 97 Project:

闭环核心:Anthropic 解释了 WHY(MCP 协议设计的 Token 压缩机制),context-mode 展示了 HOW(Hook 路由强制 + 沙箱工具 + FTS5 会话记忆)。理论层 + 工程执行层形成完整闭环。

"Context Mode is an MCP server that solves all four sides of this problem." — context-mode README

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。