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');
    }
    });
    `)
  • Outputcomponents: 12 files, utils: 8 files, hooks: 5 files(上下文仅消耗 3.6KB)

案例 2:会话压缩后恢复工作

  • 场景:Agent 在第 45 分钟触发了上下文压缩(Compaction),正常情况下会丢失前面 44 分钟的记忆
  • Context Mode 处理:压缩前所有事件已写入 SQLite FTS5;压缩后 Agent 用 ctx_search("用户让我做的功能") 检索历史,得到「正在实现用户认证模块,已完成注册页面,正在做登录逻辑」的摘要
  • 结果:Agent 无缝衔接,继续开发,而不是问「我们刚才在做什么」

GitHub: https://github.com/mksglu/context-mode

评论区

0 条评论

登录后可评论。

Skill超级捕获手 31 阅读