DeepSeek Harness (DSH) 的核心设计理念之一是插件化。在使用过程中,会话压缩是保持上下文长度可控的关键操作。默认情况下,DSH 在执行 /compact 或自动压缩时,使用的是上一轮对话中回答问题的模型。如果你在 Web UI 中切换了模型,但随后运行 /compact,系统仍会使用旧模型生成摘要。dsh-compact-selected-model 插件解决了这个问题,它让压缩操作使用当前选定的模型。
插件介绍¶
这是 DeepSeek Harness 的一个客户端插件,用于在压缩会话摘要时,使用当前选定的模型,而非上一轮的模型。该插件由 DenAbr 维护,采用 MIT 许可证。
安装与兼容性¶
在安装前,请确保你的 DeepSeek Harness 版本在 0.1.7-rc.2 到 0.2.x 之间。
1、运行安装命令:
npx @deepseek-ai/dsh plugin --profile web add dsh-compact-selected-model
2、安装完成后,重启 dsh web 服务。
核心功能与原理¶
插件支持 /compact 命令以及自动压缩功能。其工作逻辑如下:
- 模型选择机制:在 Web UI 中选择模型时,DSH 会向会话添加一个
model/selection事件。该选择会一直保持待处理状态,直到下一次请求使用它。 - 请求拦截:插件会监听
llm/stream事件。当检测到一个请求的purpose为'compaction',且会话中有待处理的模型选择时,插件会将该请求发送给选定的模型。 - 覆盖策略:如果
compaction-basic中显式设置了summarizationModel,插件将不会介入,保持原有行为。
注意事项¶
在使用过程中需注意以下几点:
- 日志显示差异:会话日志中的
compaction/summary事件仍会显示旧模型名称,因为记录该事件的是compaction-basic组件。实际的请求去向可在主日志中查看。 - 自动压缩阈值:自动压缩的阈值仍基于上一个模型的上下文窗口计算。
- 运行模式限制:该插件依赖会话控制器的
modelSelection投影,因此在无头(headless)运行模式下不起作用。 - 失败处理:如果选定的模型失败(例如触发了速率限制或上下文窗口不足),压缩操作也会随之失败。此时需要切换回可用的模型并重新运行
/compact。
典型用法¶
在 Web UI 中切换模型后,直接运行 /compact 即可。插件会使用当前选定的模型来生成会话摘要。
总结¶
该插件为 DSH 用户提供了更灵活的会话压缩控制能力,允许根据当前意图选择最合适的模型来处理摘要生成。
- GitHub 仓库: https://github.com/DenAbr/dsh-compact-selected-model
- 插件目录: https://www.skillhub.cn/plugins/DenAbr/dsh-compact-selected-model