在 DeepSeek Harness (DSH) 中,會話通常運行在隔離的上下文中。如果需要讓一個智能體去觸發另一個智能體執行任務,傳統的自然語言提示往往不夠精確。dsh-peer-bus 插件提供了一個跨會話的消息總線,讓獨立的會話能夠尋址並喚醒彼此。
插件概況¶
- 名稱:dsh-peer-bus
- 維護者:ybh1291747665
- 類別:工作流
- 許可證:MIT
- 核心價值:在 DSH 生態中建立跨會話的通信機制,支持會話間的喚醒、詢問與回覆。
安裝與啓用¶
安裝插件需要使用 DSH 的插件管理命令。
dsh plugin --profile web add dsh-peer-bus
安裝完成後,需要重啓 DSH 才能生效。如果安裝過程中 pnpm 提示缺少依賴,可以忽略,DSH 的運行時環境會提供這些依賴。
典型用法¶
要使用跨會話通信,需要先獲取會話的標識符,建立權限,然後通過自然語言指令觸發調用。
- 獲取會話 ID
在每一個需要參與通信的會話中運行以下命令,複製返回的 ID:
/bus id
-
建立權限
權限默認是拒絕的。你需要顯式授權。授權必須在接收方的會話中執行。假設會話 A 想要給會話 B 發消息,你需要在會話 B 中運行:
/bus allow <A's id>
-
發起調用
在會話 A 中,直接用自然語言向模型下達指令。模型會自動選擇合適的工具(如bus_ask或bus_send)。- 同步詢問:讓 B 回答問題並在當前回合返回結果。
Ask
<B's id>what the release version is. - 單向發送:只喚醒 B,不等待回覆。
Send
<B's id>a message saying ….
你不需要在提示中輸入工具名稱,模型會根據上下文自動選擇。
- 同步詢問:讓 B 回答問題並在當前回合返回結果。
核心功能¶
插件爲模型提供了以下工具:
bus_send:發送一條消息,目標會話會被喚醒並運行一回合。bus_ask:向目標提問,答案會在當前回合返回。bus_reply:顯式地回答一個問題。bus_wait:接收並處理一條傳入的消息,而不是讓它直接運行一回合。bus_roster:列出當前會話能夠訪問的其他會話列表。bus_status:查詢之前發送消息的狀態。/bus:用於授予或撤銷權限(此命令僅限用戶使用,模型無法執行)。
注意事項¶
- 權限控制:在沒有任何授權的情況下,模型無法向其他會話發送消息。必須通過
/bus allow或配置文件授予訪問權限。 - 安全風險:傳入的消息會被當作用戶消息處理,且模型可能會將其視爲指令。因此,開放的消息總線可能構成提示注入的路徑。建議在不需要時及時撤銷權限。
- 跨進程通信:默認情況下,跨進程通信是關閉的。如果需要讓不同 DSH 進程中的會話互相通信,需要在兩個進程的配置中都設置
crossProcess: true。 - 成本與性能:每一條消息都會喚醒目標會話執行一次完整的回合,這意味着每次調用都會消耗一輪上下文和計算資源。