前言¶
用 DeepSeek Harness(DSH)做智能體開發時,多人往往各自開着本地 DSH:討論、任務分工、改代碼、審變更,只能靠即時通訊或 issue 來回貼,很難和「當前工作區里正在跑的那一輪 Agent」對齊。若把整臺 Host 的 DSH UI 或文件系統暴露給協作者,邊界也不好控。
dsh-collab(npm 包名 @kanchengw/dsh-collab)由維護者 kanchengw 發佈,分類爲工作流,在 DSH 裏增加僅限受邀用戶的協作房間:同一安裝包在運行時區分 Host(房間工作區、邀請、Gateway、唯一權威的 Host Agent 會話)與 Participant(從本機 DSH 加入,共享工作區,並可做不移交房間權限的私有 Side Work)。它不暴露 DSH UI 監聽端口,也不讓 Participant 直接訪問 Host Agent 或 Host 文件系統。項目狀態爲 pre-1.0;當前 MVP 每個 DSH 實例只支持一個活躍房間。依賴 DSH 0.2.0-rc.2,非 0.2.x 線版本不在此快照的兼容目標內。
這是什麼¶
一句話:dsh-collab 是面向 DSH 的多用戶協作房間插件,討論、任務、變更集與審閱都落在房間工作區與 DSH 原生左右側欄裏。
- 目錄頁:SkillHub 插件頁
- 源碼與說明:GitHub kanchengw/dsh-collab(MIT,當前 package 版本
0.1.0)
DSH 生態強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。安裝插件前,插件以當前 DSH 進程權限運行,宜自行查看源碼與許可證。
核心功能¶
README 中已寫明的能力如下(房間界面按 Activity / Tasks / Changes / Reviews 組織,嵌入 DSH 左右 Sidebar):
- 從 Git 工作區創建僅限邀請的協作房間。
- 在房間內共享討論與工作進展。
- 創建任務、關聯 ChangeSet、指定審閱者並批准變更。
- 雙向發佈並同步帶版本的工作區快照。
- 通過 Host 控制的 apply 流程審閱並應用變更。
- Participant 可在本機 DSH Agent 上運行私有 Side Work,不轉移房間權威。
- 經可信私有網絡、
EasyTier虛擬網絡,或用戶自備的wss://端點連接。
同一包裝在各機器上,角色由本地可信會話與 token 證據在運行時選定,而非單獨的 Participant 構建或預分配端口。Collab Gateway 是獨立的 HTTP/WebSocket 監聽,僅服務 /collab,負責邀請與房間 token 鑑權、權限、事件賬本與審批;不代理 DSH UI 或通用 DSH API。反向代理或隧道由用戶自備,僅在 Host 選擇公網 wss:// 時需要。
Host 從 Git 目錄創建 Room Workspace;初始快照包含已跟蹤與未被 ignore 的未跟蹤文件,合計上限 1 GiB;忽略項與 .git 元數據不包含在內。Participant 也可發佈工作區版本;房間保存版本歷史、ChangeSet 與審閱狀態。勿把憑據放在被 Git 跟蹤、會進入協作快照的文件裏。
環境要求¶
| 組件 | 要求 |
|---|---|
| DSH | 0.2.0-rc.2 |
| Node.js | >=22(CI 使用 Node.js 24) |
| pnpm | 11.19.0 |
| Host 工作區 | Git 倉庫 |
| EasyTier 模式 | Windows 下首次使用需準備 no-TUN 製品 |
安裝與啓用¶
插件面向 DSH web profile。安裝後需重啓或重載 DSH;插件使用 DSH 原生目錄選擇器,不另提供 Electron 或瀏覽器目錄選擇器。
從 npm 安裝¶
dsh plugin --profile web add @kanchengw/dsh-collab
若 DSH 從源碼檢出運行,使用該檢出目錄下的 CLI:
pnpm dsh plugin --profile web add @kanchengw/dsh-collab
從源碼構建後本地加入¶
git clone https://github.com/kanchengw/dsh-collab.git
cd dsh-collab
corepack enable
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile web add (Get-Location).Path
典型用法¶
Host:建房間並邀請¶
- 打開原生 DSH 會話並選擇一個 Git 工作區。
- 在左側欄打開 Collab Rooms,創建房間工作區。
- 在 Collab 設置中選擇
Private network、EasyTier virtual network或Custom WSS endpoint。 - 分享房間並創建邀請。
- 經可信渠道把邀請發給協作者。
同一邀請在 一小時內 可被多名 Participant 接受,應視作房間密碼妥善保管。
Participant:憑邀請加入¶
- 安裝相同版本的
dsh-collab。 - 打開 Collab Rooms,粘貼邀請。
- 填寫顯示名稱並加入。
- 等待初始工作區快照下載完成(加入界面會顯示文件數與總大小)。
- 打開房間綁定的 DSH 工作區,在共享文件上協作。
已有活躍房間時不能同時再加入另一房間;需先停止或斷開當前房間。Participant 重啓後不會自動重連,需要時使用 Connect。
連接模式怎麼選¶
| 模式 | 適用情況 | 說明 |
|---|---|---|
Private network |
Host 與 Participant 在同一可信 LAN、VPN 或 overlay | 經 ws:// 通告可達私有 IP |
EasyTier virtual network |
跨網可達且 Host 無公網地址 | 可選虛擬網;社區共享節點爲 best effort |
Custom WSS endpoint |
Host 自備 TLS 反向代理或隧道 | 插件不創建或運維該端點 |
明文 ws:// 僅接受迴環、RFC1918/鏈路本地、100.64.0.0/10、ULA 及 IPv6 鏈路本地;公網 IP 與主機名需用戶自備 wss://。安裝插件、啓動 DSH 或列出已保存房間本身不會下載 EasyTier、不會啓動 Gateway;僅在有明確的分享或加入動作時纔會啓動 EasyTier。
持久化、安全與當前限制¶
Host 房間狀態默認位於 DSH_HOME/collab/v1/state.json;其中不保存邀請密鑰、短效房間 token 與 Participant 簡歷憑據原文,而是保存 durable resume 憑據的 SHA-256 摘要及房間/成員綁定。畸形或不支持的 Host 狀態文件會阻止 Gateway 啓動,而不會靜默覆蓋房間歷史。暫停或移除成員會撤銷當前房間 token 與 durable resume 憑據。
安全上:勿暴露 DSH UI 監聽;邀請與房間 token 爲 bearer 憑據,勿貼到公開 issue、截圖或日誌;Participant 無法訪問共享 Room Workspace 之外的 Host 文件系統。漏洞請按倉庫 SECURITY.md 私下報告。
當前限制(README 摘錄):每個 DSH 實例一個活躍協作房間;每房間一個權威 Host Agent 隊列;Host 工作區必須爲 Git;工作區快照合計上限 1 GiB;EasyTier 每實例一個活躍 EasyTier 房間,社區共享節點可用性不保證;無內置中繼、CA、公網隧道或路由器協同。
結尾¶
若你需要在各自本地 DSH 上協同同一 Git 工作區、走任務與 ChangeSet 審閱,又不願把 Host 整機的 Agent 與 UI 開放出去,dsh-collab 把協作收攏在獨立 Gateway 與房間工作區裏,是 DSH 0.2.0-rc.2 線下可安裝的 workflow 類插件。