上下文管理器--克劳德代码插件
通过MCP工具+钩子进行主动上下文窗口管理。让克劳德明白 保存/加载结构化检查点的工具,这些检查点可以在压缩后幸存下来,跟踪重复 以减少安全上下文。
背景
该插件基于三篇论文:
- 动态上下文修剪 (arXiv 2305.15805)——“DCP”名称的起源;演示了可学习的令牌修剪,在不损失质量的情况下实现了高达80%的上下文减少
- CAT/上下文作为工具 (arXiv 2512.22087)——主要建筑影响;提出了一种结构化的3段工作空间,模型通过工具调用主动管理自己的上下文
- 复杂性陷阱 (arXiv 2508.21433)--验证简单的观察掩蔽(删除过时的工具输出)是否与基于LLM的摘要质量相匹配,从而证明了这里基于钩子的方法
为什么它在实践中有所帮助: 状态(任务进度、决策、文件上下文)在压缩之前写入磁盘,然后恢复,因此不会丢失任何内容。检测并警告重复的工具读取,减少重新读取相同文件时浪费的令牌。子任务边界为模型提供了安全、可预测的压缩点,而不会丢失关键上下文。
需求
- Node.js >= 20
- jq公司 (钩子脚本需要)
- bash (钩子脚本需要)
- 克劳德代码 支持插件
安装
git clone https://github.com/DxTa/claude-dynamic-context-pruning.git ~/.claude-plugins/context-manager
cd ~/.claude-plugins/context-manager && ./setup.sh
claude --plugin-dir ~/.claude-plugins/context-manager这 --plugin-dir flag加载所有三个层:MCP服务器、钩子和技能。这三个都是正确操作所必需的——钩子在压实过程中自动保存/恢复,该技能教模型何时以及如何使用这些工具。
包含内容
| 图层 | 用途 | 文件 |
|---|---|---|
| MCP服务器 | 模型管理其上下文的6个工具 | server/ |
| 钩子 | 压缩前自动保存,压缩后自动恢复,跟踪重复项 | hooks/ |
| 技能 | 行为指导,教模型何时/如何使用工具 | skills/ |
| 配置 | 插件清单、MCP注册、钩子定义 | 根文件 |
MCP工具
save_checkpoint--保存结构化状态(任务、文件、决策、错误)load_checkpoint--压缩后或会话之间恢复状态mark_complete--安全上下文压缩的信号子任务完成get_context_stats--查看会话统计信息和重复读取警告list_checkpoints--枚举所有已保存的检查点track_tool_usage--记录工具使用事件(通常由钩子调用)
钩子
- 预紧 --压缩前自动从转录中提取状态
- 会话启动(紧凑型) --压缩后注入恢复文本
- PostToolUse(读取| Bash) --跟踪重复读取,在3时发出警告+
运作原理
- 模特阅读技巧→ 学习上下文管理协议
- 模型调用
save_checkpoint在子任务边界处 - 模型调用
mark_complete当工作完成时 - 压缩时:PreCompact挂钩自动保存→ 压实作业→ SessionStart钩子注入恢复
- 模型调用
load_checkpoint压缩后恢复完整上下文 get_context_stats显示重复数据消除警告→ 模型停止重新读取
国家坚持 .claude/context-state/ 在项目目录中。
平台支持
| 平台 | 判决 |
|---|---|
| Linux/Ubuntu | ✅ 全力支持 |
| macOS | ✅ 完全支持--通过安装jq brew install jq |
| Windows(WSL2) | ✅ 全力支持 |
| Windows(本机) | ❌ 不支持--没有bash |
| Windows(Git Bash) | ❌ 不支持--默认情况下jq不可用 |
挂钩需要 bash 和 jq。不支持没有两者的平台。
发展
cd server
pkgx npm install
pkgx npm run bundle # Single-file esbuild bundle (recommended, no runtime node_modules)
pkgx npm run build # TypeScript tsc compilation许可证
麻省理工学院
