在 DeepSeek Harness (DSH) 的开发与调试过程中,精细控制 LLM API 请求行为是提升稳定性与调试效率的关键。dsh-request-manager 插件旨在通过全局配置策略,接管并修改 DSH 的默认请求行为,例如调整请求间隔、覆盖重试次数以及处理特定场景下的请求失败。
核心功能¶
该插件通过会话区顶部的「请求管理」按钮提供控制面板,所有设置全局生效且跨会话共享,配置会自动持久化。
请求额外间隔¶
在每个 API 请求之间插入额外的延时(毫秒)。该设置不影响会话的首个请求,对于自动重试和手动重试同样适用。将数值设置为 0 可禁用此功能。
重试次数覆盖¶
修改 API 请求失败后的自动重试次数。DSH 默认的重试次数为 5 次。本选项允许自定义该数值,留空则表示不覆盖默认策略。需要注意的是,对于 DSH 默认不重试的失败类型(如 SSE stream ended without [DONE] 或 NETWORK ERROR),本选项不会影响其处理逻辑。
拦截“请求失败”¶
当 API 请求失败后,插件会自动展开面板,提供处理决议。本功能对 DSH 默认不重试的失败同样生效。
- 重试:原地重发同一请求(仍受额外间隔约束),若再次失败会重复显示。
- 放弃:按 DSH 原生路径终结该轮请求。
- 超时设置:可配置超时时长(秒)与超时动作。
0表示不启用超时机制。选择“自动重试”时,持续失败的请求会按超时周期反复重发。
安装与启用¶
安装插件后需要重启 DSH 进程才能生效。
dsh plugin --profile web add github:tree-func/dsh-request-manager
使用说明¶
- 打开 DSH 的任意会话。
- 点击会话区顶部的「请求管理」按钮。
- 在弹出的面板中进行配置。配置值决定功能是否介入:
- 输入非零数值启用“请求额外间隔”。
- 输入非零数值启用“重试次数覆盖”。
- 选择“拦截”并配置超时动作以启用“拦截失败”。
技术架构¶
插件采用 Bundle 形式,包含 Host(index.js)与 Client(client.js)两部分。
- Host:挂载在 Web Profile 根层,监听
agent/request(插入间隔)和agent/request-error(重试与拦截)事件,并注册/reqmgr-api路由供前端读写配置。 - Client:通过官方 ModuleLoader 加载,注册 UI 按钮与面板,使用语义化 CSS 变量适配主题,并从 localStorage 恢复配置。
已知局限¶
- 会话隔离:失败拦截的提示(面板展开、按钮警示圆点)仅出现在发生失败的会话中。若长时间未切回该会话,挂起状态会按超时设置自动重试或放弃。
- 界面语言:界面文案跟随 DSH 的语言设置自动切换。
生态背景¶
DSH 是基于插件化架构的 DeepSeek 代理工具。本插件由开发者 tree-func 维护,遵循 MIT 许可证。社区目录提供插件的索引服务,与 DeepSeek 官方无隶属关系。