前言¶
在使用 DeepSeek Harness (DSH) 开发或调试智能体时,API 限流(429)或配额耗尽会导致当前对话中断。dsh-auto-continue-429 是一个 DSH 插件,旨在监听 RATE_LIMIT 和 QUOTA 错误,并在 dsh-llm-retry 重试耗尽后自动发送 continue 消息以恢复对话流。
核心功能¶
- 自动 Continue:在 step 级重试耗尽后,自动发送
continue消息开启新 turn。 - 错误识别:监听
RATE_LIMIT(429)和QUOTA(如insufficient_quota)错误码。 - 开关控制:提供对话框底部的快捷开关(
quickOn)和设置页的主开关(enabled),两者互不联动。停用插件后对话框开关条自动隐藏。 - 计数与限制:每会话独立计数,连续失败上限为 20 次。任意一次 turn 正常结束即清零。主动发送任意消息也会清零计数。
- 退避策略:每次 429 后随机等待 1~2 秒发送 continue。
安装¶
使用官方命令安装插件:
dsh plugin --profile web add github:haochi72/dsh-auto-continue-429
安装完成后,重启 DSH Desktop 生效。
使用方法¶
- 确认加载:重启 DSH 后,在对话框输入区底部会出现胶囊形开关条。
- 切换开关:点击底部的开关条可切换快捷开关(绿色为开,灰色为关)。
- 设置页控制:在设置页切换主开关,或自定义连续失败上限(1-100)。
配置¶
插件支持在 cordis.patch.yml 或 profile 配置中声明以下项:
- id: auto-continue-429
name: dsh-auto-continue-429
config:
maxRetries: 20 # 连续失败最大次数(默认20)
continueMessage: "continue" # 发送的 continue 消息文本
架构与权限¶
该插件为 DSH 标准的双端插件(Cordis 驱动):
- Host 端:监听
turn/end事件,拦截错误并调度 continue,通过内置 webServer 提供 HTTP 接口。 - Client 端:纯 DOM 注入,在输入区底部创建开关条,通过 HTTP 与宿主端通信。
权限方面,插件不访问文件系统(仅保存配置到 ~/.dsh/auto-continue-429.json),不读取 API Key,不外发任何网络请求(所有路由走 localhost)。
结尾¶
该插件通过自动重试机制减少因限流导致的对话中断,适合需要长时间运行或高并发测试的场景。更多细节请参考 GitHub 仓库。