DeepSeek Harness (DSH) 允許在同一個進程中創建多個智能體會話。在多進程場景下,這些會話之間通常是隔離的。dsh-intercom 插件解決了這個問題,它爲在同一臺機器上運行的不同 DSH 進程提供了會話發現、1:1 消息傳遞以及請求/回覆的能力。
插件概況¶
dsh-intercom 是一個用於 DeepSeek Harness (DSH) 的插件。它主要功能是實現同一臺機器上獨立 DSH 會話間的通信與協調。該插件由 Sqhao-O 維護,採用 MIT 許可證,並從 pi-intercom 移植而來。
核心功能¶
該插件提供了一套工具,讓不同會話能夠相互發現和交互:
- 跨會話消息傳遞:支持發送(Fire-and-forget)、詢問(阻塞請求)和回覆。
- 會話發現:列出所有在線會話或特定目錄下的會話。
- 會話別名:通過
name動作給會話設置別名,便於其他會話通過名稱引用。 - 入站消息中繼:接收來自其他會話的消息,並根據狀態決定是否觸發新輪次。
- 協調技能集成:安裝後會自動註冊
dsh-intercom技能到 DSH 技能庫。 - Web UI 面板:在
web配置文件中,Settings 面板裏提供了一個 Intercom 頁面,用於查看在線列表和發送消息。
安裝與啓用¶
使用官方命令將插件安裝到指定 profile(例如 web):
dsh plugin --profile web add github:Sqhao-O/dsh-intercom
安裝完成後,會自動在 DSH 進程中註冊對應的工具和技能。
典型用法¶
每個會話都擁有 intercom 工具,通過調用該工具並傳入不同的 action 參數來執行操作。
基礎操作¶
// 命名當前會話,方便其他會話識別
intercom({ action: 'name', alias: 'worker' })
// 在另一個會話中查看所有在線會話
intercom({ action: 'list' })
// 向名爲 'worker' 的會話發送消息
intercom({ action: 'send', to: 'worker', message: 'hello from planner' })
請求與回覆¶
// 向 'planner' 發送詢問,並阻塞直到收到回覆
intercom({ action: 'ask', to: 'planner', message: 'what is the status?' })
// 回覆剛纔的詢問
intercom({ action: 'reply', message: 'all good' })
狀態檢查¶
// 檢查插件/傳輸狀態
intercom({ action: 'status' })
配置與運行機制¶
- 本地代理:插件會在
$DSH_HOME/intercom目錄下運行一個本地代理進程(使用 Unix 套接字或 Windows 命名管道)。所有會話通過該代理進行通信。 - 配置文件:可選的配置文件位於
$DSH_HOME/intercom/config。如果該文件存在,其中的配置項會被讀取(例如控制入站消息是否觸發新輪次、自定義狀態後綴等)。 - Web 面板權限:Web UI 面板信任本地機器,任何本地進程都可以讀取名單並作爲該進程下的會話發送消息。
適用場景¶
- 需要在同一臺機器上運行多個 DSH 進程並協調它們。
- 需要一個簡單的機制讓不同會話之間傳遞上下文或控制指令。
注意事項¶
- 插件以當前 DSH 進程的權限運行,涉及本地通信。
- 使用前建議檢查源代碼和許可證(MIT)。
- 不確定的事實(如 Star 數)未在本文中列出。