昨天文章不会发生人工智能导致的就业危机中提到:“在大型复杂项目中,大模型就因为上下文过长,因为项目的缘故,前面塞入了必要的项目约束,会导致中间执行时,降智的感觉。”
根本缺陷是大模型上下文窗口有限,目前最大也就1M,而且目测短期内,不太可能再扩展了。
我想过很多办法:精准搜索记忆,精简提示词,定期整理项目相关约束文档。
但是还有一个场景,就是在大模型执行任务,调用工具时,动态加载的上下文无法控制。
今天刷到这个工具,就是针对这个场景开发的。
AI 编程代理每次调用工具,原始数据是全量输入上下文的。
一次 Playwright 访问网站的页面快照,大约 56 KB。
搜索 20 条 GitHub Issues,大约59 KB。
分析 500 行 nginx 访问日志,大约45 KB。
项目作者统计过,一个包含 20 次工具调用的简单任务,50 轮对话后,光工具输出就向模型灌入了 30 MB 的 token。
等你跑到 30 分钟的时候,上下文窗口已经有 40% 被这些原始数据占满了。
于是触发系统自动「压缩」上下文,把历史消息总结成简短版本。
一个问题就是我现在用的Codex, WorkBuddy 都会在执行自动压缩后,频发卡死状态。
导致不得不停止当前任务,再开一个新会话,让AI 编程智能体继续任务。
其次压缩的过程中,正在编辑的文件列表、进行中的任务状态、刚刚被修复的错误方案等等信息,你也不知道大模型会把你在意的某项规则会不会压缩掉。
所以我现在的一个编程习惯,都是不等智能体达到窗口上限,就尽量结束当前相对完整的原子任务,再开新会话继续后面开发任务。
最后从成本上考虑,我也希望能有一个让智能体每次读必要的信息,从而节约更多的成本。
虽然目前各家大模型厂家都在打价格战:
“OpenAI 宣布企业从 Claude Code 迁移到 Codex 免费用两个月“、
”Deepseek-V4-Pro 模型 2.5折“,但是迟早有一天,价格要恢复到正常水平,就如同当年的滴滴与快的的打车软件大战。
context-mode,一个 MCP 服务器,它在代理与工具之间加了一层中间件。
这非常符合我做架构师的认知:“计算机领域中的所有问题都可以通过增加一个中间层来解决”。
第一层措施:沙箱隔离。
context-mode 提供了 ctx_execute 等一系列沙箱工具。
代码在隔离子进程中跑,只把 stdout 的结论送进上下文,原始数据全部拦在门外。
例如用 Claude Code 分析 500 行访问日志:
本来要 45 KB 全部进上下文。
只需要在沙箱里写一段 JS,统计 Top 5 IP 和请求数,输出只有一行:Top 5 IPs: [["192.168.1.1",342],["10.0.0.5",287],...]。
45 KB 变成 155 字节,省了 99.7%。
字节跳动、微软、Google 这些团队都在用这个工具处理大规模代码库分析。
第二层措施,会话连续性。
context-mode 在每次工具调用后,通过 PostToolUse Hook 把关键事件写进本地 SQLite。
包括你编辑了哪些文件、做了什么 Git 操作、遇到了什么错误又是怎么修好的、你对模型做的每一次纠正。
当上下文窗口被触发压缩时,PreCompact Hook 会在清除前构建一个不超过 2KB 的 XML 快照。
压缩结束后,SessionStart Hook 从 SQLite 用 BM25 检索当前任务相关的状态,生成一份会话指南注入进来。
模型读到的是精准描述:「你上次在改 UserService.ts 第 142 行,正在重构认证逻辑,之前遇到过 bcrypt 版本冲突,已经用 bcryptjs 替换了。你要求用 async/await 而不是 Promise.then。」
而不是「你是谁。。。。你在哪。。。。你要干什么诸如此类」这类很冗长的描述文字。
实测效果:会话时长从 30 分钟延长到 3 小时。
第三层措施,用代码思考。
工具描述里直接写了一条强制指令:如果你需要分析、计数、过滤或处理数据,写代码来完成,不要直接把原始数据读进上下文。
一个脚本替代十次工具调用,节省 100 倍上下文。
原来 AI 编程助手读 47 个文件要消耗 700 KB 上下文。
现在一行 ctx_execute,脚本遍历 47 个文件,只输出分析结论,3.6 KB 搞定。
场景 | 原始输出 | 压缩后 | 缩减 |
|---|---|---|---|
Playwright 快照 | 56.2 KB | 299 B | 99.5% |
20 条 GitHub Issues | 58.9 KB | 1.1 KB | 98% |
访问日志分析 | 45.1 KB | 155 B | 99.7% |
仓库研究(子代理) | 986 KB | 62 KB | 94% |
完整会话 | 315 KB | 5.4 KB | 98% |
一个子代理跑完整个代码库的研究,原始输出 986 KB。
用 context-mode 的 ctx_batch_execute 一次调用,多个命令并发执行,最终只有 62 KB 进入上下文。
省了 94%。
用的如果是 Claude Code,安装最省事。
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode重启 Claude Code,运行 /context-mode:ctx-doctor 验证一下。
状态栏加上统计命令,实时看到省了多少数据: 本次节省 · 跨会话节省 · % 效率
如果你用 Gemini CLI、VS Code Copilot、Cursor 或者 Codex (我用的就是这个),也有对应的安装方式。
context-mode 目前支持 15 个主流 AI 编程平台,覆盖了从 Claude Code 的全自动插件市场安装,到 Zed、Antigravity 的纯 MCP 手动配置。
沙箱执行器内置了 12 种语言运行时。
工具完全本地运行,零遥测、零云同步、零账号需求,代码全在本地 SQLite 里。
项目在创建后,也在不断进化:v1 是规则压缩,基于正则过滤。
v2 是智能摘要,按命令类型分类处理。
v3 的方向是用小模型压缩,大模型推理,已经不只是简单的文本截断了。
如果你也是重度 AI 编程工具用户,试试 context-mode。
欢迎使用后回来留言。
Github仓库地址:https://github.com/mksglu/context-mode。
推荐阅读:
Hermes Agent 桌面端:工作台 + Windows/Mac 双端 + 多智能体协作
MemPrivacy:面向端云智能体的隐私保护个性化记忆管理框架
Lazyweb 免费的 25.7 万截图库|让 AI 写出好看的前端页面
给 AI 装上真实浏览器:camofox-browser 实战
ChatGPT 里的"哥布林(goblins)"是怎么来的?
不用一个违禁词 让 Claude 说出炸药配方|红队攻击实录
大模型黑箱揭秘:GPT、Claude、Gemini、Grok、Hermes 系统提示词全公开
jcode 深度解析:纯 Rust 打造,它凭什么号称「最强 Coding Agent」?