面向 AI 编码 agent 的上下文窗口优化 MCP server,通过沙箱化执行、会话持久化与输出压缩将上下文消耗降低 98%。
Context Mode 是一个专为 AI 编码 agent 设计的上下文窗口优化工具,以 MCP server 形态运行,定位于解决长对话中的上下文溢出与状态丢失问题。
核心机制#
沙箱化工具执行(Context Saving):将原始数据隔离在上下文窗口之外,仅 stdout 进入对话。实测 315 KB → 5.4 KB,约 98% 上下文减少。覆盖 11 种语言运行时:JavaScript、TypeScript、Python、Shell、Ruby、Go、Rust、PHP、Perl、R、Elixir。
会话持续性(Session Continuity):每次文件编辑、git 操作、任务、错误、用户决策均持久化到 per-project SQLite 数据库。对话压缩时通过 FTS5 全文索引 + BM25 搜索只检索相关信息恢复工作状态。支持 --continue 跨会话恢复;非 continue 会话自动删除历史数据。依赖 4 个 hooks 协作:PreToolUse、PostToolUse、PreCompact、SessionStart。
输出压缩(Output Compression):通过 prompt-level 规则减少 LLM 输出冗余(去填充词、客套话、冗长解释),约 65-75% 输出 token 减少,保持技术准确性。
代码驱动分析(Think in Code):强制范式转变,LLM 编写脚本处理数据而非将数据读入上下文,ctx_execute("javascript", ...) 替代多次 Read() 调用,节省约 100x 上下文。
知识库#
内置 SQLite FTS5 全文索引,BM25 排序。采用双策略 + RRF(Reciprocal Rank Fusion):Porter 词干匹配 + Trigram 子串匹配融合。支持 Proximity Reranking(多词查询中相邻匹配项加权提升)、Fuzzy Correction(Levenshtein 距离自动纠错)、Smart Snippets(围绕匹配词的智能窗口提取)。URL 索引 24 小时 TTL 缓存,14 天自动清理。
工具集#
6 个沙箱工具:
ctx_batch_execute:单次调用运行多个命令 + 多个搜索(1-8 并发),986 KB → 62 KBctx_execute:11 种语言沙箱执行,56 KB → 299 Bctx_execute_file:文件沙箱处理,45 KB → 155 Bctx_index:Markdown 按 heading 分块 + FTS5 索引,60 KB → 40 Bctx_search:多查询并行搜索已索引内容ctx_fetch_and_index:抓取 URL → markdown → 分块索引,24h TTL 缓存
5 个元工具:ctx_stats(统计)、ctx_doctor(诊断)、ctx_upgrade(升级)、ctx_purge(清除索引)、ctx_insight(打开分析面板)
Intent-Driven Filtering:输出超过 5 KB 且提供 intent 参数时,自动索引全文 → 按意图搜索 → 仅返回相关匹配。
渐进限流:调用 1-3 正常返回,4-8 减少结果 + 警告,9+ 重定向到 ctx_batch_execute。
洞察面板#
本地 Web UI 分析面板:90 个指标、37 个洞察模式、4 个综合评分(生产力、质量、委派、上下文健康度)、23 个事件类别。
平台适配#
已适配 14 个主流 AI coding agent 平台:Claude Code(插件市场全自动安装)、Gemini CLI、VS Code Copilot、JetBrains Copilot、Cursor、Kiro、OpenCode、KiloCode、Codex CLI、Qwen Code、Antigravity、Zed、OpenClaw、Pi Agent。无 hooks 的平台(如 Antigravity、Zed)退化为纯 MCP 工具模式,会话持续性不可用。
架构概要#
基于 @modelcontextprotocol/sdk 的 MCP server,TypeScript 编写,esbuild 打包为 server.bundle.mjs。入口点包括 src/server.ts(MCP server)、src/cli.ts(CLI)、src/session/(会话管理,含 extract、snapshot、db 三层模块)。数据存储于 ~/.context-mode/content/ 下按项目隔离的 SQLite 数据库。SQLite 后端自动选择:Bun → bun:sqlite,Linux + Node.js ≥ 22.13 → node:sqlite,其他 → better-sqlite3。Insight Dashboard 前端基于 Vite + Tailwind CSS。认证 CLI(gh、aws、gcloud、kubectl、docker 等)通过环境变量和配置路径继承凭证,不暴露到对话中。测试使用 vitest + benchmark。
待确认事项#
- 作者 Mert Koseoğlu 的组织归属未明确
- 生产部署规模未具体说明(README 列出 logo 但未点名公司)
- Elastic License 2.0 禁止作为托管服务提供给第三方,SaaS 场景需注意合规
- 98% 上下文减少的基准条件见 BENCHMARK.md,未深入验证
- 无独立文档站,README 为唯一文档源