TL;DR
Context Mode 是一个针对 AI Coding Agent(如 Claude Code, Cursor)的 MCP Server,通过沙盒机制拦截工具输出、利用 SQLite FTS5 实现会话记忆持久化,强制引导模型使用代码分析而非直接读取大文件。它旨在解决长会话中 Context Window 被无效数据占满、导致 Agent “失忆”的核心痛点。
它解决什么问题
AI Coding Agent 在长周期任务中面临严重的上下文窗口(Context Window)效率危机。传统模式下,MCP 工具调用会将大量原始数据(如 Playwright 快照、GitHub Issue列表)直接注入 Context Window,导致有效指令被稀释。当 Agent 进行上下文压缩(Compaction)时,往往丢失关键状态(如正在编辑的文件、任务进度)。此外,模型常被诱导去“阅读”大量文件以进行简单统计或分析,造成巨大的 Token 浪费。Context Mode 的出现正是为了填补这一“上下文管理另一半”的空白,从数据摄入和记忆存储两个维度优化 Agent 的工作流。
核心做法
该项目通过四个关键设计解决上述问题:
1. Context Saving(沙盒机制):拦截 Read、WebFetch 等工具调用,将原始数据存入本地 SQLite 数据库而非 Context Window。通过 ctx_execute 等工具,让模型编写脚本处理数据并仅返回结果(如计数),实现约 98% 的上下文节省。
2. Session Continuity(会话连续性):利用 SQLite FTS5 构建全文检索索引。当对话压缩时,不将历史数据回注 Context,而是通过 BM25 算法检索相关事件快照。Agent 能精准接续之前的工作状态。
3. Think in Code(代码思维强制):通过 Hooks 和路由指令,改变模型行为范式。禁止模型直接读取大量文件进行逻辑判断,强制其生成执行脚本(如 Node.js/Python 代码)来获取分析结果。
4. Routing Enforcement(路由强制):通过平台特定的 Hooks(如 PreToolUse, SessionStart)在运行时注入路由指令,确保模型优先使用 Context Mode 的工具集。
作者
项目由 mksglu(User)维护。README 及 Metadata 中未提供作者的个人背景、GitHub Profile 详情或过往项目履历。从项目的技术实现(TypeScript, SQLite FTS5, MCP 协议深度集成)来看,作者具备较强的全栈工程能力,但具体身份目前不可考。
社区反应
该项目在 GitHub 上获得了 20,815 Stars 和 1,519 Forks,显示出极高的关注度。HN(Hacker News)上曾获得 #1 位置及 570+ points,表明其在开发者社区中引发了强烈共鸣。然而,214 个 Open Issues 也暗示了项目处于快速迭代期,可能存在未解决的 Bug、兼容性冲突或功能请求积压。主语言为 TypeScript,生态绑定紧密。
怎么上手
依赖与环境: - Node.js >= 22.5 (或 Bun) - 目标平台(如 Claude Code v1.0.33+, Cursor, Gemini CLI 等)
最小复现步骤(以 Claude Code 为例):
1. 安装插件:/plugin marketplace add mksglu/context-mode
2. 加载插件:/plugin install context-mode@context-mode
3. 验证安装:运行 /context-mode:ctx-doctor,确保所有检查项显示 [x]
4. 开始使用:在对话中自然触发,或手动输入 ctx stats 查看上下文节省情况。
其他平台:
- Cursor: 需通过本地文件夹链接或等待 Marketplace 插件,配置 .cursor/hooks.json。
- Gemini CLI: 需修改 ~/.gemini/settings.json 注册 MCP Server 和 Hooks。
争议与局限
- 平台兼容性碎片化:虽然支持 17+ 个平台,但每个平台的 Hook 机制、配置方式差异巨大(如 Cursor 缺乏
SessionStarthook,需依赖.mdc规则文件)。这导致维护成本高且用户体验不一致。 - 侵入性配置:对于非 Hook 平台,需要手动复制路由规则文件(如
AGENTS.md),增加了初始配置负担。 - 数据隐私:所有工具输出和会话状态均存储在本地 SQLite 数据库中。虽然 README 未明确说明数据加密或匿名化策略,但用户需自行评估本地存储敏感代码片段的风险。
- 模型依赖:效果高度依赖于底层 LLM 对“代码执行”指令的遵循程度。如果模型拒绝生成脚本或忽略路由约束,沙盒机制可能失效。
- 推断:由于强制模型“写代码”而非“直接回答”,可能在某些简单查询场景下增加延迟(需等待脚本执行),且对模型代码生成能力有额外要求。
相关项目
- Context7 — 专注于通过 MCP Server 提供代码库上下文索引,但不具备 Context Mode 的沙盒拦截和会话记忆持久化能力。
- Kiro — Cursor 推出的代码库理解工具,侧重静态索引和语义搜索,缺乏运行时 Hook 对 Agent 行为的强制路由。
- OpenClaw — Context Mode 的集成目标之一,是一个 AI Agent Gateway 平台;Context Mode 是其插件生态中的上下文优化组件。
- Mem0 — 专注于 Agent 记忆层(Memory Layer),提供长期存储和检索,但通常作为独立服务运行,不直接嵌入 MCP 工具调用流进行沙盒拦截。
- Aider — 终端 AI 编程助手,内置了上下文管理策略(如
--map-tokens),但缺乏跨平台的 Hook 机制和统一的沙盒抽象。 - Cline — VS Code/Cursor 中的开源 AI Agent,支持自定义 MCP Server;Context Mode 可作为 Cline 的插件来增强其上下文效率。