前言¶
在 DeepSeek Harness(DSH)上跑 agent 時,往往有多臺機器都在同一辦公室或家裏網段。要把一段文本或協作上下文送到另一臺 DSH,常見做法是手動記 IP、搭中轉或依賴雲端——對「就在隔壁機器」的場景偏重。dsh-lan-peers 是維護者 Myco-Lee 發佈的工作流類插件:在局域網內用 UDP 自動發現對端,經一次性配對建立加密信道,再通過 agent 工具收發消息;實現上只依賴 Node.js 內置的 node:dgram、node:http、node:crypto,不接入外部服務。跨互聯網場景文檔建議使用姊妹插件 dsh-wan-peers,兩者可並存、互不影響。
下面介紹插件定位、能力與安裝用法,事實以 GitHub 倉庫 README 爲準;社區目錄見 SkillHub 條目。
這是什麼¶
dsh-lan-peers(npm 包名同名,當前資料版本 0.3.0)面向「同一廣播域內多臺 DSH」:每裝一份插件的實例會週期性廣播自身、維護對端表,併爲 agent 註冊 5 個工具(列對端、配對、發送、收件箱、主動探測)。默認 secure: true:發現層仍開放(他人可見節點名等元數據),但未配對對端不能發消息,舊版明文 HTTP 端點在安全模式下返回 426。
許可證:MIT。Node 引擎要求 >=18。
核心功能¶
發現與投遞¶
- 發現:默認 UDP 端口
48901,約每 7 秒向各網卡廣播地址及255.255.255.255發送 JSON announce;陌生對端會回 announce 做雙向確認;約 30 秒無消息視爲離線。 - 投遞:本機另起 HTTP 服務監聽
0.0.0.0:48902(因 DSH 自帶 webServer 多僅綁127.0.0.1,局域網不可達)。v2 路徑包括GET /lan/v2/hello、POST /lan/v2/pair/start、POST /lan/v2/message等;secure: false時才啓用 v1 明文路徑。
配對與加密(0.3.0)¶
未配對對端不能走加密消息接口。配對流程要點:
- 一側
lan_pair action=show得到 6 位一次性碼(默認 10 分鐘有效,只存哈希,單次使用,每來源 IP 每分鐘最多 5 次試錯)。 - 另一側
lan_pair action=import peer=… code=…(peer可爲節點名、id 或局域網 IP)。 - 握手使用 X25519 ECDH 協商共享密鑰(密鑰不在線傳輸);之後消息 AES-256-GCM 加密,並帶 HMAC-SHA256 簽名(時間戳 ±60 秒與 nonce 防重放)。
配對信息落在 ~/.dsh/lan-peers/peers.d/<peerId>.json(權限 0600),重啓後仍有效;對端換 IP 時發現會更新地址,密鑰按節點 id 綁定。
Agent 工具¶
| 工具 | 作用 |
|---|---|
lan_peers |
列出局域網對端(在線/離線、名字、IP:端口、是否已配對) |
lan_pair |
show / import / list / forget / reset |
lan_send |
向已配對對端發加密文本 |
lan_inbox |
拉收件箱(limit、mark_read) |
lan_ping |
立即廣播並探測對端(讀 /lan/v2/hello,不入對方收件箱) |
狀態目錄¶
默認 ~/.dsh/lan-peers,可用環境變量 DSH_LAN_PEERS_HOME 覆蓋。其中含 identity.json、peers.json、peers.d/*.json、inbox.jsonl、status.json、boot.log、lan-peers.log 等。
安裝與啓用¶
官方 README 給出的安裝方式如下(以 desktop profile 爲例):
dsh plugin --profile desktop add github:Myco-Lee/dsh-lan-peers
安裝後需重啓一次 DSH。可用下列方式粗查是否就緒(示例爲 PowerShell):
Get-NetTCPConnection -State Listen -LocalPort 48902
Get-Content ~\.dsh\lan-peers\boot.log -Tail 5
Get-Content ~\.dsh\lan-peers\status.json
期望看到 0.0.0.0:48902 在監聽,status.json 中 "secure": true 且 tools 已註冊。
README 還提到本地 link 目錄、npm pack 後 file: 安裝等方式,適合改插件源碼時熱重載;日常從 GitHub 安裝用上式即可。
典型用法¶
配對後發消息¶
- 在機器 B 的會話裏讓 agent 執行(或直接調工具):
lan_pair action=show
示例輸出形態:pairing code 481920 (valid until …)。
- 在機器 A 上導入:
lan_pair action=import peer=LMM code=481920
成功後可用 lan_send peer=B text=... 走加密信道。
- 管理配對:
lan_pair action=list查看已配對;action=forget peer=X刪單個;action=reset清空全部(需重新配對)。
跨機器只讀探測(無需配對)¶
(Invoke-WebRequest http://<B的IP>:48902/lan/v2/hello -UseBasicParsing).Content
返回含 "ok":true 與 "secure":true 等字段時,說明 HTTP 通道可達。若 Windows 防火牆曾有名爲 DeepSeek Harness 的入站阻止規則,可能擋掉 48902;README 給出禁用相關 Block 規則併爲 TCP 48902、UDP 48901 新建 Allow 規則的 PowerShell 示例,排障時可對照執行。
可選配置¶
在 profile 補丁層爲插件 id dsh-lan-peers 寫 config:,例如:
- id: dsh-lan-peers
name: dsh-lan-peers
config:
discoveryPort: 48901
httpPort: 48902
intervalMs: 7000
ttlMs: 30000
name: LMM-1
maxTextChars: 8000
maxInbox: 500
secure: true
pairingCodeLength: 6
pairingCodeTtlMs: 600000
maxPairAttemptsPerMinute: 5
clockSkewMs: 60000
僅在完全可信內網且需與 0.2.x 行爲對齊時,可設 secure: false;0.2.x 與 0.3.0 默認安全模式不互通,升級時需兩臺同時對齊版本或同時對齊 secure 配置。
適用場景與注意¶
適合誰:同一 Wi‑Fi/有線網段、多臺 DSH desktop(或同類 profile)、希望 agent 能「看見鄰居、配對一次、之後互發文本」的團隊或個人;不想爲局域網互通單獨部署消息中間件。
安全邊界(README 明示):
- 發現是開放的:同廣播域內可見節點名、端口、是否展示配對碼等。
- 傳輸中加密與請求認證有配對與簽名機制保護;本機
inbox.jsonl存的是解密後明文;勿把~/.dsh/lan-peers同步到不可信位置;勿將 48902 暴露到公網。 - 插件隨當前 DSH 進程權限運行;安裝前宜自行審閱源碼與 MIT 許可證,確認與內網合規要求一致。
兼容性:資料記載已在 DSH 0.2.2-rc.1(cordis 4.1.0)與 0.2.1-rc.5(cordis 4.0.5)上驗證。
結尾¶
經過上面的步驟,dsh-lan-peers 把局域網內的 DSH 實例收成一張可發現、可配對、可加密互發消息的對端表,並把操作收斂到少量 agent 工具。需要目錄瀏覽與 issue 跟蹤時,可打開 SkillHub 插件頁 與 GitHub:Myco-Lee/dsh-lan-peers。