前言¶
在 DeepSeek Harness(DSH)裏做智能體開發,常見情況是:代碼和命令跑在另一臺機器或另一套環境裏,遠端通過 DevSpace 一類執行器把目錄暴露成 MCP 工具(read、apply_patch、exec_command 等),而本地 DSH 仍需要獨立的工作區、會話 cwd 和可管理的 MCP 端點。若每個遠端節點單獨配、遠端目錄與本地 Workspace 脫節,節點一多就難以維護,文件往返也容易和「項目本體在遠端、本地只是鏡像」這一模型混淆。
下面介紹社區插件 dsh-devspace(維護者 lifecoder1988),它在 DSH 內集中管理多個 DevSpace 節點,並把選定的遠端目錄「領養」爲本地鏡像工作區,配合雙向文件傳輸工具,讓會話掛在真實 Workspace 下,同時遠端操作仍走對應節點的 MCP 工具。
這是什麼¶
dsh-devspace 是 DSH 的工作流類插件:一個插件內統一管理 N 個 DevSpace 節點(每個節點對應一個 MCP 端點),支持將遠端目錄映射爲本地鏡像 Workspace,並通過 devspace_pull / devspace_push 在遠端與本地鏡像之間傳文件。插件包名爲 @local/dsh-devspace,許可證 MIT,當前倉庫版本 1.0.0。
遠端仍然是遠端:遠端代碼與命令只通過該節點的 mcp__<節點名>__<工具> 調用,本地鏡像目錄不會自動同步。
核心功能¶
節點管理¶
一個節點等於一個 MCP 端點。節點配置持久化在 $DSH_HOME/devspace-nodes.json(可通過配置項 nodesFile 覆蓋)。啓用節點時通過 @deepseek-ai/dsh-mcp-client 熱掛載,不需要重啓 DSH;工具名形如 mcp__<節點名>__<工具>。節點的增刪改、啓停、重連可通過設置頁或模型工具 devspace_admin 完成。
遠端目錄 → 本地鏡像工作區¶
在工作區選擇器中使用「Add Remote…」(需打上游 client 補丁,見下文),瀏覽遠端目錄樹並選定目錄後,插件會:
- 在遠端對該目錄調用
open_workspace,取得遠端workspace_id; - 在本地創建
<mirrorRoot>/<節點名>/<路徑>(默認~/DevSpace/...),並寫入AGENTS.md,說明項目本體在遠端、本地目錄用途; - 將該本地目錄註冊爲 DSH 真實 Workspace,側欄
Workspaces可見,會話歸屬與cwd均指向鏡像目錄。
鏡像關係記錄在 $DSH_HOME/devspace-mirrors.json(默認路徑,可用 mirrorsFile 配置)。
文件傳輸¶
- devspace_pull:遠端文件 → 本地鏡像(可指定落盤路徑,默認鏡像內同名相對路徑);
- devspace_push:本地 → 遠端(可指定遠端落點,默認按鏡像內相對路徑)。
傳輸爲二進制安全、分塊進行,雙向帶完整性校驗。受遠端 Express 請求體約 100 KB、Windows 命令行約 32 KB 等限制,默認下載塊 48 KiB(pullChunkBytes)、上傳塊 16 KiB(pushChunkBytes);寫後文件長度與已發送字節不一致時會整份重傳(最多 3 次)。
模型工具與技能¶
| 工具 | 說明 |
|---|---|
devspace_admin |
節點:status / add / update / remove / enable / disable / retry;鏡像:mirrors / open / unmirror / mirrorRoot |
devspace_target |
按本會話 cwd 返回遠端目標(節點、遠端路徑、workspace_id、本地鏡像目錄);無目標時 null |
devspace_pull |
遠端 → 本地 |
devspace_push |
本地 → 遠端 |
插件還會發布全局技能 devspace-nodes,從當前節點列表渲染,提示模型遠端與本地鏡像的區別及調用順序。
界面與作用域¶
插件向多個 Cordis 槽位注入 UI:設置頁分區 devspace、工作區菜單「Add Remote…」、遠端目錄對話框,以及鏡像工作區的側欄徽章與會話 chip 等。MCP / 技能 / 項目密鑰面板中的「遠端節點(DevSpace)」分區會按當前工作區收斂:當前爲鏡像工作區時只顯示對應節點;非鏡像時整塊不顯示,Host 不發起無關遠端命令。
安裝與啓用¶
推薦在對應 profile 目錄下用 pnpm 安裝(會配合 cordis.patch.yml 寫入 composition):
cd "$DSH_HOME/profiles/<profile>"
pnpm add github:lifecoder1988/dsh-devspace
也可手工在 profile 的 cordis.patch.yml 中加入:
- insert:
- id: devspace
name: '@local/dsh-devspace'
安裝完成後,若改動涉及 host 半邊,需重啓 DSH;僅 client 半邊時刷新頁面即可。
插件以當前 DSH 進程權限運行,安裝前請自行查閱 GitHub 倉庫 源碼與 MIT 許可證。
上游 client 補丁(可選)¶
完整 UI(工作區菜單「Add Remote…」、列表節點圖標、Hero chip 節點名)依賴兩份上游補丁,需在 DSH 檢出目錄打補丁並重建 client 包:
git apply /path/to/dsh-devspace/patches/upstream-workspace-action-slot.patch
git apply /path/to/dsh-devspace/patches/upstream-workspace-remote-badge.patch
pnpm --filter @deepseek-ai/dsh-client-ui-workspace run bundle
pnpm --filter @deepseek-ai/dsh-client-ui-conversation run bundle
pnpm run build:web
未打補丁時,節點管理、HTTP 路由與模型工具仍可用;只是工作區菜單無「Add Remote…」,列表與 chip 無遠端標記,可通過設置頁節點管理與模型工具操作。
典型用法¶
1、安裝插件並重啓(或刷新)¶
按上一節完成 profile 安裝與 composition 接入。
2、添加並啓用 DevSpace 節點¶
在設置頁「DevSpace」分區或通過 devspace_admin 的 add / enable 配置 MCP 端點 URL 與 headers(支持 ${VAR} 引用,避免 token 明文落盤)。啓用後工具以 mcp__<節點名>__* 出現在模型側。
3、領養遠端目錄爲本地 Workspace¶
在已打補丁的客戶端:工作區選擇器 → 「Add Remote…」→ 瀏覽遠端目錄 → 確認。插件執行 /devspace/open 流程,本地出現鏡像目錄並註冊爲 Workspace。
無 UI 補丁時,可用 devspace_admin 的 open 等等價能力(以 README 與工具 schema 爲準)。
4、在鏡像工作區下開會話並傳文件¶
會話 cwd 落在鏡像目錄。用 devspace_target 確認當前會話綁定的遠端節點與路徑;需要同步文件時調用 devspace_pull 或 devspace_push。遠端編輯與執行仍通過該節點的 MCP 工具,而非假設本地目錄已與遠端實時一致。
5、自檢(可選)¶
倉庫提供離線自檢腳本:
node test/local-check.mjs # host:節點存儲、掛載、路由
node test/mirror-check.mjs # 鏡像流程與雙向傳輸(內置模擬遠端,20 項斷言)
配置項¶
可在插件 config 中覆蓋以下字段(括號內爲默認行爲):
config:
dshHome: /path/to/.dsh # 默認 $DSH_HOME 或 ~/.dsh
nodesFile: …/devspace-nodes.json
mirrorsFile: …/devspace-mirrors.json
mirrorRoot: ~/DevSpace
pullChunkBytes: 49152
pushChunkBytes: 16384
也可用 transferChunkBytes 或分方向鍵覆蓋塊大小。
Host 側行爲變更(如 /remote 按工作區提前返回、標題遷移規則)需重啓 DSH;client 側標記輪詢等爲刷新即可。
適用場景與注意¶
適合:已在或多臺機器上使用 DevSpace MCP,希望在 DSH 內統一掛載節點;需要把遠端項目目錄登記爲正式 Workspace,並在本地鏡像目錄存放下載數據、待上傳產物或本地腳本;需要在遠端與本地鏡像之間可控、可校驗地搬文件。
注意:
- 鏡像目錄不是自動同步盤;遠端 truth 仍通過 MCP 操作。
- 完整「Add Remote…」與徽章 UI 依賴自行打上游補丁並重建 web client。
- 插件與 DSH 社區目錄(如 SkillHub 插件頁)爲社區生態,與 DeepSeek / 幻方無官方從屬關係;目錄信息與 GitHub README 衝突時以倉庫文檔爲準。
結尾¶
dsh-devspace 把 DevSpace 的「多 MCP 端點 + 遠端目錄 + 本地 Workspace」收成一條工作流:節點熱掛載、鏡像工作區註冊、分塊雙向傳輸與按工作區收斂的設置面板,便於在 DSH 裏區分本地會話目錄與遠端執行面。