Context Mode Skill:让 AI 编码 Agent 的上下文窗口减肥 98%
一句话总结
Context Mode 是一个 MCP Server,专为 AI 编程 Agent 设计,通过沙盒隔离将工具输出压缩 98%,同时用 SQLite + FTS5 持久化会话记忆,让 Agent 在长对话中始终保持「上下文清醒」,而不是跑 30 分钟就变成「失忆鱼」。
核心功能与设计原则
Context Mode 解决的是 AI 编码 Agent 面临的最实际问题:上下文窗口污染。每次调用 Playwright 截图返回 56KB,20 个 GitHub Issue 返回 59KB,一次访问日志 45KB——30 分钟对话后,40% 的上下文被工具输出垃圾填满,模型开始遗忘自己改到哪了。
它用三个机制应对:
- 沙盒化工具输出:原始数据进子进程,只返回结果摘要。315KB → 5.4KB,98% 压缩率。
- 会话记忆持久化:文件编辑、git 操作、任务状态、用户决策全部写入 SQLite + FTS5 索引。上下文压缩时,只检索 BM25 排名最相关的记忆片段,而不是把原始历史一股脑塞回去。
- Think in Code 原则:不把 LLM 当数据处理器,而是当代码生成器。与其读 50 个文件来数函数,不如让 Agent 写一个脚本 console.log() 出结果——一次脚本替换十次工具调用,节省 100 倍上下文。
认可度
- GitHub Star:约 21.2k(截至 2026-09-08)
- Forks:约 1,433
- 月下载量:77.8k(npm)
- Trending 排名:曾冲至 GitHub 日榜第 13 位,周榜 / 月榜稳定 Top 100
- 社媒热度:4 月中旬爆发,单日新增 1,049 颗 Star,HN /dev/ 和多个 AI 开发者社区持续讨论
- 用户背书:README 称 Microsoft、Google、Meta、Amazon、IBM、NVIDIA 内部团队已在生产环境使用
链接
GitHub:https://github.com/mksglu/context-mode
原作者
mksglu(GitHub Username)——独立开发者,专注于 AI 编码工具链优化,Context Mode 是其目前最知名的项目。
详细介绍
Context Mode 诞生于 2026 年 4 月,最初为解决 Claude Code 长会话「上下文失忆」问题而开发。它的核心洞察是:上下文才是真正的 Agent 瓶颈,而不是推理能力——一个开局聪明的模型,运行 30 分钟后会因为上下文被工具输出垃圾填满而变笨。
项目以 MCP Server(Model Context Protocol)形态分发,扮演「上下文路由器」角色:拦截所有工具调用,把原始输出扔进沙盒,只将结构化结果写回上下文。同时,所有会话事件(文件编辑、错误、git 操作、任务进度)都会以 FTS5 索引形式持久化到本地 SQLite 数据库。当模型触发上下文压缩(compaction)时,不是清空历史重来,而是从索引中检索最相关的那几条记忆。
项目支持 17 个平台,包括 Claude Code、Cursor、Codex、Copilot、VS Code Copilot、Gemini CLI、Zed、OpenClaw 等主流编码工具,涵盖从安装到路由配置的全套集成方案。
特点
- 98% 上下文压缩:Playwright 快照 56KB → 299 bytes;20 个 GitHub Issue 59KB → 几条检索结果
- 会话记忆不丢失:上下文压缩后依然能从 SQLite + FTS5 恢复完整工作状态,支持
--continue断点续接 - 平台覆盖广:17 个平台自动路由,Hook 机制让路由规则在运行时注入,无需改项目文件
- Think in Code 范式:内置
ctx_execute系列工具,引导 Agent 用脚本替代数据读取,节省 Token - 零数据外流:所有记忆存储在本地 SQLite,不上传云端,隐私友好
- 分钟级安装:一行 npm 命令完成安装,
/plugin marketplace add完成 Claude Code 集成,ctx-doctor验证环境
使用方法
安装(以 Claude Code 为例):
# 1. 安装 npm 包
npm install -g context-mode
# 2. 从 Claude Code 插件市场安装
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode
# 3. 重启 Claude Code(或 /reload-plugins)
# 4. 验证环境
/context-mode:ctx-doctor
基本调用示例:
# 查看上下文节省统计
/context-mode:ctx-stats
# 搜索历史会话中与某任务相关的记忆
/context-mode:ctx-search "数据库迁移"
# 清除当前会话数据(开始新任务)
/context-mode:ctx-purge
Think in Code 场景:
不再:
Read() × 47 个文件 → 700 KB 上下文消耗
而是:
ctx_execute("javascript", `
const files = fs.readdirSync('src').filter(f => f.endsWith('.ts'));
files.forEach(f => console.log(f + ': ' +
fs.readdirSync('src/'+f).length + ' files'));
`);
// → 输出结果仅几行,3.6 KB 上下文消耗
使用场景与人群
适用场景:
- 长时间 AI 编程会话(>30 分钟的大型功能开发、代码重构)
- 需要跨会话恢复工作进度的开发流
- 高频工具调用的 Agent 工作流(频繁操作浏览器、文件系统、Git)
- 多 Agent 协作项目中,保持每个 Agent 记忆独立
目标用户:
- 日常重度使用 Claude Code、Cursor、Codex 等 AI 编程工具的开发者
- 需要在长任务中保持 Agent 记忆连贯性的团队
- 对 Token 消耗敏感、需要控制上下文成本的个人开发者
输入与输出案例
案例 1:长会话文件计数
- Input:在一个 47 个 TypeScript 文件的项目中,让 Agent 统计每个子目录的文件数量
- 传统方式(无 Context Mode):Agent 发出 47 次 Read() 调用,上下文消耗约 700KB,最终输出混乱
- Context Mode 方式:
ctx_execute("javascript", `
const fs = require('fs');
const path = require('path');
const src = 'src';
fs.readdirSync(src).forEach(dir => {
const dirPath = path.join(src, dir);
if (fs.statSync(dirPath).isDirectory()) {
const files = fs.readdirSync(dirPath).filter(f => f.endsWith('.ts'));
console.log(dir + ': ' + files.length + ' files');
}
});
`) - Output:
components: 12 files,utils: 8 files,hooks: 5 files(上下文仅消耗 3.6KB)
案例 2:会话压缩后恢复工作
- 场景:Agent 在第 45 分钟触发了上下文压缩(Compaction),正常情况下会丢失前面 44 分钟的记忆
- Context Mode 处理:压缩前所有事件已写入 SQLite FTS5;压缩后 Agent 用
ctx_search("用户让我做的功能")检索历史,得到「正在实现用户认证模块,已完成注册页面,正在做登录逻辑」的摘要 - 结果:Agent 无缝衔接,继续开发,而不是问「我们刚才在做什么」
评论区
登录后可评论。