前言¶
DeepSeek Harness (DSH) 的會話默認是隔離的,子任務在完成後通常會退出。當需要在長期運行的會話之間傳遞指令、共享上下文或協調任務時,這種隔離性會帶來阻礙。dsh-call-session 插件爲 DSH 增加了進程內跨會話通信和工作區共享黑板的能力,使得多會話協作成爲可能。
插件定位¶
- 名稱:dsh-call-session
- 定位:工作流插件
- 維護者:popu2do
- 核心價值:在同一個 DSH 進程中實現跨會話的點對點通信(unicast)與共享狀態存儲(blackboard),支持可視化的會話拓撲觀察。
- 開源協議:MIT
核心能力¶
該插件主要提供以下能力:
- 會話間單播通信:通過
session_call工具,向指定的會話發送指令或移交任務。 - 共享黑板:通過
board_post發佈數據,通過board_list檢索數據,通過board_clear清理數據,避免上下文窗口膨脹。 - 可視化畫布:在 DSH Web UI 的 Canvas 標籤頁中,以拓撲圖形式展示會話狀態、黑板條目及調用軌跡。
- 會話創建:通過
session_create工具在當前工作區創建新的對等會話。
安裝與啓用¶
該插件默認以內置配置運行,無需複雜配置即可啓用。添加到目標 Profile 的命令如下:
dsh plugin --profile web add dsh-call-session
安裝後,可以通過 dsh plugin --profile web list 查看已安裝插件,或使用 remove 命令卸載。
典型用法¶
插件通過工具調用實現功能,以下是三種典型場景:
場景一:任務移交¶
用戶在當前會話中發出指令,要求將任務摘要傳遞給名爲 “audit-session” 的會話。
* 動作:Agent 調用 session_call。
* 結果:如果目標會話正在運行,執行會被引導;如果處於空閒狀態,會話會被喚醒。
場景二:結果發佈¶
用戶要求將審查結論發佈到黑板上,並通知相關會話獲取。
* 動作:Agent 調用 board_post 存儲詳細報告並獲取 postId。
* 結果:其他會話可通過 board_list 按需獲取內容,避免將大量歷史數據塞入當前對話上下文。
場景三:創建會話¶
用戶需要創建一個新的長期運行會話來處理特定角色。
* 動作:Agent 調用 session_create。
* 結果:在當前工作區生成一個新的對等會話,自動繼承模型規格和預設。
配置¶
插件開箱即用,但也支持通過配置文件進行微調。
配置文件位置:~/.dsh/profiles/web/cordis.patch.yml
- id: dsh-call-session
config:
debounceMs: 500
maxCapacity: 500
主要配置項包括:
* debounceMs:原子磁盤寫入防抖延遲,默認 300。
* maxCapacity:黑板最大條目數,默認 200。
* telemetryCapacity:畫布數據緩衝區保留的最大調用軌跡數,默認 200。
* locale:交互語言偏好,支持 'auto', 'zh', 'en',默認 'auto'。
適用場景與注意¶
- 適用場景:適用於多個獨立頂層會話之間需要直接協調、傳遞指令或同步狀態;或需要在不增加上下文窗口負擔的情況下共享大型輸出結果(如報告、代碼庫狀態)。
- 對比內置工具:對於隔離的、一次性任務(如代碼搜索、腳本執行),建議優先使用 DSH 內置的
subagent;僅在需要多會話長期協作時使用本插件。 - 注意:
- Web UI 中的 Canvas 僅提供觀察功能,不具備控制輸入;所有狀態變更均由 Agent 觸發。
- 插件以當前 DSH 進程權限運行,安裝前建議檢查源碼與許可證。
生態背景¶
DeepSeek Harness 的設計理念是“一切皆插件”。社區目錄(如 SkillHub)提供了插件索引,但請注意,該目錄與 DeepSeek 或幻方官方無從屬關係。插件開發者需自行維護代碼質量與安全性。
鏈接¶
- GitHub 倉庫:https://github.com/popu2do/dsh-call-session
- 社區目錄:https://www.skillhub.cn/plugins/popu2do/dsh-call-session