DSH(DeepSeek Harness)开发者在构建长对话或复杂工作流时,常面临上下文窗口溢出的问题。dsh-plugin-om 插件通过 Observational Memory 方式管理上下文,解决这一问题。
该插件由 FanetheDivine 维护。
功能¶
插件提供以下能力:
* 自动压缩主会话历史,并在摘要过大时再次合并。
* 通过工具循环生成摘要,保留用户消息、系统消息和未压缩内容。
* 保留工具加载与手动加载的 skill 原文,并在压缩前再次确认。
* 使用 recall 按消息序号回看原文,使用 recall-semantic 进行本地语义检索。
* 记录压缩过程、耗时和 token 用量。
* 压缩会话记录显示在子智能体列表,随父会话 Session 日志一起下载。
* 在浏览器中显示压缩结果、错误和降级警告。
安装与前置条件¶
插件要求 DSH 0.2.0-rc.2 或更高版本。
执行以下命令安装:
dsh plugin --profile <profile> add dsh-plugin-om
重启 DSH 后,检查配置是否加载。
如果使用 pnpm 11 安装失败,可在 profile 的 pnpm-workspace.yaml 中设置 allowBuilds: true,或允许 onnxruntime-node、protobufjs 和 sharp 构建。
配置¶
在 WebUI 插件侧边栏打开 dsh-plugin-om 行配置页,或编辑 $DSH_HOME/profiles/<profile>/cordis.patch.yml。配置支持热更新,$DSH_HOME 默认为 ~/.dsh。
- id: dsh-plugin-om
config:
observeThresholdTokens: 35000
主要配置项如下:
| 配置项 | 默认值 | 说明 |
|---|---|---|
observeThresholdTokens |
35000 |
观察压缩阈值 |
reflectThresholdTokens |
40000 |
摘要合并阈值 |
tailMessageCount |
20 |
触发后保留的完整消息数 |
compressMaxTokens |
模型默认值 | 单轮生成上限 |
compressProvider |
会话路由 | 压缩 provider,需与 compressModel 同时配置 |
compressModel |
会话路由 | 压缩模型,需与 compressProvider 同时配置 |
compressReasoningEffort |
模型默认值 | 思考等级 |
compressSkipReasoning |
true |
是否忽略 reasoning |
rateLimitWaitMs |
60000 |
429 后的等待毫秒数,0 表示不等待 |
modelDir |
DSH 共享目录 | 嵌入模型目录 |
omEnabled |
true |
是否启用自动压缩 |
recallEnabled |
true |
是否启用原文召回 |
semanticRecallEnabled |
true |
是否启用语义召回 |
debug |
开发环境启用 | 是否输出步骤日志 |
较小的观察阈值更早节省上下文,较大的阈值提供更多摘要信息。只有 reasoning 包含关键决策时才需将 compressSkipReasoning 设为 false。
典型用法¶
- 在 WebUI 插件侧边栏打开
dsh-plugin-om行配置页,或编辑配置文件。 - 设置
observeThresholdTokens以控制压缩频率。 - 在对话中调用
recall工具按消息序号回看原文,或使用recall-semantic进行本地语义检索。 - 在浏览器中查看压缩结果、错误和降级警告。
注意事项¶
- 较小的观察阈值更早节省上下文,较大的阈值提供更多摘要信息。
- 只有 reasoning 包含关键决策时才需将
compressSkipReasoning设为 false。 - pnpm 11 安装失败时,在 profile 的
pnpm-workspace.yaml中设置allowBuilds: true,或允许onnxruntime-node、protobufjs和sharp构建。 - 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
结语¶
该插件通过自动压缩和原文召回机制,帮助 DSH 开发者管理长对话上下文。查看目录页和 GitHub 仓库获取更多信息。