前言¶
DeepSeek Harness (DSH) 自帶了 subagent 系統:父會話 fork 子代理,共享上下文,任務結束即銷燬。這適合處理短期、依賴性強的小任務。
但實際開發中,常需要多個獨立、長期運行的頂層會話(例如一個“協調者”會話拆解任務,多個“工人”會話並行處理)彼此協作。DSH 原生的子代理機制無法滿足這種對等、長生命週期的協作需求。
dsh-hive 插件解決了這個問題。它將 DSH 的會話轉化爲一個“蜂巢”,允許一個會話直接向另一個會話發送任務、喚醒對方,並自動接收結果。這種通信發生在頂層會話之間,而非子代理之間。
插件介紹¶
dsh-hive 是一個 DeepSeek Harness 插件,由開發者 llluchy 維護。它通過暴露兩個模型可調用的工具,實現了會話間的 peer-to-peer 通信。
核心價值在於:讓多個獨立的會話能夠像同事一樣互相派活,各自維護獨立的上下文和歷史,互不干擾。
核心功能¶
插件提供了以下能力:
- Wake on delivery:消息到達目標會話的瞬間,立即喚醒對方,開始新的一輪對話。
- Automatic result callback:發送任務時,消息會自動攜帶“任務完成後回傳結果”的指令(包含發送者的會話 ID)。接收方只需遵循該約定回覆即可。
- Task correlation:回調指令中包含任務文本的前 40 個字符作爲標籤。接收方在回覆時會重複該標籤,方便發送方區分回覆屬於哪個任務。
- Send-and-yield:發送任務後,發送方的當前回合立即結束(
concludesTurn),不會阻塞等待回覆。回覆會作爲新消息在後續回合中到達並喚醒發送方。 - No self-delivery:插件禁止向自身會話發送消息,以避免邏輯錯誤。
安裝與啓用¶
dsh-hive 是一個 DeepSeek Harness bundle(聲明瞭 dsh.bundle 並包含 cordis.patch.yml),安裝流程與官方教程一致,無需手動修改 harness 代碼。
執行以下命令安裝:
dsh plugin --profile <name> add github:llluchy/dsh-hive
安裝後,可通過 dsh --profile <name> --dump-config 檢查配置層中是否包含 dsh-hive。啓動 Harness 後,在任何對話中詢問 list_sessions,即可看到當前進程中的活躍會話列表。
典型用法¶
基本流程:發送任務並獲取結果¶
在發送方會話中,指示模型執行以下步驟:
- 調用
list_sessions獲取目標會話的 ID。 - 調用
send_to_session,將 ID 和任務文本作爲參數傳入。
發送方發送任務後回合結束。目標會話被喚醒,在自己的上下文中處理任務。由於任務消息自帶回調指令,目標會話會自動向發送方回傳結果。發送方在下一回合被喚醒,即可看到結果。
批量發送¶
在規劃階段,先列出目標會話,然後一次性發起多個 send_to_session 調用。所有任務會被送達,發送方在整批任務處理完畢後釋放,後續通過回覆逐個收到結果。
僅通知,不期待回覆¶
如果發送的消息本身就是回覆(例如對前序任務的確認),或者不需要對方回傳結果,可將 expectReply 設爲 false。此時消息不帶回調指令,用於避免陷入回覆循環。
工具參考¶
list_sessions¶
列出當前 DSH 進程中處於“活躍/加載”狀態的會話。
返回值:{ ok, count, sessions: [{ id, status, cwd? }] }
- Live-only targeting:僅返回當前正在運行的會話。從未打開過的“冷會話”不會出現在列表中,也無法被目標。
send_to_session¶
將消息直接投遞到指定會話,並喚醒對方。
| 參數 | 類型 | 必填 | 說明 |
|---|---|---|---|
sessionId |
string | 是 | 目標會話 ID(來自 list_sessions) |
message |
string | 是 | 消息內容 |
expectReply |
boolean | 否 | 是否追加自動回調指令。默認 true。設爲 false 表示此消息本身是回覆或不需要回傳。 |
返回值:成功時返回 { ok: true, deliveredTo, expectReply, senderId };失敗時返回 { ok: false, error }(如會話 ID 爲空、未知會話或自我發送)。
適用場景與注意¶
dsh-hive 適用於需要將複雜工作流拆分爲多個獨立角色長期運行的場景。
注意事項:
- 權限限制:
list_sessions和send_to_session只能看到當前 DSH 進程中已加載的會話。無法查詢或喚醒未打開的會話。 - 軟約定:回調機制是基於約定的。插件會生成“請回復”的指令,但接收方是否強制執行、是否設置
expectReply: false,取決於接收方模型的決策。沒有硬狀態機防止死循環。 - 無持久化:該插件只負責投遞消息和喚醒會話,不維護消息時間線、已讀回執或成員列表。
總結¶
dsh-hive 提供了一種輕量級的對等會話協作方案。它不強制複雜的狀態機,而是依賴模型遵循約定的指令流。如果你需要構建多角色、獨立上下文的協作系統,可以通過以下鏈接查看更多細節: