context-mode
开源的AI编程代理上下文窗口优化工具,通过工具输出沙箱化、会话记忆持久化和跨平台路由管理,大幅降低token消耗,延长代理单次会话续航能力
时间轴 (近 90 天)
该独立测试从未在代理内部实际运行context-mode,因此无法判断真实模型首次写对脚本的概率,也无法评估会话记忆在压缩后的表现。
context-mode是一个开源的MCP服务器加钩子组合,面向Claude Code、Codex、Cursor、Gemini CLI等编码代理,核心功能是将大体积工具输出交给代理生成的脚本在子进程中执行,只返回脚本打印结果,并将原始输出索引到本地SQLite全文搜索库。
context-mode采用Elastic License 2.0源码可见许可,最初以MIT协议发布后于3月切换。
context-mode在GitHub上曾登上趋势榜,单日新增904星,总星数接近3万。
context-mode宣称能为AI编码代理节省98%的上下文窗口占用。
98%的数字来自项目自带的tests/ecosystem-benchmark.ts,该基准包含14个场景,每个场景将保存的工具输出与一份为该文件手写的摘要脚本配对,比较文件原始大小与脚本输出大小。
独立复现测试使用项目自带的执行器跑完整基准,结果与BENCHMARK.md精确到字节吻合,确认98%的数字本身没有造假。
对同样的14个场景重新统计:原始工具输出322,419字节,仅标准输出5,517字节(节省98.3%),加上回显路径与代码后为16,916字节(节省94.8%),再加上调用中的代码本身则达到27,504字节(节省91.5%)。
context-mode的每个ctx_execute_file回复以文件路径和最多2000字符的代码块开头,然后才是输出,基准测试未计入这些回显和脚本代码。
在基准的git日志样例中,脚本使用split(" ")[4]假设每行第五个词是提交类型,但这仅在作者名为两个字时成立;测试者用相同脚本处理context-mode自己的提交历史(2,234次提交,203KB),摘要输出从107字节变成7,071字节,节省96.5%,但输出错误地将最常见类型显示为'update',实际上有550个提交来自单词名作者github-actions[bot]。
还有 19 条时间轴事件
全部知识事实 (20)
该独立测试从未在代理内部实际运行context-mode,因此无法判断真实模型首次写对脚本的概率,也无法评估会话记忆在压缩后的表现。
50%待验证context-mode是一个开源的MCP服务器加钩子组合,面向Claude Code、Codex、Cursor、Gemini CLI等编码代理,核心功能是将大体积工具输出交给代理生成的脚本在子进程中执行,只返回脚本打印结果,并将原始输出索引到本地SQLite全文搜索库。
50%待验证context-mode采用Elastic License 2.0源码可见许可,最初以MIT协议发布后于3月切换。
50%待验证context-mode宣称能为AI编码代理节省98%的上下文窗口占用。
50%待验证98%的数字来自项目自带的tests/ecosystem-benchmark.ts,该基准包含14个场景,每个场景将保存的工具输出与一份为该文件手写的摘要脚本配对,比较文件原始大小与脚本输出大小。
50%待验证独立复现测试使用项目自带的执行器跑完整基准,结果与BENCHMARK.md精确到字节吻合,确认98%的数字本身没有造假。
50%待验证对同样的14个场景重新统计:原始工具输出322,419字节,仅标准输出5,517字节(节省98.3%),加上回显路径与代码后为16,916字节(节省94.8%),再加上调用中的代码本身则达到27,504字节(节省91.5%)。
50%待验证context-mode的每个ctx_execute_file回复以文件路径和最多2000字符的代码块开头,然后才是输出,基准测试未计入这些回显和脚本代码。
50%待验证在基准的git日志样例中,脚本使用split(" ")[4]假设每行第五个词是提交类型,但这仅在作者名为两个字时成立;测试者用相同脚本处理context-mode自己的提交历史(2,234次提交,203KB),摘要输出从107字节变成7,071字节,节省96.5%,但输出错误地将最常见类型显示为'update',实际上有550个提交来自单词名作者github-actions[bot]。
50%待验证在context-mode自己的提交历史中,总计679个提交(30%)的作者名不是两个词,导致三段式名字把作者姓氏当成提交类型,且脚本没有报错,输出看起来像一份摘要。
50%待验证context-mode对信息丢失的答案是索引:当传入intent且输出超过5KB时,将输出分块存入SQLite FTS5,只回复最匹配的段落。
50%待验证测试者用gh issue list --json获取100个开放React issue(303KB),按context-mode的intentSearch方式构造回复,查询意图为'ViewTransition bugs',回复为1,667字节(节省99.4%),但100个issue中8个提到ViewTransition,其编号在回复中一个都没出现,五个匹配标题全是'Output',预览是原始JSON的120字符切片。
50%待验证context-mode的98%节省是在理想情况下衡量的上限,未计入模型生成摘要脚本本身的token消耗,而脚本本身也是上下文的一部分。
50%待验证测试者建议:采用context-mode的思路,但不必依赖这个包;当命令输出很大时,让代理写入文件并运行脚本处理,同时要求脚本在计数旁边打印几条原始样本行以暴露错误解析;评估此类工具应基于任务而非字节,并将代理写的代码计入总开销。
50%待验证context-mode 通过沙盒工具将网页快照、命令行日志等原始输出隔离在上下文窗口之外
50%待验证官方数据称沙盒隔离机制可以实现高达 98% 的上下文膨胀削减
50%待验证context-mode 将会话记忆持久化到 SQLite 数据库中,以便对话被压缩后仍能检索之前的改动和任务状态
50%待验证Hooks 机制允许开发者在工具调用的生命周期节点插入自定义逻辑,是实现拦截与转换原始输出的关键手段
50%待验证context-mode 是一个基于 TypeScript 的开源工具,专注于为 AI 编程 Agent 优化上下文窗口
50%待验证context-mode不是独立的编程代理,而是为现有编程代理提供的优化中间层
50%