← 返回日报
🌐 机器翻译 · DeepSeek · GitHub

mksglu context-mode


Context Mode

上下文问题的另一半。已被以下团队使用:

问题所在

每次 MCP 工具调用都会将原始数据倾倒入你的上下文窗口。一次 Playwright 快照耗费 56 KB。二十个 GitHub issue 耗费 59 KB。一份访问日志——45 KB。30 分钟后,你 40% 的上下文就没了。而当 agent 压缩对话以释放空间时,它会忘记正在编辑哪些文件、哪些任务正在进行、你最后要求的是什么。除此之外,agent 还会在填充词、客套话和冗长解释上浪费输出 token——从两端同时燃烧上下文。

Context Mode 如何解决

Context Mode 是一个 MCP server,解决了这个问题的四个方面:

上下文节省 — 沙箱工具将原始数据挡在上下文窗口之外。315 KB 变成 5.4 KB。减少 98%。

会话连续性 — 每次文件编辑、git 操作、任务、错误和用户决策都记录在 SQLite 中。当对话压缩时,context-mode 不会将这些数据倾倒回上下文——而是将事件索引到 FTS5 中,并通过 BM25 搜索仅检索相关内容。模型能精确地从你中断的地方继续。如果你不使用 --continue,之前的会话数据会立即删除——全新会话意味着干净的状态。

用代码思考 — LLM 应该编写分析程序,而不是亲自计算。与其将 50 个文件读入上下文来统计函数数量,agent 编写一个脚本来完成计数,并仅通过 console.log() 输出结果。一个脚本替代十次工具调用,节省 100 倍的上下文。这是所有 17 个受支持客户端的强制范式,外加 OpenClaw 网关集成:不要再把 LLM 当作数据处理者,把它当作代码生成器。

// Before: 47 × Read() = 700 KB. After: 1 × ctx_execute() = 3.6 KB.
ctx_execute("javascript", `
  const files = fs.readdirSync('src').filter(f => f.endsWith('.ts'));
  files.forEach(f => console.log(f + ': ' + fs.readFileSync('src/'+f,'utf8').split('\\n').length + ' lines'));
`);

无文风强制 — context-mode 将原始数据挡在上下文之外,但从不规定模型如何撰写最终答案。简洁、完整、格式——由你的模型决定(或由你通过自己的 CLAUDE.md / AGENTS.md 决定)。激进的简洁提示已被证明会降低编码/推理基准测试成绩(Moonshot AI 在 kimi-k2.5 上的研究)——路由块专注于数据流向何处,而非模型如何表达。

安装

平台按安装复杂度分组。支持 hook 的平台获得自动路由强制。非 hook 平台需要一次性复制路由文件。

Claude Code — 插件市场,全自动

前置条件:Claude Code v1.0.33+(claude --version)。如果 /plugin 不被识别,请先更新:brew upgrade claude-code 或 npm update -g @anthropic-ai/claude-code。

安装:

/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode

重启 Claude Code(或运行 /reload-plugins)。

验证:/context-mode:ctx-doctor

所有检查项应显示 [x]。doctor 会验证运行时、hooks、FTS5 和插件注册。

路由: 自动。SessionStart hook 在运行时注入路由指令——不会向你的项目写入任何文件。该插件注册所有 hooks(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)。

| 斜杠命令 | 功能 | |---------|------| | /context-mode:ctx-stats | 上下文节省——按工具细分、消耗的 token、节省比例。 | | /context-mode:ctx-doctor | 诊断——运行时、hooks、FTS5、插件注册、版本。 | | /context-mode:ctx-index | 将本地文件或目录索引到持久化 FTS5 知识库。 | | /context-mode:ctx-search | 搜索之前索引的内容。 | | /context-mode:ctx-upgrade | 拉取最新版、重建、迁移缓存、修复 hooks。 | | /context-mode:ctx-purge | 从知识库中永久删除所有已索引内容。 | | /context-mode:ctx-insight | 在浏览器中打开托管的 Insight 仪表盘(context-mode.com/insight)——面向 AI 辅助工程团队的组织分析。 |

注意:斜杠命令是 Claude Code 插件功能。在其他平台上,在聊天中输入 ctx stats、ctx doctor、ctx index、ctx search、ctx upgrade 或 ctx insight——模型会自动调用 MCP 工具。参见实用命令。

状态栏(可选): Claude Code 的插件清单无法声明状态栏,因此需要一次性手动编辑 ~/.claude/settings.json:

{
  "statusLine": {
    "type": "command",
    "command": "context-mode statusline"
  }
}

保存后,重启 Claude Code。状态栏显示 $ saved this session · $ saved across sessions · % efficient,让你实时看到节省累积。接线无需路径——context-mode statusline 通过捆绑的 CLI 解析,无论插件缓存位于何处。

替代方案——仅 MCP 安装(无 hooks 或斜杠命令)

claude mcp add context-mode -- npx -y context-mode

这会给你全部 11 个 MCP 工具,但没有自动路由。模型仍然可以使用它们——只是不会被提示优先使用它们而非原始的 Bash/Read/WebFetch。适合在承诺使用完整插件之前先试用。

Gemini CLI — 一个配置文件,包含 hooks

前置条件:Node.js >= 22.5(或 Bun),已安装 Gemini CLI。

安装:

全局安装 context-mode:

npm install -g context-mode

将以下内容添加到 ~/.gemini/settings.json。这一个文件注册了 MCP server 和全部四个 hooks:

📖 阅读原文 →