dsh-programmer-chatroom:DSH 上的去中心化 P2P 羣聊客戶端

前言

在 DeepSeek Harness(DSH)裏跑 Agent 時,Web UI 往往長時間佔着屏幕:等模型輸出、等工具鏈收尾,同事或同組開發者卻不在同一個 IM 裏。自建中心化聊天服務要運維、要賬號體系;直接在 DSH 插件沙箱裏綁端口又受宿主能力限制——常見做法是另開一套服務,和 Harness 會話脫節。

@eave_bounty/dsh-programmer-chatroom 面向上述場景:在 DSH web profile 裏掛一個客戶端插件,讓每臺跑着 DSH 的機器同時充當中繼,在局域網或配置好的公網 rendezvous 上組成 mesh 羣聊。下面介紹它是什麼、能做什麼,以及如何安裝與基本使用。

這是什麼

dsh-programmer-chatroom 是 EaveBounty 維護的 DSH 客戶端類插件(SkillHub 目錄頁標註版本 v1.2.2)。一句話定位:面向 DeepSeek Harness 的去中心化 P2P 羣聊——每臺機器都是 relay,消息在節點本地用內嵌 DFA 做離線審覈,界面走微信/QQ 式氣泡佈局並配合 DeepSeek 品牌配色。

插件解決的核心問題是:在 DSH 插件宿主 API 較窄(文檔說明半區不直接提供 net/dgram/crypto/ws/URL 等)的前提下,仍能讓多機互聊。實現上由插件通過宿主 subprocess 拉起插件外的 Node 伴生進程 dshc-relay.js,用文件 IPC 與 UI 層交換消息,中繼進程負責真實網絡監聽與 mesh 合併。

核心功能

以下能力均來自插件公開文檔(npm 包說明與社區目錄頁),按模塊歸納。

去中心化 mesh 與中繼

DSH 啓動並加載插件後,伴生中繼默認綁定 0.0.0.0,節點之間通過 HTTP 拉取、按全局 msgId 去重合並,不依賴單一中央聊天服務器。文檔明確:聊天記錄只存在於在線機器內存,全部關閉即消失,不做持久化存儲。

離線內容過濾(DFA)

每條消息在發送節點本地經過內嵌 DFA 敏感詞過濾與中文詞庫;文檔還提到正則增強(如疑似 API 密鑰、身份證號、手機號等模式)。違規內容在寫入 mesh 前被丟棄,發送端無額外提示。細節見包內 docs/SECURITY.md(文檔索引中列出)。

Web UI 與成員身份

web profile 側邊欄底部出現「羣聊」入口,浮動面板含聊天、成員、設置等頁:氣泡、頭像顏色、暱稱(硬件指紋派生 deviceId 後可改)、氣泡間距/字距/字號等可調並記憶。

雙網絡模式

  • 局域網:UDP 信標自動發現同網段節點,也可在設置裏手動添加 http://<對方 IP>:<對方端口>。
  • 互聯網:可切換至互聯網模式,配合自部署的 Cloudflare Workers rendezvous(見 docs/RENDEZVOUS.md)與 cpolar 等內網穿透,上報公網地址後跨 NAT 互連。關閉羣聊時文檔說明隧道與上報會停止,節點目錄約 5 分鐘過期。

許可證

公開文檔標註 MIT © EaveBounty。

安裝與啓用

插件爲標準 npm 包 @eave_bounty/dsh-programmer-chatroom,推薦安裝到 DSH 的 web profile。安裝後需重啓 DSH,插件纔會加載。

推薦命令如下(與文檔「從 npm 安裝」一節一致):

dsh plugin --profile web add @eave_bounty/dsh-programmer-chatroom

也可全局安裝 npm 包(文檔給出的備選方式):

npm install -g @eave_bounty/dsh-programmer-chatroom

安裝完成後,可用下面命令確認配置層是否生效(文檔示例使用 default profile 的 dump;若你僅改 web profile,請對照自己的 profile 名稱):

dsh --profile default --dump-config

社區安裝指南還建議結合 dsh plugin --profile web why 檢查依賴,並通過 dsh web 啓動 Web UI 驗證側邊欄是否出現羣聊入口。

安全提示:插件會以當前 dsh 進程權限運行,並會拉起伴生 Node 中繼監聽網絡。安裝前請閱讀包內源碼、LICENSE 與 docs/SECURITY.md,確認可接受本地過濾策略與 subprocess 行爲;勿在未審計的情況下在生產敏感環境直接啓用公網 rendezvous。

典型用法

經過上面的安裝與重啓,可按文檔「快速開始」順序操作:

  1. 在已加載插件的 DSH web 會話中,打開側邊欄底部的羣聊面板。
  2. 局域網(默認):同網段多臺 DSH 通常會被 UDP 信標發現並直連;必要時在「設置 → 網絡模式」手動添加對端 http://<IP>:<端口>。
  3. 互聯網:在設置中切換到互聯網模式,填寫你的 Cloudflare Workers 站點地址;按文檔配置 cpolar(如 npm i -g cpolar 與 cpolar authtoken <token>),由插件上報公網地址並拉取其他在線節點。
  4. 調試 mesh 時,文檔給出獨立運行中繼與測試 peer 的示例(不經過 DSH UI):
node dshc-relay.js --port 39321 --bind 0.0.0.0 --name nodeA
node dshc-relay-test-peer.js Alice "hello everyone" "sk-should-be-blocked1234567890"

第二條命令中的敏感樣例字符串用於驗證 DFA 攔截邏輯(文檔示例原文保留)。

適用場景與注意

適合誰:在同一局域網或已約定 rendezvous 的多名 DSH 用戶,希望在等 Agent 時輕量互聊,且能接受無歷史記錄、關閉即清空的語義。

需要注意:

  • 依賴 web profile 與 Web UI;headless 場景需自行評估是否滿足需求。
  • 互聯網模式涉及自建 Workers、內網穿透與公網暴露面,部署前應讀完 docs/RENDEZVOUS.md 並限制站點訪問。
  • DSH 生態理念是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文安裝命令以插件公開文檔爲準,而非目錄頁短鏈拼接。

結尾

dsh-programmer-chatroom 把 P2P 羣聊收進 DSH 客戶端層:伴生中繼繞開宿主網絡限制,本地 DFA 在出網前過濾,UI 貼近常見 IM 習慣。若要在 Harness 裏試裝,可從社區目錄查看條目信息,並對照 npm 包說明完成 profile 安裝與重啓。

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/EaveBounty/dsh-programmer-chatroom
  • GitHub(線索頁,訪問時請自行確認倉庫是否可用):https://github.com/EaveBounty/dsh-programmer-chatroom
  • 插件說明鏡像(含完整 README 與安裝節):https://dshmp.com/en/plugins/eave_bounty-dsh-programmer-chatroom
羽毛球分组比赛记分
小程序二维码

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

小夜