dsh-subagent-error-details:传递子智能体失败详情

在 DeepSeek Harness (DSH) 中,当后台子智能体中途失败时(例如遭遇模型 API 429 速率限制),核心生成的通知通常会丢弃具体原因。它仅显示通用的失败描述,随后是空白内容。真正的错误被记录在子智能体会话的终端 turn/end 事件中,但未被传递给父智能体。此插件监听该事件,通过会话存储读取详情,并将具体的失败原因路由回父智能体。

插件定位

  • 名称:dsh-subagent-error-details
  • 类型:DSH 插件
  • 维护者:sijie-ni-0214
  • 核心价值:当后台子智能体失败时,将具体的失败原因(如 RATE_LIMIT 429)传递给父智能体,而非仅显示通用通知。

核心功能

  1. 监听事件:监听公开的 subagent/end 事件。
  2. 解析详情:在 stopReason === "error" 时,通过 sessionPersistence.load() 解析子智能体会话的终端 turn/end 失败详情。
  3. 路由回传:利用子智能体会话头的 parentSession 和代理注册表,将真实错误详情路由回拥有该子智能体的父智能体。
  4. 附加消息:向父智能体发送附带消息,展示具体错误信息(例如 RATE_LIMIT: 429 Rate limit exceeded)。

安装与启用

插件通过包管理器安装,挂载到 DSH 配置中。安装后需重启 DSH 生效。

官方安装命令(适用于所有智能体预设):

dsh plugin --profile web add dsh-subagent-error-details

本地开发安装(从本地路径):

cd ~/.dsh/profiles/web
pnpm add file:/path/to/dsh-subagent-error-details

典型用法与输出

安装并重启 DSH 后,当后台子智能体因速率限制失败时,父智能体将收到包含具体原因的附带消息:

Subagent <id> failed with: RATE_LIMIT: 429 Rate limit exceeded for api_key ... Limit resets at ...

适用场景与注意

  • 版本依赖:需要 dsh.engines.dsh: >=0.1.1-rc.2 <0.2。
  • 数据读取:持久化读取依赖于会话检查点策略已刷新 turn/end 事件。
  • 通知文本:官方通知文本由核心生成,保持不变;此插件仅添加附带消息。
  • 一次性运行:无会话记录的一次性进程内运行,仅能报告 stopReason,无法获取详情。
  • 依赖:插件具有零运行时依赖,仅作为开发依赖引入类型定义。

总结

该插件解决了 DSH 中后台子智能体失败信息丢失的问题,通过监听事件链并读取会话持久化存储,将真实的错误原因反馈给父智能体。目前依赖上游 DSH 版本 0.1.1-rc.2 以上。

羽毛球分组比赛记分
小程序二维码

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

小夜