
字节笔记本
2026年10月14日 · 约 5 分钟读完
agent 上下文半小时烧四成?context-mode 一刀省 98%
用 Claude Code 或 Codex 干过活的人多半撞见过同一件事:明明没聊几轮,上下文却快见底了。GitHub 上最近冲上趋势榜的开源项目 context-mode 给出了一个很直接的诊断:真正吃掉上下文的往往不是对话本身,而是工具输出。一次 Playwright 页面快照就要 56 KB,连续操作半小时能吞掉四成上下文窗口。这个项目的做法是把这些数据挡在沙箱里,只让结论进入对话。

项目简介
context-mode 是一个面向 AI 编程 agent 的 MCP 服务器,作者 mksglu,用 TypeScript 编写,目前已收获 28.4k stars 和 2k forks。许可证是 Elastic License 2.0,属于源码可用类型:可以自由使用、修改和分发,但不允许拿去做托管服务,商用集成前值得读一遍条款。它的定位一句话能说清:控制数据流向,而不是规定模型怎么写代码。项目不强制任何编码风格,只决定工具输出落在哪里、哪些留痕、哪些丢弃。
核心功能
第一层是沙箱执行。工具调用在隔离子进程里运行,只有 stdout 的必要结果进入上下文。项目 README 给出的对比数字相当激进:一次原本要灌入 315 KB 的原始工具输出,经沙箱处理后只留 5.4 KB,削减 98%。对长会话来说,这直接决定了窗口能撑多久。
第二层是会话连续性。编辑记录、git 操作、任务清单、报错信息和用户做过的决策,全部写入本地 SQLite 的 FTS5 全文索引,用 BM25 排序检索。会话被压缩、或者用 --continue 和 --resume 恢复时,agent 可以按需找回此前的关键决策,而不是从零再猜一遍。检索这一层做得相当细:Porter 词干提取、三元组搜索、倒数排名融合、拼写纠错,外加一个 24 小时 TTL 的 URL 缓存。
第三层官方称之为 Think in Code:与其让模型把数据读进上下文再慢慢思考,不如让它写一段脚本去处理数据。一次 ctx_execute 调用平均只占 3.6 KB,替代的是几十次 Read 调用。

整套系统提供 11 个 MCP 工具,分成两组:沙箱执行组包括 ctx_execute、ctx_execute_file、ctx_batch_execute、ctx_index、ctx_search、ctx_fetch_and_index;元工具组包括 ctx_stats、ctx_doctor、ctx_upgrade、ctx_purge、ctx_insight,负责上下文统计和健康检查。代码执行支持 12 种语言,从 Python、TypeScript 到 Go、Rust、C# 都在列。
在支持 hooks 的平台上,路由由程序强制执行:PreToolUse、PostToolUse、SessionStart、PreCompact、UserPromptSubmit、Stop 六个钩子把数据流向管起来,节省率约 98%;仅靠指令文件约束的平台大约能到 60%。官方列出的兼容平台有 17 个,Claude Code、Codex、Gemini CLI、Cursor、Copilot 各变体、OpenCode、Zed 都在其中。
快速上手
Claude Code 用户两条命令装成插件:
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode偏好全局安装的走 npm:
npm install -g context-mode只想挂 MCP 服务器不动其他的,一条命令:
claude mcp add context-mode -- npx -y context-mode装完建议先跑 context-mode doctor 做个体检,或者在会话里输入 ctx stats 看当前上下文占用统计,对项目效果先有个直观感受。
适合谁用
- 长会话重度用户:动辄几小时的重构或调试、上下文压缩频繁的人,收益最直接。
- 多平台切换者:一套工具覆盖 17 个平台,配置成本付一次。
- 隐私敏感场景:纯本地运行,无遥测、无云同步、无使用追踪,数据只落在本地 SQLite。
- 注意许可证:Elastic License 2.0 禁止拿去做托管服务,计划二次分发前先过一遍条款。
总体看,context-mode 抓住的是 agent 工程里一个被长期低估的问题:上下文是稀缺资源,工具输出是最大的浪费源。把这两件事管好,比换更强的模型有时更划算。



