DeepSeek Harness 错误分类与自动重试插件

前言

在使用 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 能返回规则列表。

典型用法

纳入一条错误

  1. 在错误日志中点击“纳入自动重试”。
  2. 在展开的表单中,默认使用“规范化后完整匹配”。输入服务商 ID(默认为 * 表示所有服务商)。
  3. 点击“预览匹配”,检查规范化后的消息和命中的模式。
  4. 点击“确认纳入自动重试”。只有 Host 持久化成功,才会显示保存成功。

测试匹配

在管理页的“测试消息是否命中”功能中,粘贴消息文本。Host 会使用与真实流处理相同的匹配器,显示当前命中的启用模式,用于调试规则配置。

内置模式

插件默认启用了两条针对常见速率限制错误的模式:
* Too many pending requests, please retry later
* Our servers are currently overloaded. Please try again later

适用场景与注意

适用场景

适用于需要精细化处理特定错误码(如 PI_AI_ERROR)的场景,特别是当服务商返回的错误信息包含大量动态 ID 或格式不稳定,但核心错误含义明确时。

注意事项

  1. 不会恢复已结束的回合:保存规则仅影响后续请求。对于已经结束的对话,即使命中规则也不会自动重试。
  2. 权限与版本:插件以当前 DSH 进程权限运行。如果管理页报错或返回 404,通常意味着 Host 和 Client 版本不一致,需要重新加载 Host 插件而非仅刷新浏览器。
  3. 重试策略:实际的重试行为由 DSH 的 maxRetries、backoff 等参数决定。如果服务商关闭了重试或次数耗尽,命中模式也不会无限重试。
  4. 许可证:项目采用 MIT 许可证,可自由使用与修改。

总结

dsh-better-retry 提供了一个可视化的、基于消息模式的错误分类工具,它不替代 DSH 的重试引擎,而是作为“翻译器”将难以识别的错误转化为可重试的错误。通过规范化的匹配和直观的管理界面,它降低了错误处理的复杂度。

  • 项目目录:https://www.skillhub.cn/plugins/leolee9086/dsh-better-retry
  • GitHub 仓库:https://github.com/leolee9086/dsh-better-retry
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜