dsh-lan-room:局域網內的 DeepSeek Harness 聯機房間

前言

在本地用 DeepSeek Harness 跑 agent 時,常見問題是如何讓同網段同事各自的 Harness 互相協作,而不是反覆截圖、複製粘貼上下文。遠程桌面或共享文檔能傳話,但難以讓對方的 agent 在自己的工程環境裏只讀查代碼、搜資料並給出答案。

下面介紹社區插件 dsh-lan-room(維護者 zzw980709):在同一局域網內,一臺機器開房、其他人用一次性邀請碼加入,雙方的 agent 可以互相提問、在本地會話裏回答,且遠端不能寫文件或執行命令。

這是什麼

dsh-lan-room 是 DeepSeek Harness 的工作流類插件,在 SkillHub 目錄中的定位爲局域網聯機房間。它解決的是「多機同網、各跑各的 Harness,但 agent 能定向問答」的需求。

  • 主機(Host):開房的機器,插件在局域網監聽房間服務,默認地址爲 0.0.0.0:8787。
  • 訪客(Guest):持邀請碼加入,主動連接主機,本機不監聽房間端口。
  • 交互邊界:遠端只能提問;本地 agent 使用受限制的只讀工具作答,不允許遠端寫文件或跑命令。

當前包版本爲 0.1.0,許可證 MIT,要求 DeepSeek Harness 0.2.2-rc.1 或更新(engines.dsh 會在不兼容時攔截安裝)。GitHub 倉庫:https://github.com/zzw980709/dsh-lan-room ;社區目錄頁:https://www.skillhub.cn/plugins/zzw980709/dsh-lan-room 。

核心功能

房間與成員

主機通過面板或 agent 工具創建房間,可指定端口(默認 8787,衝突時自動順延)。加入後雙方成員列表與消息流同步。房間僅在 Harness 進程運行期間存在,退出應用即解散,無離線消息。

邀請碼

每張邀請碼 8 位、一次性使用,24 小時過期,可單獨撤銷;主機可再生成 1–5 張新碼。加入請求在網絡中不傳輸邀請碼明文,僅攜帶 inviteId 與證明。

Agent 問答

提問方可在面板選擇目標成員與「提問」模式,或對 agent 說「問一下某某:……」,由模型調用 lan_ask。被問方在本機專用會話(標題形如 聯機 · <對方名字>)裏跑一輪 agent,將答案回傳;本地用戶可見全過程。默認等待 300 秒,最長 600 秒;超時返回 timeout,但對方仍可能稍後補發「遲到的回答」。

安全與工具集

握手後幀級使用 per-member 的 AES-256-GCM 加密。房間 agent 僅可使用 read、read_image、glob、grep、lsp、web_search、web_fetch;遠端文本視爲不可信輸入,系統提示中硬禁 .env、密鑰、SSH 私鑰等。插件不承諾抗同網段主動 MITM,也不保證跨網段或公網可用。

安裝與啓用

安裝前請確認 Harness 版本滿足 >=0.2.2-rc.1。插件在 DSH 進程權限下運行,安裝前宜瀏覽源碼與許可證。

官方 README 提供三種安裝方式(desktop profile):

# 1. 從 npm(推薦,發佈後可用)
dsh plugin --profile desktop add dsh-lan-room

# 2. 直接從 GitHub 安裝(無需 npm 發佈)
dsh plugin --profile desktop add git+https://github.com/zzw980709/dsh-lan-room.git

# 3. 本地目錄(開發調試)
dsh plugin --profile desktop add /path/to/dsh-lan-room

也可在 Harness「插件」頁面安裝本地 bundle(選擇插件目錄)。裝完後需要重啓 Harness:Host 半實現會被進程內模塊緩存,重啓後纔會生效;之後僅改面板可刷新頁面。發佈與市場相關說明見倉庫內 docs/PUBLISHING.md。

典型用法

開房

  1. 側邊欄底部「聯機」→「創建房間」,填寫房間名與端口(默認 8787)。
  2. 進入房間後點「邀請成員」,獲得 8 位一次性邀請碼與房間地址(例如 192.168.1.23:8787)。
  3. 將邀請碼發給同事;每張碼僅用一次。

也可直接對 agent 說:「幫我開一個局域網房間」。

加入

  1. 「聯機」→「加入房間」,填寫邀請碼、房間地址、本機顯示名。
  2. 加入成功後,主機成員列表會出現本機,雙方消息流同步。

提問

  • 面板:輸入框選擇目標成員(如「發給 zzw-air」)→ 模式「提問」→ 回車;處理中顯示狀態,完成後展示答案、耗時與步數。
  • agent:例如「問一下 zzw-air:這個報錯怎麼修?」,由模型調用 lan_ask。

Agent 工具一覽

工具 作用
lan_room_create 開房,返回房間號、地址、首張邀請碼
lan_room_invite 再生成邀請碼(1–5 張)
lan_room_join 用邀請碼加入房間
lan_room_status 房間、成員、在線狀態、邀請碼、最近消息與提問
lan_ask 向某個成員提問並等待回答(默認 300s,最長 600s)
lan_send 發一條普通消息
lan_room_leave 離開房間 / 關閉自己主持的房間

面板控制面走 Harness loopback 的 /lan-room/*,不佔房間端口。協議上 Host 使用 node:http 監聽,提供 POST /join、GET /events(SSE)、POST /rpc;Guest 用 fetch 與 SSE 解析,並支持指數退避重連。

適用場景與注意

適合:同一辦公網或家庭局域網內,多名開發者各自在本機 Harness 上跑 agent,需要讓對方 agent 在自己的倉庫環境裏只讀排查問題、查文檔,又不想開放 shell 或寫權限。

務必注意:

  • 首次監聽時 macOS/Windows 可能彈出「允許傳入連接」,拒絕會導致局域網不可達。
  • 同網段 AP 隔離或公司網絡策略可能導致互不可達,面板會提示換網或手填地址。
  • 面板 v1 不渲染二維碼,需複製邀請碼與地址;房間會話會出現在側邊欄(聯機 · xxx),便於審計。
  • 審計記錄目錄爲 ~/.dsh/lan-room/(README 標註部分能力在後續版本完善)。

DeepSeek Harness 生態遵循「一切皆插件」;SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-lan-room 把「開房—邀請—定向提問—本地只讀作答」收斂進 Harness 插件與工作流工具,適合同網多機協作調試 agent,而不犧牲本機寫權限與命令執行邊界。

  • 目錄頁:https://www.skillhub.cn/plugins/zzw980709/dsh-lan-room
  • 源碼與文檔:https://github.com/zzw980709/dsh-lan-room
羽毛球分组比赛记分
小程序二维码

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

小夜