前言¶
DeepSeek Harness (DSH) 的插件化架構爲工作流擴展提供了基礎。但在實際開發中,Agent 之間往往需要共享上下文或協同工作:一個 Session 可能正持有正在進行的實現,另一個 Session 需要這些上下文進行審查或繼續。直接複製歷史記錄會丟失上下文細節,而創建第二個獨立的 Harness 實例則會增加系統開銷和複雜度。
dsh-cross-session 旨在解決同一 DSH 進程內不同 Session 之間的通信問題。它不需要額外的守護進程或網絡端口,而是作爲標準插件運行在現有的 DSH runtime 中,讓 Session 能夠發現彼此、發送指令並觀察執行結果。
插件定位¶
這是一個由社區開發者 Wha1eChai 維護的獨立項目(非 DeepSeek AI 官方產品),許可證爲 MIT。它爲 DSH 提供了同一運行時內的跨 Session 發現與通信能力,屬於“工作流”類插件。
核心功能¶
插件提供了 6 個核心工具,用於控制目標 Session 的行爲:
- 發現 (
fleet_list):列出當前 DSH 進程中所有在線的 live root Session。 - 檢查 (
fleet_inspect):讀取目標 Session 的有界摘要,用於確認目標身份。 - 發送 (
fleet_send):向目標的下一個回合隊列中追加後續工作。 - 轉向 (
fleet_steer):在目標回合的邊界改變其行爲方向。 - 等待 (
fleet_wait):觀察目標 Session 完成的、包含特定消息的回合。 - 取消 (
fleet_cancel):顯式停止目標 Session 的根任務工作。
注意:fleet_send 用於等待目標處理完當前回合後再執行後續工作;fleet_steer 則用於在當前回合的邊界改變方向,如果目標處於空閒狀態,轉向操作會喚醒它並開始處理該輸入。
安裝與啓用¶
安裝該插件需要指定具體的版本號(當前爲 0.1.0-rc.1)。
- 執行安裝命令:
dsh plugin --profile web add @wha1echai/dsh-cross-session@0.1.0-rc.1
- 編輯 DSH 配置文件,啓用消息發送和轉向能力。默認情況下,插件僅提供只讀發現能力。在
cordis.patch.yml中添加以下配置:
- id: dsh-cross-session-tools
name: '@wha1echai/dsh-cross-session/tool'
config:
controlMode: message
- 重啓 DSH 進程。
使用流程¶
fleet_send 和 fleet_steer 需要通過確認流程來保證安全性,模型工具不會直接寫入任意的 Session ID。
- 發現目標:調用
fleet_list列出當前會話。 - 確認身份:調用
fleet_inspect檢查目標狀態,確認具體的 Session ID。 - 執行操作:基於確認的選擇,調用
fleet_send、fleet_steer或fleet_cancel。 - 觀察結果:如果需要,調用
fleet_wait觀察目標完成的回合。
示例場景:
* 目標會話:
> “When contacted through Fleet, summarize the request, complete it normally, and reply with a short result.”
* 調用會話:
> “Find another live root Session, inspect it, and send it a small task. If fleet_wait is available, wait for the turn that receives the message.”
安全與限制¶
- 運行環境:插件完全運行在現有的 DSH 進程內部,不啓動新的守護進程或監聽額外的網絡端口。
- 資源消耗:
fleet_send和fleet_steer會觸發模型請求和工具調用,因此會消耗模型和工具資源。 - 取消的侷限性:
fleet_cancel只能中斷正在進行的工作,無法回滾模型或工具已經接受的工作。 - 跨進程限制:目前不支持跨進程、跨設備或多 Runtime 的通信。
- 配置模式:
controlMode僅控制模型可見的工具,不替代 DSH 的審批機制、tools/pre-execute或ctx.tools.guard()策略。
總結¶
dsh-cross-session 提供了一套在同一 DSH 進程內管理 Session 間協作的工具集。對於需要在一個 Harness 內進行並行任務管理、上下文複用或流水線協作的開發者,這是一個實用的工具。使用前請確保檢查源碼與許可證,並在合適的 Agent 組合中啓用寫入權限。