dsh-workspace-enhancement: 統一本地與遠程工作區管理

前言

DeepSeek Harness(DSH)通過插件體系擴展能力。dsh-workspace-enhancement 是一個由 DobyChao 維護的 DSH 插件,核心價值在於將本地工作區與遠程(SSH)工作區統一管理在一個會話中。它解決的是在開發或運維場景下,需要頻繁在本地文件系統與多臺遠程服務器之間切換上下文的問題。

核心功能

該插件主要提供以下能力:

  1. 遠程工作區管理
    利用 ssh2 庫,通過單個 SSH 鏈接(支持多跳跳板機)運行 bash、文件操作、PTY 終端和目錄瀏覽。現有使用 ctx.subprocess 或 ctx.fs 的工具無需修改代碼即可在遠程運行。

  2. 多工作區會話
    在一個主會話中,通過“⊕ 工作區”按鈕附加額外的本地或遠程目錄。這些目錄作爲聲明列表存在,支持掛載、卸載和打標籤。模型能夠感知這些上下文並直接操作。

  3. 添加工作區流程
    插件提供連接側邊欄(包含已保存機器、~/.ssh/config 別名和本地路徑)以及目錄瀏覽器(支持麪包屑導航、原生選擇器和新建文件夾)。在遠程模式下點擊“連接並打開”即可創建會話。

  4. 機器設置
    插件內置機器設置頁面,支持機器的增刪改查、測試連接、設爲當前、忘記主機密鑰。同時支持系統鑰匙鏈密碼和 TOFU(Trust on First Use)主機密鑰管理。

  5. 會話感知
    側邊欄會顯示遠程標記、在線三態指示以及重連功能。會話提示詞會明確告知模型當前處於遠程或附加工作區的上下文中。

  6. 跨服務器執行
    提供 sw_exec(server, command) 工具,在已註冊命名的機器上運行命令。

  7. 遠程批准門控
    可選功能(默認關閉)。針對每臺機器配置門控,在執行任何 Shell 形式的遠程命令或打開遠程終端前,系統會進行詢問。用戶選擇“human”時每次詢問,選擇“ai”時自動授予短暫只讀白名單命令(如 pwd、ls、git status)並詢問其餘命令。

  8. 模型工具
    模型可調用的工具包括 sw_status(查看當前會話狀態)、sw_connect(連接已註冊機器)和 sw_exec。

  9. 運行時本地化
    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 附加已註冊的機器到當前會話。
  • 附加目錄:用戶點擊會話頭部的“⊕ 工作區”按鈕,手動掛載額外的本地或遠程目錄。

注意事項

  1. 無遠程依賴:DSH 無需在遠程服務器上安裝,模型在本地編排,命令在遠程執行,結果返回上下文。
  2. 版本兼容性:主機和插件版本需保持一致。插件對不同 DSH 版本的兼容性有明確要求,請參考 GitHub 倉庫中的兼容性文檔。
  3. 批准門控默認值:遠程批准門控默認是關閉的,每次執行敏感操作前需要人工確認。

總結

dsh-workspace-enhancement 爲 DSH 提供了結構化的 SSH 遠程執行與文件系統代理能力,同時通過多工作區機制解決了上下文割裂的問題。適合需要同時管理本地代碼庫和多臺遠程服務器的開發者使用。

GitHub 倉庫:https://github.com/DobyChao/dsh-workspace-enhancement

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

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

小夜