Opencode-DCP/opencode-dynamic-context-pruning
Dynamic context pruning plugin for OpenCode - intelligently manages conversation context to optimize token usage
解决的问题
减少 OpenCode 会话中因过时上下文导致的 token 使用量,并防止幻觉。通过管理对话历史,确保 LLM 不会超出其上下文窗口,也不会在冗余信息上浪费 token。
工作原理
DCP 在不修改原始会话历史的情况下管理上下文,而是将被修剪的内容替换为占位符后再发送请求给 LLM。它使用三种主要机制:
- 压缩:允许模型将过时或已关闭的对话段落(范围模式)或单个消息(消息模式)替换为高保真技术摘要。支持嵌套摘要,以在多层压缩中保留信息。
- 去重:识别并移除具有相同参数的重复工具调用,仅保留最新输出。
- 错误清理:在可配置的轮次后,移除出错工具调用的输入内容,同时保留错误消息本身。
适用人群
在长时间编码会话中使用 OpenCode,希望优化 token 消耗并维持模型性能的用户。
主要亮点
- 模型驱动压缩:模型根据任务完成情况决定何时压缩,而非依赖静态触发器。
- 灵活模式:支持连续范围压缩和精准的单条消息压缩。
- 可配置保护:允许用户保护特定工具输出、文件模式或用户消息,防止被修剪。
- 可自定义提示:提供可编辑的提示覆盖,用于自定义系统行为和压缩引导。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch