前言¶
在使用 DeepSeek Harness Web 进行开发或部署时,错误处理是保证服务稳定性的关键环节。DSH 自带 llm-retry 机制,但错误分类往往依赖于服务端返回的错误码。如果某些速率限制错误被标记为 PI_AI_ERROR 而非 RATE_LIMIT,重试机制可能无法生效。
dsh-better-retry 插件解决了这个问题。它通过将特定的 PI_AI_ERROR 重新分类为 RATE_LIMIT,配合 DSH 的标准重试策略,让开发者能够更精细地控制哪些错误值得重试,以及如何匹配这些错误。
是什么¶
这是一个面向 DeepSeek Harness Web 的错误分类与自动重试规则管理插件。
- 维护者:leolee9086
- 核心能力:将特定的错误消息模式(如
PI_AI_ERROR)识别并重新分类为RATE_LIMIT,交由 DSH 的@deepseek-ai/dsh-llm-retry处理。 - 价值:通过规范化消息匹配和可视化规则管理,降低重试配置的门槛,避免因错误分类不当导致的请求失败。
核心功能¶
错误重新分类¶
插件运行时拦截 PI_AI_ERROR,根据配置的规则将其归类为 RATE_LIMIT。DSH 会基于其内置的指数退避策略(包括抖动)决定是否重试,重试次数、延迟等参数由服务商的 DSH 策略决定,请求原文和诊断信息保持不变。
两种消息匹配方式¶
- 规范化后完整匹配(默认):移除
request、trace、correlation id和 UUID,统一大小写与空白。这种方式要求消息在去除易变字段后完全一致,适合明确且较短的消息。 - 包含连续片段:支持更宽泛的匹配。片段必须是错误消息中连续存在的文本,且至少包含 24 个字符和 3 个空白分隔词。
管理入口¶
插件在 Web 界面提供了两个可见的管理入口:
1. 设置 → 自动重试:查看全部内置和自定义模式,进行启用/停用、删除和添加操作,并测试消息匹配。
2. 错误行 → 纳入自动重试:在浏览错误日志时,直接展开预览表单,将当前错误快速纳入自动重试规则。
智能建议与旧版迁移¶
- 相似样本建议:插件会分析最近 100 种错误与已保存模式的样本,按错误码和服务商筛选,建议连续公共片段作为匹配规则。
- 旧版迁移:支持将旧版的
rules: string[]迁移至新的patterns格式。
安装与启用¶
安装前请确保你的 DSH Web profile 包含 llm、settings、connection 以及标准的 llm-retry 模块。同时,需要较新的 DSH 接口支持(connection.rpc.handle/call、settings.section)。
使用官方命令安装:
dsh plugin --profile web add github:leolee9086/dsh-better-retry
若需固定版本,可在命令末尾指定 commit SHA:
dsh plugin --profile web add github:leolee9086/dsh-better-retry#COMMIT_SHA
安装后,刷新 Web 页面。使用 dsh --profile web --dump-config 验证配置中是否同时包含 llm-retry 和 dsh-better-retry,并打开管理页确认 Host 能返回规则列表。
典型用法¶
纳入一条错误¶
- 在错误日志中点击“纳入自动重试”。
- 在展开的表单中,默认使用“规范化后完整匹配”。输入服务商 ID(默认为
*表示所有服务商)。 - 点击“预览匹配”,检查规范化后的消息和命中的模式。
- 点击“确认纳入自动重试”。只有 Host 持久化成功,才会显示保存成功。
测试匹配¶
在管理页的“测试消息是否命中”功能中,粘贴消息文本。Host 会使用与真实流处理相同的匹配器,显示当前命中的启用模式,用于调试规则配置。
内置模式¶
插件默认启用了两条针对常见速率限制错误的模式:
* Too many pending requests, please retry later
* Our servers are currently overloaded. Please try again later
适用场景与注意¶
适用场景¶
适用于需要精细化处理特定错误码(如 PI_AI_ERROR)的场景,特别是当服务商返回的错误信息包含大量动态 ID 或格式不稳定,但核心错误含义明确时。
注意事项¶
- 不会恢复已结束的回合:保存规则仅影响后续请求。对于已经结束的对话,即使命中规则也不会自动重试。
- 权限与版本:插件以当前 DSH 进程权限运行。如果管理页报错或返回 404,通常意味着 Host 和 Client 版本不一致,需要重新加载 Host 插件而非仅刷新浏览器。
- 重试策略:实际的重试行为由 DSH 的
maxRetries、backoff等参数决定。如果服务商关闭了重试或次数耗尽,命中模式也不会无限重试。 - 许可证:项目采用 MIT 许可证,可自由使用与修改。
总结¶
dsh-better-retry 提供了一个可视化的、基于消息模式的错误分类工具,它不替代 DSH 的重试引擎,而是作为“翻译器”将难以识别的错误转化为可重试的错误。通过规范化的匹配和直观的管理界面,它降低了错误处理的复杂度。
- 项目目录:https://www.skillhub.cn/plugins/leolee9086/dsh-better-retry
- GitHub 仓库:https://github.com/leolee9086/dsh-better-retry