dsh-msys2-bash-executor:Windows 平臺的可配置 Bash 執行器

DeepSeek Harness (DSH) 在 Windows 平臺運行時,默認的交互方式通常依賴 PowerShell。如果需要在智能體會話中調用 MSYS2、UCRT64 或 Git Bash 環境,直接依賴系統配置往往不夠穩定。本文介紹一個獨立的執行器插件,用於在 DSH 中直接調用這些 Bash 環境。

插件簡介

dsh-msys2-bash-executor 是一個獨立、可配置的 Bash 執行器,由用戶 3223698962 維護。它旨在解決 DSH 在 Windows 上原生不支持 Unix Shell 的問題。該插件通過 DSH 的 subprocess 服務直接處理 argv,不使用 Node.js 的 shell: true 模式,從而提供更可控的進程管理。

核心功能

  • 直接 argv 生成:繞過 Node.js 的 shell: true 模式,直接傳遞參數數組。
  • 自動檢測:自動識別 MSYS2、UCRT64、Git Bash 以及 PATH 中的 bash。
  • 配置靈活:可配置可執行文件、Bash 參數、PATH 前綴及環境變量。
  • 進程管理:支持超時、中止、輸出限制、後臺作業、增量讀取及進程樹終止。
  • 界面支持:DSH Web 設置頁面提供中英文配置卡片。
  • 激活模式:支持全局激活或針對特定預設(Standard、Code、Cordis、Minimal 等)單獨激活。
  • 特殊處理:針對 Minimal 預設提供影子處理,繞過 DSH 不支持的 Windows 持久終端檢查路徑。

安裝與啓用

該插件當前未發佈至 npm,需從本地構建並打包安裝。

  1. 在插件目錄下運行檢查與打包命令。
  2. 使用 dsh 命令將本地包安裝到 Web 配置文件。
npm.cmd run check
npm.cmd pack
dsh plugin --profile web add "C:\path\to\dsh-msys2-bash-executor-0.1.1.tgz"

安裝或更新後需重啓 dsh web。激活變更僅對新創建的會話生效,運行中的會話保持其初始工具集。

典型用法

Web 界面配置

打開 DSH Web 設置,進入 Plugins -> Configurable plugins 標籤頁,找到 MSYS2 / Git Bash 卡片進行配置。

UCRT64 配置示例

如果 DSH 未從現有的 UCRT64 終端啓動,典型的配置如下:

  • Bash executable: C:\msys64\usr\bin\bash.exe
  • PATH entries to prepend:
    • C:\msys64\ucrt64\bin
    • C:\msys64\usr\bin
  • Environment variables:
    {"MSYSTEM":"UCRT64","CHERE_INVOKING":"1"}

手動掛載(進階)

若需在特定預設中手動掛載 Shell 組,可在 agent.cordis.yml 中添加以下配置:

- id: shell-bash
  name: cordis:group
  group: true
  isolate:
    shell: true
  config:
    - id: msys2-bash-executor
      name: dsh-msys2-bash-executor/bash-executor
      disabled: !!js process.platform !== 'win32'

    - id: tool-bash
      name: '@deepseek-ai/dsh-tool-bash'

適用場景與注意

適用場景

適合需要在 DSH 智能體中運行 MSYS2 或 Git Bash 工具鏈的場景,例如需要使用 Unix 命令行工具、配置特定環境變量的開發任務。

安全與兼容性注意事項

  • 非沙箱化:該執行器無沙箱保護。它以 DSH 進程的完整權限運行,等同於 danger-full-access。它不提供 PowerShell 沙箱執行器所使用的 Windows ACL 沙箱。僅在與受信任的提示、倉庫和工具配合使用時使用。
  • 路徑格式:在 Web 設置卡片中使用 Windows 路徑(例如 C:\msys64\...),因爲可執行文件由 Windows Node 生成。
  • Node 版本:必須使用原生 Windows Node 啓動 DSH。MSYS2 構建的 Node 與當前 DSH Windows 啓動器不兼容。
  • 子系統校準:如果 Bash 啓動錯誤的 MSYS2 子系統(例如在 MinGW 環境中運行了 UCRT64 工具),請設置 MSYSTEM 環境變量並確保將匹配的工具鏈目錄添加到 PATH 前綴中。

該插件爲 DSH 在 Windows 下的 Shell 執行提供了獨立且可控的解決方案。更多細節可參考插件目錄頁或 GitHub 倉庫。

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

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

小夜