dsh-wait-guard:主 Agent 的出口閘門

在 DeepSeek Harness (DSH) 的多代理編排場景中,主 Agent 往往需要在所有子代理任務完成後才能結束當前回合。如果主 Agent 試圖過早收尾,會導致工作流中斷或結果不完整。dsh-wait-guard 插件正是爲了解決這個問題而生,它作爲一個純 Host 平面閘門,強制保持主 Agent 的 turn 開放,直到所有後代子代理的狀態變爲非 running。

核心功能

  • 強制等待後代結算:只要還有後代子代理處於 running,主 Agent 的 turn 就不允許結束。
  • 純 Host 插件:不註冊工具、不改配置、不寫文件、無全局狀態,刪除插件即可完全恢復原樣。
  • 即時響應消息:暫停期間任何消息(人的消息、子代理的彙報或結算通知)到達都立刻讓插件失效。
  • 臨時失效機制:失效是臨時的。下一次模型想收尾時,只要還有子代理在跑,閘門立刻重新生效。
  • 無泄漏設計:監聽器隨插件銷燬,定時器不泄漏。在途等待會在卸載時立刻解除,不會把正在等待的 turn 卡死。

安裝與啓用

插件支持從 GitHub 直接安裝,無需 npm。

dsh plugin --profile <你的 profile> add github:dn4hjtcr9s-del/dsh-wait-guard

也可以在 Web UI 中操作:Plugins → Add plugin → 將上面的 add 命令後的一段粘貼進去。

典型用法

插件裝好後無需配置即可工作,默認行爲是 60 秒靜默提醒一次,任何消息到達立刻退場。

若需調整行爲,可修改 bundle 行的 config:

  • 純靜默:設置 nudge: false,只等待,不發送提醒。
  • 攢批處理:設置 releaseOn: ['user','agent-message'],在收到用戶消息或子代理消息時才放行,而不是每次結算通知都放行。

適用場景與注意

  • 適用場景:任何涉及多層級子代理調用的 DSH Agent 工作流,防止主 Agent 過早結束導致流程中斷。
  • 環境要求:需要 Node.js >= 22.19.0。
  • 安全特性:零依賴、零寫入、零全局狀態。
  • 容錯策略:若讀不到子代理列表時默認放行(onProbeError: 'open'),可改爲 'closed' 嚴格模式。
  • 消息處理:不阻斷排隊的人消息。若本次放行的唯一原因是 next-turn 裏的排隊消息,絕不注入提醒。
  • 版本變更:已廢除(v5)的配置項包括 waitFactor / maxWaitMs / maxNudgesPerTurn / giveUpAfterMs / giveUpText,配置裏寫了也會被忽略。

結尾

dsh-wait-guard 提供了一個可靠、無副作用的方式來管理多代理編排中的回合收尾邏輯。作爲純 Host 插件,它不干擾業務邏輯,適合需要嚴格把控子代理完成狀態的 DSH 工作流。

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

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

小夜