dsh-devspace:在 DSH 裏統一管理 DevSpace 節點與遠端鏡像工作區

前言

在 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 補丁,見下文),瀏覽遠端目錄樹並選定目錄後,插件會:

  1. 在遠端對該目錄調用 open_workspace,取得遠端 workspace_id;
  2. 在本地創建 <mirrorRoot>/<節點名>/<路徑>(默認 ~/DevSpace/...),並寫入 AGENTS.md,說明項目本體在遠端、本地目錄用途;
  3. 將該本地目錄註冊爲 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 裏區分本地會話目錄與遠端執行面。

羽毛球分组比赛记分
小程序二维码

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

小夜