前言¶
在开发 DeepSeek Harness (DSH) 预设时,长会话中工具结果往往体积庞大,容易导致上下文溢出。现有的压缩方式有时难以兼顾压缩力度与历史恢复能力。dsh-context-guard 旨在通过修剪过大的工具结果来控制上下文增长,同时保留持久会话历史以供针对性恢复。
是什么¶
这是一个由 kpl0111 维护的 DSH 预设插件,专注于解决长智能体会话中的 Token 消耗问题。它通过策略管理工具结果的保留与修剪,不引入额外的 LLM 调用。
核心功能¶
插件通过以下机制控制 Token 消耗:
- 超限修剪与预览:在下一次模型请求前,插件会将过大的普通工具结果替换为 2.3K 字符的预览(保留开头 1792 字符和末尾 448 字符)。
- 会话历史保留:原始工具输出存储在 DSH 的追加式会话历史中,插件本身不会删除原始数据,仅修剪预览。
- 特定策略:搜索结果遵循正常修剪策略;回忆结果仅保留完整内容供紧接的下一步使用,之后再次进入修剪队列。
安装与启用¶
使用官方命令安装插件:
dsh plugin --profile web add github:kpl0111/dsh-context-guard#v0.2.0
若需要有界搜索和回忆恢复,需安装配套包:
dsh plugin --profile web add github:KitDoesIt/dsh-compaction-instant
在使用修剪后的输出时,需在 persona/system prompt 中添加提示,指导模型优先使用文件路径或窄范围搜索,仅在必要时使用回忆。
安装或更新后,必须重启 DSH 并创建新会话。
验证¶
- 在新会话中运行产生大量输出的工具(如 PowerShell)。
- 检查会话事件日志或上下文视图,确认模型接收的是约 2.3K 字符的预览而非完整结果。
- 使用搜索定位已知值,然后执行回忆以验证完整内容。
兼容性与注意事项¶
- 版本要求:需要
@deepseek-ai/dsh-*0.1.0-rc.6 及以上兼容版本。 - 内置组件:与内置的
@deepseek-ai/dsh-compaction-tool-result-pruner配合工作。 - 阈值设置:
thresholdRatio: 0.001触发阈值接近即时,但仍会检查上下文窗口;若偏好延迟修剪可设为0.20。 - 数据安全:插件不会删除原始工具输出(仅修剪预览)。
- 互斥性:与
presets/standard-lite.fragment.yml互斥,不可同时启用。
结尾¶
该插件通过策略级控制优化了 DSH 会话的 Token 利用率。更多细节请参考项目目录或源码。