dsh-session-inbox:用文件收件箱給 DSH 會話投遞跨進程消息

前言

在 DeepSeek Harness(DSH)裏跑會話時,常見需求是:另一個 agent、腳本或 CI 在會話外寫好一條「用戶話」,等目標會話空閒時再交給模型。DSH 自身有 session bridge 等同產品能力,Codex、Claude Code 也有各自會話間通道,但跨產品沒有共享註冊表和路由,外部進程無法直接喚醒別人的 DSH 會話。dsh-session-inbox 把交接落在文件系統:任何能寫 ~/.dsh/inbox/ 的進程追加一行 JSON,掛載插件的宿主在目標會話活着且空閒時取走並注入。下面介紹它的定位、安裝與用法。

這是什麼

dsh-session-inbox 是社區插件,維護者爲 SleepNap,在 SkillHub 等目錄中歸類爲工作流。它給 DSH 會話提供文件-backed 收件箱:不依賴 socket、守護進程、握手或 MCP;一條消息對應 JSONL 裏的一行,目標被關閉或重啓後消息仍保留在磁盤上。

爲什麼需要它

各家 agent 在各自產品內可以互發消息,跨產品卻沒有共享的會話註冊表與 agent 循環,因此無法喚醒「屬於別的產品」的會話。文件系統是多進程都能訪問的交集:投遞寫到磁盤,何時執行由會話所有者(DSH 插件)決定。

核心功能

  • 監聽 ~/.dsh/inbox/<sessionId>.jsonl,在目標會話存活且空閒時將新行作爲普通用戶消息注入;會話前綴展示爲 [inbox] 來自 <from> 的消息:。
  • 提供 CLI dsh-peer-inbox:向指定會話投遞、查看各收件箱待處理條數、列出已有收件箱的會話 id。
  • 消費狀態保存在 ~/.dsh/inbox/.state/,游標只前進不後退,避免多宿主重放。
  • 目標正在跑 agent 時不打斷,消息留在文件;目標不存在則保留等待;壞行永久跳過;多條消息每輪串行消費一條。

安裝與啓用

桌面應用:設置 → 插件 → 添加插件 → 輸入包名 dsh-session-inbox → 安裝 → 重啓宿主。

命令行(將 <profile> 換成你的 profile):

dsh plugin --profile <profile> add dsh-session-inbox

國內網絡可在添加插件時切換中國大陸鏡像源(registry.npmmirror.com);鏡像同步可能有延遲,必要時可在 npmmirror 包頁手動同步。

不經過 npm 時,README 還提供:

dsh plugin --profile <profile> add github:SleepNap/dsh-session-inbox
dsh plugin --profile <profile> add ./dsh-session-inbox
dsh plugin --profile <profile> add ./dsh-session-inbox-0.1.0.tgz

裝完重啓宿主。插件掛載時會打印 [dsh-session-inbox] watching …。

兼容性:engines.dsh 下限爲 >=0.1.7-0,未設上界;需 Node.js >=20。許可證爲 MIT。

典型用法

投遞與查看(DSH 是否在運行都可以投遞):

dsh-peer-inbox send --to session-<uuid> --text "..." --from claude-code
dsh-peer-inbox pending
dsh-peer-inbox list

也可直接向對應文件追加一行 JSON(行末必須有換行),to 須與文件名去掉 .jsonl 一致:

{"id":"<uuid>","ts":"<ISO-8601>","from":"<誰>","to":"<sessionId>","text":"<正文>"}

接收方在會話裏會看到帶 [inbox] 前綴的用戶消息。

適用場景與注意

適合:腳本、CI、另一個 DSH 會話、Claude Code、Codex 等需要異步給某個 DSH 會話塞一條用戶 turn,且能接受「空閒才注入」語義的場景。

邊界與安全(README 原文強調):

  • 插件只服務掛載它的 DSH 宿主內的會話,推不進別的產品裏的會話。
  • from 爲自報字段,任何能寫收件箱的進程都可冒充,不能用於授權。
  • 入隊成功不等於模型已讀;需要確認時應約定帶 id 並回顯 id。

插件以當前 DSH 進程權限運行,安裝前建議閱讀 GitHub 倉庫 源碼與 LICENSE。DeepSeek Harness 社區插件目錄(如 SkillHub 插件頁)爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

經過上面的步驟,你可以在不動 socket 與 MCP 的前提下,用磁盤上的 JSONL 給 DSH 會話建立跨進程入口。詳情與 issue 見 GitHub:SleepNap/dsh-session-inbox;目錄介紹見 SkillHub。

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

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

小夜