夜雨聆风学习资料网

ARTICLE · 1028588

AI 编程助手 30 分钟就失忆,context-mode 给它装了一套内存管理

AI 编程助手 30 分钟就失忆,context-mode 给它装了一套内存管理

MOGE / ARTICLE

AI 编程助手 30 分钟就失忆,context-mode 给它装了一套内存管理

你有没有过这样的经历:让 AI 助手帮你查一份日志、抓一个网页、翻二十条 GitHub issue,它很听话地全都读了一遍,然后——上下文窗口满了。

紧接着对话被压缩,前面改到哪个文件、任务进行到哪一步、你刚才纠正过它什么,全都忘了。你只能重新解释一遍,它再重新读一遍,如此反复。

这不是模型不够聪明,而是上下文窗口的用法出了结构性问题。GitHub 上这个叫 context-mode 的开源项目,今年二月才开源,如今 Star 已经冲到两万二以上,还上过 Hacker News 榜首。它要解决的,恰恰是这件事。

—————— ✦ ——————

本文看点

01

这些痛点,你是不是每天都在忍

02

它到底是什么

03

十一个工具,构成它的核心

01

SECTION 01

这些痛点,你是不是每天都在忍

❌ 每次工具调用都在往上下文里倒原始数据。一次 Playwright 页面快照 56 KB,二十条 GitHub issue 59 KB,一份访问日志 45 KB。半小时过去,四成上下文就没了,而真正的任务还没开始。

❌ 压缩之后模型直接失忆。对话被裁掉一半,它不记得正在改哪个文件,不记得那个报错到底解决没有,更不记得你十分钟前明确否掉过的方案。

❌ 输出侧也在漏。模型把大量词元花在客套、铺垫和重复解释上,输入输出两头一起烧。

❌ 大文件、长日志根本喂不进去。要么手工截断丢信息,要么干脆放弃分析,最后自己肉眼去看。

❌ 同一份数据被重复读好几遍。上个对话读过的文档,新开一个对话又要从头读一遍,一个字的记忆都没有留下。

❌ 密钥和敏感数据没人管。工具把带 token 的请求原文一五一十写进会话记录,谁也不知道。

—————— ✦ ——————

“上下文窗口不是垃圾桶。真正值钱的不是塞进去多少数据,而是模型最后看懂了什么。”

—————— ✦ ——————

02

SECTION 02

它到底是什么

context-mode 是一个 MCP 服务器,插在 AI 编程助手和外部工具之间,专门决定什么该进上下文、什么不该进。它把自己定位成“上下文问题的另一半”:别人在优化模型怎么想,它在管数据怎么流。

它的思路可以拆成四层。

第一层,上下文节约。 所有重型操作都被扔进隔离的子进程里跑,只有最终结果——通常几百字节——回到对话。日志原文、接口响应、页面快照,从头到尾没进过上下文。

第二层,会话连续性。 文件编辑、git 操作、任务进度、报错、你的每一次决策,都记进本地数据库。对话被压缩时,它不把老数据重新倒回来,而是切块存进全文索引,再用相关性算法只捞回当下需要的那几条。你重新打开对话,模型能直接接着上次的位置往下走;如果不显式选择继续,旧会话数据会被立刻清掉,新会话就是干净的一张白纸。

第三层,让模型写代码而不是读数据。 这是最有意思的一条。要统计五十个文件里各有多少行,不该把五十个文件全读进上下文,而应该写一个脚本去数,只把打印结果拿回来。一次脚本调用替代十次文件读取,上下文能差出两个数量级。它的原话是:别把大模型当数据处理机,把它当代码生成器。

第四层,不干涉模型的表达。 它只管道数据往哪儿走,不规定模型该怎么说话——答案该简洁还是该详尽,交给你和你的提示词决定。因为已经有人验证过,一味逼模型短话少说,反而会把编码和推理的表现拉低。

—————— ✦ ——————

03

SECTION 03

十一个工具,构成它的核心

工具它做什么省下多少
批量执行一次调用批量跑多条命令加多个查询986 KB → 62 KB
沙箱执行在隔离环境里运行 12 种语言的代码,只有标准输出进上下文56 KB → 299 B
文件处理直接在沙箱里处理文件,原文不外流45 KB → 155 B
抓取索引抓取网页、切块、建索引,默认缓存 24 小时60 KB → 40 B
内容索引把文档切块写入全文索引60 KB → 40 B
内容检索对已索引内容做多查询检索按需取回
用量统计展示节省比例、调用次数与会话统计
环境体检检查运行时、钩子、索引与版本
版本升级拉到最新版本并重新配置钩子
索引清空彻底删除知识库里的全部索引内容
团队看板打开托管看板,查看团队级统计

沙箱本身跑在独立子进程里,脚本之间互相看不到内存和状态。可用运行时共十二种:JavaScript、TypeScript、Python、Shell、Ruby、Go、Rust、PHP、Perl、R、Elixir 和 C#;检测到 Bun 时,JS 与 TS 的执行还会快上三到五倍。

已登录的命令行工具也能照常用,gh、aws、gcloud、kubectl、docker 通过凭证透传继承环境变量和配置路径,但这些凭证不会暴露给对话。当输出超过 5 KB 且调用方给了意图描述,系统会切换到意图驱动的过滤:先整段索引,再按意图检索,只返回匹配的片段,并附上一组可以继续追问的关键词,避免一次吐出一整片无关内容。

在平台适配上,它对不同客户端的支持程度做了明确分级:

支持程度代表平台实际效果
完整钩子Claude Code、Codex CLI、GitHub Copilot、Gemini CLI、OpenCode、Kiro、OpenClaw 等约 98% 上下文节约,压缩后可自动恢复工作状态
部分钩子Cursor 等节约比例接近,会话恢复仍受上游限制
仅指令文件Zed、Antigravity 等约 60% 节约,需要手动放一份说明文件

—————— ✦ ——————

04

SECTION 04

亮点

✅ 省得是真的。官方基准里,一次完整会话中 315 KB 原始输出被压到 5.4 KB,降幅 98%,会话有效时长从约 30 分钟拉长到约 3 小时。从页面快照到测试输出,二十多个场景都给了前后对照。

✅ 十七个客户端通吃。Claude Code、Codex CLI、Cursor、GitHub Copilot、Gemini CLI、Zed、Kiro 等主流 AI 编程工具基本都在名单里,并针对每个平台的钩子机制单独做了适配,而不是发一份配置文件了事。

✅ 一切本地化。没有遥测,没有云同步,不需要注册账号,数据库就落在你自己的家目录,会话结束即消失。

✅ 隐私不靠承诺,靠架构。原始数据既然从没进入过上下文,也就不存在被上传这一步。这是设计选择,不是待补的功能。

✅ 沿用你已有的权限规则。你在配置里禁掉的提权命令、禁读的环境变量文件,在沙箱内部同样生效;带 token 的调用参数会先被正则脱敏成占位符,再写进会话记录。

✅ 边界防护做得具体。项目外的文件读取默认被拒绝,想放行得复用你原本就写好的授权规则;项目内的软链接若指向外部,同样会被拦下,堵住了“宿主拦一次、换个工具再试一次”的老漏洞。

✅ 网络抓取默认加固。只放行 http 和 https;云厂商元数据地址、链路本地地址、组播段一律硬拦,防住域名重绑定这类把戏;本机与内网地址则默认放行,不影响本地开发。

✅ 检索链路做得细。倒数排名融合、邻近重排、模糊纠错、缓存与渐进节流,检索质量是朝着正经搜索系统对齐的。

✅ 态度克制。作者明确说执行类工具继承进程权限,边界防护只是纵深防御的一层,不是完整的系统沙箱——该交给宿主的安全职责,不越权揽过来。

—————— ✦ ——————

“上下文优化的终点,不是让模型忘得更快,而是让它在需要的时候,恰好想起该想起的东西。”

词元越来越便宜,但注意力从来没有便宜过。窗口再大,塞满原始数据的窗口也依然是低效的窗口。context-mode 真正值得学的地方,是把上下文预算当成一等资源去经营:该留在外面的数据留在外面,该记住的事记在本地,该取的时候精确取回。对那些每天和 AI 助手一起写代码的人来说,这可能比模型再强一点更实用。

—————— ✦ ——————

开源信息

项目:context-mode

仓库:https://github.com/mksglu/context-mode

官网:https://context-mode.com

作者:mksglu

Star:22.4k+

Fork:1.6k+

主要语言:TypeScript

许可:Elastic License 2.0,源码可获取

数据:用户量 56.2 万以上,npm 下载 52.7 万以上,曾登上 Hacker News 榜首

END

相关学习资料

返回首页浏览学习资料