Context Mode
一句话简介
一款面向开发者的上下文管理与调试工具,帮助在不同场景间高效切换和保存开发上下文。
标签
适用应用场景
- 管理多项目开发上下文
- 调试时切换保存的上下文状态
- 跨环境复用开发配置
- 团队协作共享上下文方案
README 中文摘要
Context Mode:解决上下文窗口的另一半难题
问题概述
每次 MCP 工具调用都会将原始数据倾倒进上下文窗口。一个 Playwright 快照占 56 KB,二十个 GitHub issue 占 59 KB,一条访问日志占 45 KB。工作 30 分钟后,40% 的上下文已耗尽。当智能体压缩对话以释放空间时,会遗忘正在编辑的文件、未完成的任务以及用户的最新请求。此外,智能体还会在输出侧浪费 token,用于寒暄、客套和冗长解释——上下文从两端同时被消耗。
四维解决方案
Context Mode 是一个 MCP 服务器,从四个维度解决问题:
- 上下文节省——沙箱工具将原始数据挡在上下文窗口之外,315 KB 可压缩至 5.4 KB,降幅达 98%。
- 会话连续性——所有文件编辑、Git 操作、任务、错误和用户决策均记录到 SQLite。当对话被压缩时,context-mode 不把数据回灌到上下文中,而是将事件索引到 FTS5 并通过 BM25 检索相关内容,模型可以准确接续上次进度。如未使用
--continue,上一次会话数据会立即清除,新会话即全新起点。 - 用代码思考——LLM 应编程分析,而非计算分析。例如统计函数数量时,智能体编写脚本执行
console.log()输出结果,1 次脚本调用取代 10 次工具调用,上下文节省 100 倍。该范式在全部 17 个受支持的客户端以及 OpenClaw 网关集成中强制启用。 - 不强制文风——context-mode 仅控制数据的去与留,从不规定模型如何撰写最终答复。简洁性、完整性、格式由模型(或用户的
CLAUDE.md/AGENTS.md)自行决定。
安装方式
不同平台的安装复杂度各异,具备 hook 能力的平台可获得自动路由强制执行,其余平台只需一次性复制路由文件。
Claude Code
通过插件市场一键安装,需 Claude Code v1.0.33+:
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode
安装后执行 /context-mode:ctx-doctor 验证,所有检查项应显示 [x]。SessionStart hook 在运行时注入路由指令,无需写入项目文件。插件注册全部 hook(PreToolUse、PostToolUse、UserPromptSubmit、PreCompact、SessionStart、Stop)以及 11 个 MCP 工具——六个沙箱工具(ctx_batch_execute、ctx_execute、ctx_execute_file、ctx_index、ctx_search、ctx_fetch_and_index)和五个元工具(ctx_stats、ctx_doctor、ctx_upgrade、ctx_purge、ctx_insight)。
可选的状态栏配置:
{
"statusLine": {
"type": "command",
"command": "context-mode statusline"
}
}
也可仅以 MCP 方式快速试用:
claude mcp add context-mode -- npx -y context-mode
Gemini CLI
全局安装 context-mode,在 ~/.gemini/settings.json 中同时注册 MCP 服务器与四个 hook(BeforeTool、AfterTool、PreCompress、SessionStart)。BeforeTool 匹配器仅拦截产生大输出的工具(run_shell_command、read_file、read_many_files、grep_search、search_file_content、web_fetch、activate_skill)以及 context-mode 自身工具,避免在轻量工具上产生不必要的 hook 开销。
VS Code Copilot
创建 .vscode/mcp.json 注册 MCP,再创建 .github/hooks/context-mode.json 配置三个 hook(PreToolUse、PostToolUse、SessionStart)。
JetBrains Copilot
在 Settings > Tools > AI Assistant > MCP 中添加 context-mode 服务器,再在 .github/hooks/context-mode.json 中配置三个 hook。
GitHub Copilot CLI
推荐方式为一条命令安装插件:
npm install -g context-mode
copilot plugin install mksglu/context-mode:configs/copilot-cli
该插件包通过 .mcp.json 自动设置 CONTEXT_MODE_PLATFORM=copilot-cli,使 context-mode 正确自识别为 Copilot。手动方式需分别通过 copilot mcp add 注册 MCP,以及在 ~/.copilot/hooks/context-mode.json 中配置六个 hook 事件(preToolUse、postToolUse、preCompact、sessionStart、userPromptSubmitted、agentStop)。
Cursor
由于 Marketplace 插件等待 Cursor 团队审核,暂采用本地目录方式安装。macOS/Linux 使用软链接,Windows 因不支持符号链接需使用 robocopy。手动方式在 .cursor/mcp.json 注册 MCP,在 .cursor/hooks.json 配置三个 hook(preToolUse、postToolUse、stop),并将路由规则文件复制到 .cursor/rules/context-mode.mdc——因为 Cursor 暂未支持 SessionStart hook。
OpenCode / KiloCode
均为 TypeScript 插件架构。在 opencode.json 或 kilo.json 中添加 "plugin": ["context-mode"] 即可,原生注册全部 11 个 ctx_* 工具并启用 hook。两者均缺少真正的 SessionStart hook,插件以 experimental.chat.system.transform 作为替代,在系统提示中注入路由块和恢复快照;用户提示通过 chat.message 钩子捕获。若配置中同时存在 plugin 与遗留的 mcp.context-mode 条目,注册的工具数量将为零,应运行 context-mode upgrade 移除遗留条目。
OpenClaw / Pi Agent
作为 OpenClaw 网关的原生插件运行,目标是 Pi Agent 会话(Read/Write/Edit/Bash 工具)。安装脚本 npm run install:openclaw 处理全部流程:依赖安装、原生模块重建、插件注册以及通过 SIGUSR1 重启网关。可通过 -- 指定自定义 $OPENCLAW_STATE_DIR 路径,Docker 默认为 /openclaw,本地通常为 ~/.openclaw。
摘要更新于 2026-09-08 00:30:53
· 原文 94434 字符
· md5 b09a90652251…