dsh-plugin-sync-delegate:在 DSH 里同步委派并等待子代理结果

前言

在 DeepSeek Harness(DSH)里,主 agent 常把复审、专项分析交给子代理。内置的 subagent 工具只登记任务并立即返回;要拿到结果,往往得结束本轮、等完成通知。若交付门禁要求「复审完成才算交付」,模型在单轮内没有可阻塞等待的手段,只能反复查 list_agents。该列表不带耗时,模型容易按感觉估时间——例如把约 2 分钟当成 20 分钟,进而打断仍在执行的子代理。

下面介绍社区插件 dsh-plugin-sync-delegate(维护者 tf961656585,分类:工作流):为 agent 增加 delegate_sync,实现「派活并在本回合内等结果」,超时也不取消子代理,结果通过跟进消息送回。

这是什么

dsh-plugin-sync-delegate 是 DSH 的工作流类插件,在工具列表中提供 delegate_sync。一句话:同步委派——委派一项任务、等待答案,避免因内置超时或误判耗时而丢掉慢子代理的结果。

插件无侧栏入口,仅扩展工具契约;协作原则(例如门禁场景应使用同步委派、不得凭自估耗时打断)写在 master-subagent skill 中,README 明确插件不重复承载这些内容。

当前 package.json 版本为 0.1.0,协议 MIT。

核心功能

delegate_sync 的三种结局

模型调用 delegate_sync 并传入自包含的任务说明后:

  1. 子代理正常完成:工具返回子代理的最终文本,主 agent 在同一回合继续后续步骤。
  2. 等待超时:返回「还在跑」,不取消子代理。子代理继续执行;完成后通过一条跟进消息写回主 agent,并自动开启新一轮。结果不会凭空丢失,也不鼓励对同一事项重复委派。
  3. 用户中断本轮:工具调用被取消,子代理被停止,避免留下无人接收的结果。

参数

参数 必填 含义
prompt 是 完整、自包含的任务说明。子代理看不到当前对话。
label 否 列表里显示的短标签,默认取任务第一行。
timeout_ms 否 等待上限,默认 180000(3 分钟),范围 5000–600000。

实现要点(便于理解边界)

  • 使用 ctx.subagents.startActivation({ delivery: 'caller' }),面向「调用方等待结果」的工作流,不与内置父级完成通知重复。
  • 子代理继承父级模型设置、当前目录与委派深度上限;不提供额外模型或 preset 选择。
  • 超时后通过 followup 将结果写回父会话;父级空闲直接唤醒,繁忙则排队到下一轮。超时后子代理仍会 dispose,不常驻占用名额。

安装与启用

需要已安装 DSH。在 DSH 的插件安装界面填写仓库地址:

github:tf961656585/dsh-plugin-sync-delegate

也可填写该仓库在本机的绝对路径。安装完成后重启 DSH,在工具列表中应出现 delegate_sync。

可选全局配置:在 cordis.patch.yml 对应插件条目的 config 中调整默认值,例如:

- insert:
    - id: sync-delegate
      name: dsh-plugin-sync-delegate
      config:
        timeoutMs: 180000
        maxTimeoutMs: 600000
        maxOutputChars: 20000
        toolName: delegate_sync
        provider: spawn

不写则使用上述默认项。

插件在本机 DSH 进程内以当前进程权限运行;安装前建议阅读仓库源码与 MIT 许可证,确认是否符合你的环境策略。

典型用法

验证是否加载

安装重启后,可用 cordis_inspect_query 的 Tool.listTools 确认列表中出现 delegate_sync。

实测三种路径

README 建议用一条小任务验证:

  1. 任务能在超时内完成 → 同一回合拿到最终文本。
  2. 故意拉长执行 → 先得到「还在跑」,子代理未被取消。
  3. 子代理完成后 → 主会话收到跟进消息中的结果。

调用时把复审或分析写成自包含的 prompt(子代理无当前对话上下文),必要时用 label 便于在 agent 列表中区分任务。

适用场景与注意

适合:交付或门禁要求「必须拿到子代理结论再继续」的流程;需要在本轮阻塞等待、又不能让慢任务被误杀的场景。

边界与限制(均来自 README):

  • 仅提供工具契约;流程纪律依赖 skill,不由本插件单独约束。
  • 默认仅支持进程内 spawn 后端(可通过 provider 修改,但外部后端是否支持 delivery: caller 未验证)。
  • 不支持为子代理指定模型或 preset。
  • 应用重启会丢失「超时后待送达」的那次结果(activation 不跨进程);子代理会话仍在,可用 send_message 续跑。
  • 阻塞期间该轮次不结束,这是同步语义;因此默认等待 3 分钟、上限 10 分钟。

DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-plugin-sync-delegate 用 delegate_sync 补上「派活并等结果」这一环,缓解内置异步委派与无耗时列表带来的误判打断问题。仓库与说明见 GitHub,目录入口见 SkillHub 插件页。

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

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

小夜