夜雨聆风学习资料网

ARTICLE · 1013389

AI写代码写到一半就"失忆"?这个工具砍掉了98%的上下文垃圾

AI写代码写到一半就"失忆"?这个工具砍掉了98%的上下文垃圾
https://context-mode.com

用 Claude Code、Cursor 这类 AI 编程助手干活的人,大多遇到过同一个场景:任务做到一半,上下文窗口先撑满了。

一次 Playwright 快照 56 KB,20 条 GitHub issue 59 KB,一份访问日志 45 KB。这些原始数据被工具原封不动塞进上下文,半小时不到,40% 的空间就没了。更麻烦的是,当助手为了腾地方自动压缩对话时,它会忘记刚才在改哪个文件、任务进行到哪一步、你上一个要求是什么。于是你只能把需求重新讲一遍。

Context Mode 想处理的,就是这个"上下文另一半"的问题。


它到底是个什么东西

Context Mode 是一个 MCP 服务器,专门给 AI 编程助手做上下文优化。

它把三件事捏到了一起:沙箱化工具输出(实测最高砍掉 98% 数据)、用 SQLite 持久化会话记忆、在 17 个平台上强制执行路由规则。不管你在用 Claude Code、Cursor、Gemini CLI 还是 Codex CLI,它都试图让"原始数据别进上下文"变成默认行为。

它的设计思路一句话就能讲清:让大模型去当代码生成器,而不是数据处理器。


几个能直接解决问题的点

一、原始数据不往上下文里倒

每次 MCP 工具调用都会往上下文倒原始数据,这是爆炸的根源。Context Mode 的做法是给这些调用套沙箱:ctx_execute 每跑一次都起一个独立子进程,脚本执行完只把 stdout 送进对话,日志、API 响应、快照这些数据全留在沙箱里。

它支持 12 种语言运行时——JavaScript、TypeScript、Python、Shell、Ruby、Go、Rust、PHP、Perl、R、Elixir、C#。跑 JS/TS 时还会自动检测 Bun,快 3-5 倍。

ctx_execute_file 更彻底,整个文件在沙箱里处理,原始内容一个字都不离开。一份 45 KB 的日志,最后进上下文的只有 155 B。带认证的 CLI(gh、aws、gcloud、kubectl、docker)也能用,靠凭据透传,配置不会暴露进对话。

二、压缩之后还能接着往下干

上下文满了,助手压缩对话,然后忘掉状态。Context Mode 会把每一次文件编辑、git 操作、任务、报错、用户决策都记进 SQLite。压缩发生时,它不把这些数据一股脑倒回上下文,而是先索引进 FTS5,用 BM25 只捞出相关片段。模型能接着上次的进度继续。

如果你不用 --continue,上一段会话的数据会被立刻删除——新会话就是干净的一张白纸。

三、让模型写脚本,而不是把数据读进来

要统计 50 个文件里的函数数量,传统做法是把 50 个文件挨个读进上下文。Context Mode 的思路是:模型写一段脚本去数,只 console.log 结果。

// Before: 47 × Read() = 700 KB.  After: 1 × ctx_execute() = 3.6 KB.
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'));
`);

一个脚本顶十次工具调用,上下文能省 100 倍。这个范式在它支持的 17 个客户端里都是强制的。

四、省了多少,有数据可查

官方给出的基准测试里,几个典型场景的压缩比是这样的:Playwright 快照 56.2 KB → 299 B,GitHub Issues 58.9 KB → 1.1 KB,访问日志 45.1 KB → 155 B。一整轮会话跑下来,315 KB 原始输出变成 5.4 KB,会话时长从约 30 分钟拉长到约 3 小时。

还有一点值得提,就是它的克制——它只管数据往哪走,不管模型怎么说话。有些工具会强行要求模型简短回答,但已有实测显示,过度追求简短会拉低编码和推理表现。这部分 Context Mode 交给你自己的 CLAUDE.md 或 AGENTS.md。


上手:以 Claude Code 为例

装它是两条命令的事:

/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode

然后重启 Claude Code(或者跑 /reload-plugins)。

验证安装:

/context-mode:ctx-doctor

所有检查项都显示 [x] 才算通过。这个 doctor 会校验运行时、hooks、FTS5 和插件注册是否正常。

路由是自动的——SessionStart hook 在运行时注入路由指令,不往你项目里写任何文件。插件会注册全部 hooks(PreToolUse、PostToolUse、UserPromptSubmit、PreCompact、SessionStart、Stop)和 11 个 MCP 工具:6 个沙箱工具(ctx_batch_execute、ctx_execute、ctx_execute_file、ctx_index、ctx_search、ctx_fetch_and_index)加 5 个元工具(ctx_stats、ctx_doctor、ctx_upgrade、ctx_purge、ctx_insight)。

常用命令就几个:

  • /context-mode:ctx-stats
    :看上下文节省情况,按工具拆分
  • /context-mode:ctx-index
    :把本地文件或目录索引进 FTS5 知识库
  • /context-mode:ctx-search
    :搜索之前索引过的内容

想实时看到省了多少,可以加个状态栏。这是一次性的手动配置,改 ~/.claude/settings.json:

{
  "statusLine": {
    "type": "command",
    "command": "context-mode statusline"
  }
}

保存后重启,状态栏会显示 $ 本会话省下 · $ 跨会话省下 · 效率%。

其他平台(Gemini CLI、VS Code Copilot、JetBrains Copilot、Cursor、Codex CLI、Zed、Kiro、OpenCode 等)装法路数相同:先全局 npm install -g context-mode,再往对应配置文件里加 MCP server 和 hooks。hooks 能开就一定要开——没有 hooks 的话,一次没走路由的 curl 或 Playwright 快照,就能把一整轮会话的节省全抹平。


最后

Context Mode 的定位很清楚:不做云端分析面板,也不做 CLI 输出过滤器,而是在 MCP 协议层把原始数据挡在上下文外。没有遥测、没有云同步、不用注册账号,SQLite 数据库躺在你本地,用完即走。

对每天和上下文窗口赛跑的 AI 编程用户来说,它处理的是那个一直没人正面解决的问题——不是模型不够聪明,而是喂给它的垃圾太多。装上跑一轮 /context-mode:ctx-stats,省了多少一目了然。

相关学习资料