dsh-tool-session-message:DSH 跨會話消息投遞

前言

在 DeepSeek Harness(DSH)裏開多個會話窗口時,各窗口彼此獨立:模型只能看到當前會話的上下文,無法直接詢問「另一個窗口在做什麼」,也難以把新事實交給對方繼續處理。常見做法是人工複製粘貼 session id 和消息,或在外部腳本里再編排一遍,既打斷工作流,也容易漏掉回覆路徑。

下面介紹社區插件 dsh-tool-session-message(維護者 BigBugy,分類:工作流)。它在同一 DSH 宿主進程內註冊工具 session_send,把一條 user 消息投遞到指定 session id 的目標會話,並在消息信封裏附帶發送方 Session ID,便於多窗口互相認身份並按同樣方式回傳。

這是什麼

dsh-tool-session-message 面向 DeepSeek Harness 的跨會話消息能力:通過 session_send(session_id, message, mode?) 向同一 DSH host 上的任意會話發送用戶消息,讓對方開始新一輪對話,或在運行中的輪次裏插話(steer 模式)。每條投遞消息會自動加上身份頭,說明來源 session 以及如何用 session_send 回覆。

插件基於 Cordis 注入 sessionController 服務,不發佈到 npm,需通過 github: 規格或本地 link 安裝。當前 package 版本爲 0.2.0,許可證 MIT;要求 DSH 0.2.1-rc.5 或兼容版本(依賴 sessionController)。

核心功能

session_send 工具

  • 參數:session_id(須保留 session- 前綴)、message、可選 mode。
  • mode:默認 "followup",作爲目標會話的下一條 user 輪次排隊;"steer" 則注入到正在執行的輪次中。
  • 返回值:宿主確認的結構化 JSON,字段包括 ok、from、to、mode、requestId、result。

身份信封

接收方看到的文本會自動前綴如下信息(便於知道誰發的、如何回傳):

【跨會話消息 · session_send】
from: session-xxxxxxxx-...
reply: session_send(session_id="session-xxxxxxxx-...", message="...")

運行邊界

  • 目標會話必須與發送方處於同一 DSH 宿主進程(例如桌面應用的多窗口場景滿足此條件)。
  • 工具僅調用宿主的 sessionController.prompt,無網絡、無寫文件、無 shell;消息會以普通 user 消息形式寫入目標會話 transcript。

安裝與啓用

桌面應用(推薦)

在 DSH 中打開 Settings → Plugins → Add plugin,粘貼:

github:BigBugy/dsh-tool-session-message

插件管理器支持 npm 包名、GitHub 倉庫與本地目錄;本包未發佈到 npm,請使用上述 github: 規格。

CLI 部署

僅 CLI 部署時使用:

dsh plugin --profile <profile> add github:BigBugy/dsh-tool-session-message

桌面版不自帶 dsh 命令,桌面用戶應通過 Settings → Plugins 安裝。

本地開發(手動)

  1. 將包放到 <profile>/node_modules/dsh-tool-session-message(<profile> 例如 ~/.dsh/profiles/desktop)。
  2. 在 profile 的 package.json 中聲明依賴與 bundle,例如:
{
  "dependencies": { "dsh-tool-session-message": "link:<path-to-this-package>" },
  "dsh": { "profile": { "bundles": [ "...", "dsh-tool-session-message" ] } }
}
  1. 包自帶 cordis.patch.yml 與 dsh.bundle.patch,工具在進程級注入。
  2. 重啓 DSH(宿主插件在啓動時加載;代碼變更後需重啓)。

典型用法

讓模型調用工具,或直接寫出調用形式。README 示例:

session_send(session_id="session-0e8596c3-...", message="What are you working on? Reply briefly.")

接收方根據信封中的 from: 行,用 session_send 回傳:

session_send(session_id="<the id in from:>", message="...")

實現上每次調用需生成獨立的 requestId(如 crypto.randomUUID()),否則宿主會拒絕 prompt(prompt rejected)。

適用場景與注意

適合:在同一 DSH 桌面實例裏並行多個會話,需要模型或工作流在窗口之間傳遞簡短指令、狀態詢問或事實補充,且希望回覆路徑明確(信封 + 對稱的 session_send)。

權限與安全:該工具允許模型向其他會話注入 user 提示,可能觸發目標會話的新輪次。應僅在您可控的 profile 中啓用,安裝前建議閱讀源碼與 MIT 許可證。社區目錄頁與 GitHub 倉庫由維護者與社區維護,與 DeepSeek / 幻方無官方從屬關係。

兼容性:README 標明在 DSH 0.2.1-rc.5 上測試;更早版本是否具備 sessionController 未說明。

鏈接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜