前言¶
DeepSeek Harness(DSH)通過插件體系擴展能力。dsh-workspace-enhancement 是一個由 DobyChao 維護的 DSH 插件,核心價值在於將本地工作區與遠程(SSH)工作區統一管理在一個會話中。它解決的是在開發或運維場景下,需要頻繁在本地文件系統與多臺遠程服務器之間切換上下文的問題。
核心功能¶
該插件主要提供以下能力:
-
遠程工作區管理
利用ssh2庫,通過單個 SSH 鏈接(支持多跳跳板機)運行 bash、文件操作、PTY 終端和目錄瀏覽。現有使用ctx.subprocess或ctx.fs的工具無需修改代碼即可在遠程運行。 -
多工作區會話
在一個主會話中,通過“⊕ 工作區”按鈕附加額外的本地或遠程目錄。這些目錄作爲聲明列表存在,支持掛載、卸載和打標籤。模型能夠感知這些上下文並直接操作。 -
添加工作區流程
插件提供連接側邊欄(包含已保存機器、~/.ssh/config別名和本地路徑)以及目錄瀏覽器(支持麪包屑導航、原生選擇器和新建文件夾)。在遠程模式下點擊“連接並打開”即可創建會話。 -
機器設置
插件內置機器設置頁面,支持機器的增刪改查、測試連接、設爲當前、忘記主機密鑰。同時支持系統鑰匙鏈密碼和 TOFU(Trust on First Use)主機密鑰管理。 -
會話感知
側邊欄會顯示遠程標記、在線三態指示以及重連功能。會話提示詞會明確告知模型當前處於遠程或附加工作區的上下文中。 -
跨服務器執行
提供sw_exec(server, command)工具,在已註冊命名的機器上運行命令。 -
遠程批准門控
可選功能(默認關閉)。針對每臺機器配置門控,在執行任何 Shell 形式的遠程命令或打開遠程終端前,系統會進行詢問。用戶選擇“human”時每次詢問,選擇“ai”時自動授予短暫只讀白名單命令(如pwd、ls、git status)並詢問其餘命令。 -
模型工具
模型可調用的工具包括sw_status(查看當前會話狀態)、sw_connect(連接已註冊機器)和sw_exec。 -
運行時本地化
UI 文本、工具描述、錯誤信息和路由錯誤均遵循設置頁面中的語言選項(zh/en),默認使用瀏覽器語言。
安裝與啓用¶
安裝前需確保使用 DSH 的 pnpm 供應鏈以允許原生構建腳本(如 ssh2、node-pty)的運行。
# 使用 npm 安裝
dsh plugin --profile web add dsh-workspace-enhancement
# 從源碼安裝(需先運行 npm run build)
dsh plugin --profile web add <this-repo-path>
典型用法¶
安裝後,模型可使用以下工具和交互方式:
- 跨服務器執行:模型通過
sw_exec(server, command)向已註冊的機器發送命令。 - 狀態查詢:通過
sw_status查看當前會話的連接狀態。 - 連接機器:使用
sw_connect附加已註冊的機器到當前會話。 - 附加目錄:用戶點擊會話頭部的“⊕ 工作區”按鈕,手動掛載額外的本地或遠程目錄。
注意事項¶
- 無遠程依賴:DSH 無需在遠程服務器上安裝,模型在本地編排,命令在遠程執行,結果返回上下文。
- 版本兼容性:主機和插件版本需保持一致。插件對不同 DSH 版本的兼容性有明確要求,請參考 GitHub 倉庫中的兼容性文檔。
- 批准門控默認值:遠程批准門控默認是關閉的,每次執行敏感操作前需要人工確認。
總結¶
dsh-workspace-enhancement 爲 DSH 提供了結構化的 SSH 遠程執行與文件系統代理能力,同時通過多工作區機制解決了上下文割裂的問題。適合需要同時管理本地代碼庫和多臺遠程服務器的開發者使用。
GitHub 倉庫:https://github.com/DobyChao/dsh-workspace-enhancement