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 仓库

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

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

小夜