dsh-plugin-gitbash:在 DSH 中調用 Windows Git Bash

前言

DeepSeek Harness (DSH) 是一個用於構建智能體的框架。在實際開發中,如果智能體運行在 WSL 或 Linux 環境下,需要操作 Windows 原生的 Git 倉庫,或者直接調用 Windows 下的可執行文件,通常會面臨跨系統交互的複雜性。

dsh-plugin-gitbash 插件解決了這個問題。它允許 DSH 在宿主機的 Git for Windows Bash 環境中執行命令,無需在 Windows 和 WSL 之間頻繁切換會話。

插件定位

這是一個自包含的零依賴 Cordis 插件。它註冊了一個名爲 gitbash 的模型工具。插件本身不依賴外部運行時,僅使用 Node.js 內置模塊。

核心功能

  • 直接調用 Windows Git Bash:在 DSH 會話中直接執行 Windows 端的命令。
  • 零依賴:不需要安裝額外的系統依賴,僅作爲 Cordis 插件加載。
  • 路徑自動檢測:插件具備 WSL 感知能力,能夠自動檢測 Git Bash 的安裝路徑。
  • 無狀態設計:每次調用都會啓動一個新的進程,不保存工作目錄或環境變量狀態。

安裝與啓用

安裝插件需要使用 DSH 的 profile 命令。安裝後需要重啓 profile 才能生效。

dsh plugin --profile <name> add dsh-plugin-gitbash

安裝完成後,重啓 profile(通過 dsh web 或 dsh --profile <name>)即可加載 gitbash 工具。

如果需要在 npm 發佈前手動安裝,可以使用 GitHub URL:

dsh plugin --profile <name> add https://github.com/Jinsight-gif/dsh-plugin-gitbash

配置說明

插件的配置項位於 bundle row 或 agent preset 的配置表中。

配置項 類型 默認值 說明
gitBashPath string - 顯式指定 bash.exe 的路徑,插件會直接信任該路徑,不進行檢測。
autoDetect boolean true 當未設置 gitBashPath 時,是否自動搜索常見的安裝位置。
timeoutMs number 120000 單次命令調用的超時時間(毫秒)。
maxOutputChars number 65536 捕獲的 stdout/stderr 輸出會被截斷至該字符數,防止流過大。

路徑解析順序:
1. 配置項 config.gitBashPath
2. 環境變量 DSH_GITBASH_PATH
3. 自動檢測(僅在 autoDetect: true 時生效)

典型用法

使用該插件時,可以通過配置顯式路徑或環境變量來指定 Git Bash 的位置。

方式一:配置顯式路徑

- id: tool-gitbash
  name: 'dsh-plugin-gitbash'
  config:
    gitBashPath: '/mnt/e/Program Files/Git/bin/bash.exe'

方式二:使用環境變量

export DSH_GITBASH_PATH='/mnt/e/Program Files/Git/bin/bash.exe'

適用場景與注意

  • 適用場景:在 WSL 或 Linux 環境下運行 DSH,但需要操作 Windows 原生的 Git 倉庫(使用 Windows 版的 git 命令),或者執行 Windows 可執行文件(.exe),以及使用原生 Windows 路徑(如 D:\... 或 /d/...)。
  • 路徑語義:這是關鍵點。在 command 中執行的是 Windows Git Bash,因此必須使用 Windows 路徑(如 /d/tools 或 D:/tools)。WSL 的 /mnt/... 路徑在命令內部無效。
  • 工作目錄:workdir 參數會被映射,支持 /mnt/X/...、/X/... 或 X:\... 等形式。如果傳入無法映射的 WSL 獨有路徑(如 /home/...),調用將在會話工作目錄下開始,而不是報錯。
  • 無狀態:每次調用都是一個新的進程,cwd、環境變量和 shell 函數不會在調用之間保留。如果需要鏈式操作,請在同一條命令中完成(例如 cd /d/tools && git status)。

結尾

dsh-plugin-gitbash 提供了一個在 DSH 環境中無縫調用 Windows Git Bash 的能力,適合需要在 Linux/WSL 環境下操作 Windows 文件系統的開發者。

更多詳情與源碼,請訪問:GitHub 倉庫

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

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

小夜