DeepSeek Harness 插件:後臺子 agent 消息延遲投遞

前言

在 DeepSeek Harness (DSH) 中,利用 run_in_background 啓動後臺子 agent 是常見的開發模式。然而,後臺子 agent 完成時的通知或彙報消息,往往會在父會話仍處於忙碌狀態(如正在生成回覆或調用工具)時直接進入收件箱或顯示在界面上。這會導致消息混入正在進行的回合,或者提前打斷用戶的注意力。

@momojie-s/dsh-subagent-idle-delivery 解決了這個問題。它通過“掛起並釋放”(hold-and-release)機制,攔截後臺子 agent 的完成通知,直到父會話完全空閒後,纔將這些消息作爲新的對話回合投遞。

插件簡介

這是一個 DSH 插件,由開發者 Momojie-S 維護。

其核心邏輯是攔截後臺子 agent 的完成通知,並在父會話空閒時投遞。掛載後無需任何額外操作即可生效。它支持攔截 subagent-settled(後臺子 agent 結算通知)、subagent-report(舊版彙報工具)和 agent-message(新版 send_message 回覆)等類型。

安裝與啓用

通過命令行安裝插件:

dsh plugin --profile web add github:Momojie-s/dsh-subagent-idle-delivery

首次安裝時,如果使用 pnpm,可能需要在 profile 目錄下的 pnpm-workspace.yaml 文件中添加 allowBuilds 授權構建。安裝完成後重啓 DSH 以生效。

配置項

插件支持通過 patch config 字段進行擴展配置。

字段 類型 默認值 說明
heldKinds string[] ['subagent-settled', 'subagent-report', 'agent-message'] 指定需要攔截的 source.kind 列表。擴展前需確認該類型的全部來源,以免誤攔審批或任務完成通知。
maxHoldMs number 600000 放水閥時限。如果扣留時間超過該毫秒數仍未進入空閒狀態,消息將以“排隊到當前回合之後”的方式釋放。設爲 0 可嚴格扣留到空閒,但慎用(連續驅動的 goal 會話可能長期不空閒)。

驗證與使用場景

典型用法:
讓模型起一個後臺子 agent(使用 run_in_background),同時父會話繼續執行當前任務。

驗證步驟:
1. 啓動後臺子 agent。
2. 觀察日誌,應出現 holding N notice(s) ... until idle,表示消息已被攔截。
3. 此時界面不應出現子 agent 的彙報消息。
4. 完成父會話當前回合的工作。
5. 子 agent 的彙報作爲新回合出現在歷史記錄中,日誌顯示 released ... (idle)。

注意事項

  1. 環境依賴:插件依賴 DSH 版本 >= 0.1.0-rc.7。
  2. 類型變更:默認攔截 agent-message 類型(在 DSH rc.1 steer 統一後,此類消息取代了舊的 report 工具)。
  3. 權限:本插件以當前 DSH 進程權限運行,安裝前請檢查源碼與許可證。
羽毛球分组比赛记分
小程序二维码

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

小夜