Tarquinen/opencode-dynamic-context-pruning
Dynamic context pruning plugin for OpenCode - intelligently manages conversation context to optimize token usage
解决的问题
Dynamic Context Pruning (DCP) 通过自动修剪或摘要过时的对话历史记录,减少 OpenCode 中的 Token 使用量并管理上下文窗口限制。它防止 LLM 被庞大的会话历史淹没,同时确保关键技术信息得以保留。
运作原理
DCP 作为一个层级,在将请求发送给 LLM 之前,会用占位符替换已修剪的内容,而不会修改实际的会话历史。它采用三种主要策略:
- 压缩 (Compression):模型可用的工具,将过时的对话区间(范围模式)或单条消息(消息模式)替换为高保真的技术摘要。它可以嵌套摘要,以防止在多次压缩周期中丢失信息。
- 去重 (Deduplication):识别并移除具有相同参数的重复工具调用,仅保留最新的输出。
- 错误清除 (Error Purging):在经过可配置的轮次后,移除导致错误的工具调用的大型输入内容,同时保留错误消息本身。
适用对象
希望降低 Token 成本并在长时间编码会话中维持模型性能的 OpenCode 用户。
特色亮点
- 模型驱动压缩 (Model-Driven Compression):允许 LLM 根据任务完成情况决定何时以及压缩什么,而不是使用静态阈值。
- 信息保留 (Information Preservation):保护特定的工具输出(如子代理和技能)以及用户消息不被修剪。
- 灵活配置 (Flexible Configuration):支持全局、项目级和自定义配置文件,并对上下文限制和提示频率进行详细控制。
- 手动控制 (Manual Control):包含 TUI 面板和斜线指令 (
/dcp,/dcp-compress) 以进行手动上下文管理。
相关
- 项目
- 项目
- 项目
- 项目