dsh-anywhere: 把 DeepSeek Harness 工作空間放到任意機器

前言

智能體開發中,經常需要操作遠程機器上的文件或執行命令。如果目標機器在內網或通過 NAT 訪問,直接連接往往比較困難。DeepSeek Harness(DSH)雖然提供了強大的插件生態,但針對“遠程機器即本地工作空間”這一場景,通常需要集成 E2B 等外部服務。

dsh-anywhere 插件解決了這個問題。它將“到達層”(Fleet)和“執行世界層”(World)合二爲一,讓你能把 DeepSeek Harness 的工作空間部署在任何一臺機器上,無論是公網服務器、內網盒子,還是處於 NAT 後的設備。

這是什麼

dsh-anywhere 是一個由 tangwenhao616-netizen 維護的 DSH 插件,旨在通過 SSH 協議,將遠程機器變成本地會話的文件系統和子進程運行時。

它不依賴外部 npm 包,而是直接利用系統的 SSH CLI 進行文件讀寫和命令執行,同時通過 OpenSSH 的 ControlMaster 複用機制優化性能。

核心功能

  • Fleet 模式(到達層):通過一次性令牌和反向隧道,將位於 NAT 後的機器註冊到你的 DSH 集羣中,使其表現爲一個 dsh-ssh 主機。
  • World 模式(執行世界層):將任意可 SSH 訪問的機器提升爲會話的 ctx.fs(文件系統)和 ctx.subprocess(子進程),讓模型原生的 read、write、bash、grep 操作直接作用於遠程。
  • 原生 SSH 執行:完全基於系統 SSH CLI,無額外依賴,路徑和內容通過 base64 傳輸,無需擔心 Shell 注入問題。
  • 高性能文件操作:利用 OpenSSH 的 ControlMaster 複用連接,文件微操作延遲可控制在約 40ms。
  • 可取消長命令:支持中斷正在執行的長命令,通過終止連接實現。

安裝與啓用

安裝插件時,必須使用 --profile 指定配置文件,並且不要使用 link: 軟鏈接方式,因爲 --patch 的名稱是相對於配置文件目錄解析的。

dsh plugin --profile <your-profile> add dsh-anywhere

安裝後,插件會提供 /fleet 面板和 dsh-anywhere/world 入口。依賴項 @deepseek-ai/dsh-fs 和 @deepseek-ai/dsh-subprocess 由 DSH 運行時提供。

典型用法

安裝完成後,你可以通過以下命令將遠程機器納入工作空間。

示例:運行遠程命令並寫入文件

假設你已配置好 workspace-on-machine.patch.yml,可以使用 -patch 參數指定配置:

dsh --profile headless --patch ./workspace-on-machine.patch.yml "run 'uname -n' and write MERGED-WORLD-OK to /tmp/selftest.txt"

示例:安裝插件

dsh plugin --profile <your-profile> add dsh-anywhere

在 World 模式下,建議設置環境變量以獲得完全訪問權限:

DSH_PERMISSION_MODE=danger-full-access \
  dsh --profile <your-profile> --patch ./workspace-on-machine.patch.yml "work on this machine"

工作模式

dsh-anywhere 提供了兩種互補的模式:

1. Fleet 模式:讓不可達的機器可達

Fleet 模式主要用於解決網絡拓撲問題。
- 流程:在 Relay VPS 上運行初始化腳本,生成 rendezvous 點;在目標機器上運行 curl <base>/join | bash;在 Hub 的 /fleet 面板中驗證配對碼並批准。
- 安全:機器的 sshd 僅綁定到 Relay 的 loopback 地址,Token 是一次性、可過期且可撤銷的。
- 使用:此時機器顯示爲 fleet-* 的 dsh-ssh 主機,你可以使用 ssh_exec、ssh_upload 等工具操作它。

2. World 模式:讓機器成爲工作空間

World 模式主要用於提升生產力。
- 機制:通過 ctx.fs 和 ctx.subprocess 橋接,讓 Agent 的所有原生文件和 Shell 工具在遠程運行。
- 能力:支持 read、write、edit、bash、grep 以及 LSP 等工具,無需修改工具代碼即可自動作用於遠程。
- 限制:必須滿足“一個世界不變量”,即 fs.cwd 必須等於 subprocess.cwd(通常由 patch 配置中的 cwd 指定),否則相對路徑會失效。

適用場景與注意

適用場景:
- 開發調試需要頻繁操作遠程 Linux 服務器。
- 智能體系統需要直接控制位於內網或 NAT 後的邊緣設備。
- 需要在沒有 E2B 等外部依賴的情況下,構建輕量級的遠程開發環境。

注意事項:
- 安裝方式:務必使用 dsh plugin add 進行正確安裝,避免使用 link: 導致的模塊解析錯誤。
- 權限配置:World 模式下,權限模式建議設置爲 danger-full-access。
- 環境一致性:確保本地和遠程的文件系統路徑配置一致,避免路徑錯位。
- 操作系統:Windows 遠程主機需要安裝 OpenSSH 客戶端和服務端,並配置 PowerShell。

總結

dsh-anywhere 通過 SSH 協議打通了本地 Harness 與遠程機器的界限。它既提供了 Fleet 模式的網絡穿透能力,又提供了 World 模式的完整工作空間支持,且無外部依賴。對於需要構建跨機器智能體工作流的人來說,這是一個直接、高效的工具。

  • 目錄頁:https://www.skillhub.cn/plugins/tangwenhao616-netizen/dsh-anywhere
  • GitHub:https://github.com/tangwenhao616-netizen/dsh-anywhere
羽毛球分组比赛记分
小程序二维码

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

小夜