前言¶
在 DSH 工作流中,当子代理因输出 Token 不足(max-tokens)而终止时,运行会将 stopReason 设为 ‘max-tokens’ 并停止。此时父代理需要手动决定并恢复该子任务。dsh-subagent-watchdog 针对这一具体场景,通过官方接口自动执行一次恢复。
它是什么¶
这是一个 DSH 插件,用于自动恢复以明确的 max-tokens 终止的原生可续子代理。插件在恢复一次后会停止干预,不包含循环或定时器。
- 所有者: quaner1234-cmd
- 类别: 工作流
- 许可证: MIT
核心功能¶
插件通过官方 DSH 接口实现以下能力:
- 自动恢复: 检测到子代理以
max-tokens终止时,自动执行一次续接。 - 确定性判断: 依赖持久化会话 ID 和日志进行判断,确保逻辑确定。
- 单次保证: 保证每个子任务最多恢复一次,不包含循环或定时器。
- 无外部依赖: 无需构建步骤,依赖 Node >= 20。
- 接口使用: 通过官方
sessions.flush和subagents.followup接口实现。
安装与启用¶
通过 DSH 插件路径安装:
dsh plugin --profile <profile> add dsh-subagent-watchdog
该包声明了 dsh.bundle.patch,dsh plugin add 会自动将其集成到配置堆栈中。
典型用法¶
- 触发恢复: 当子代理因输出 Token 不足(
max-tokens)终止时,插件自动检测。 - 执行续接: 插件通过官方接口执行一次续接,恢复后的运行正常完成。
- 停止干预: 续接完成后插件停止干预。
- 手动处理: 若再次失败,插件通知父代理并提供手动选项(如
send_message、interrupt_agent等)。
适用场景与注意¶
- 兼容性: 仅支持
@deepseek-ai/dsh0.1.1-rc.2,无其他兼容性声明或测试。 - 依赖机制: 依赖
dsh.bundle.patch机制。 - 运行权限: 插件以当前 dsh 进程权限运行。
- 风险提示: 安装前应检查源码与许可证。
总结¶
该插件通过一次恢复机制,减少了原生可续子代理在 max-tokens 终止时的手动干预成本。