DeepSeek Harness (DSH) 插件:dsh-wsl

前言

在 DeepSeek Harness (DSH) 的使用场景中,模型代理经常需要执行 Linux 命令。传统的做法通常是编写 .sh 脚本或 pwsh 包装器。dsh-wsl 插件解决了这个问题,它允许模型代理直接通过 wsl.exe 运行 Linux 命令,无需手写脚本。它在命令执行层面匹配原生 Linux DSH 的行为,包括真实的 Linux 内核和 bash 环境、退出码与信号处理、超时机制、输出截断以及后台作业管理。

插件介绍

该插件是面向模型的 WSL 工具插件,旨在简化 Windows 环境下的 Linux 命令执行流程。

  • 插件名称:dsh-wsl(仓库)/ dsh-wsl-tool(NPM 包名)
  • 维护者:XINY11451
  • 类别:联网工具
  • 开源协议:MIT

安装

通过 DSH 的插件管理器安装:

dsh plugin add --profile <profile> dsh-wsl-tool

安装后,插件会在 Bundle 加载时自动注册 tool-wsl。不要在预设(preset)中手动列出 tool-wsl,因为 DSH 已经在全局范围内注册了该工具,重复注册会导致错误。

核心功能

插件注册了三个工具,分别用于命令执行、路径转换和环境探测。

1. wsl:运行 Linux 命令

通过调用 wsl.exe 执行命令。默认行为等同于在 WSL 中直接运行。

  • 命令格式:wsl.exe [-d <distro>] -e bash -lc "cd <workdir> && <command>"
  • 返回内容:包含 stdout、stderr 以及退出码、超时或截断标记。
  • 长脚本支持:如果命令长度超过 Windows 命令行限制(32767 字符),内容会通过 stdin 传递给 wsl.exe,避免截断。
  • 后台作业:设置 runInBackground: true 可以将命令作为后台任务运行,返回任务 ID,需配合 @deepseek-ai/dsh-tool-jobs 预设使用。

2. wsl-path:路径转换

利用 wslpath 工具在 Windows 和 WSL 路径之间转换。

  • 自动检测:根据路径格式自动判断转换方向。
  • 手动指定:通过 direction: 'win' | 'linux' 强制指定方向。
  • 示例:C:\Users\me\a.txt -> /mnt/c/Users/me/a.txt

3. wsl-env:环境摘要

探测并返回 WSL 环境的详细信息,帮助代理在执行前判断环境能力。

  • 信息项:发行版列表、内核版本、架构、CPU 核心数、内存和磁盘使用量、systemd 状态、Docker 安装情况、GPU 直通状态、挂载驱动等。
  • 容错性:未探测到的项会显示为空或特定状态(如 docker: not installed)。

典型用法

执行 Linux 命令

wsl command: "echo hello"

执行后返回类似 [exit code: 0] 的结果。

转换路径

wsl-path C:\Users\me\project

返回:/mnt/c/Users/me/project

获取环境信息

wsl-env

返回包含内核版本、CPU 核心数、内存状态、驱动挂载点等信息的摘要。

注意事项与限制

  1. 沙箱限制:wsl 调用运行在 DSH 沙箱之下,这意味着文件策略无法限制该插件的执行,必须依赖系统层面的权限控制。
  2. 文件系统语义:如果项目位于 Windows 驱动器(如 C: 或 D:)上,文件系统保持 Windows 语义。这包括不区分大小写、无 POSIX 权限以及无文件变更通知,且访问速度较慢。
  3. 后台作业依赖:使用后台作业功能时,必须在预设的 Composition 中包含 @deepseek-ai/dsh-tool-jobs,否则调用会失败。
  4. 注册冲突:如前所述,不要在预设中手动注册 tool-wsl,否则会报错 tool "wsl" is already registered in this scope。

结语

dsh-wsl 为 DeepSeek Harness 提供了原生的 Linux 命令执行能力。通过直接调用 wsl.exe,它减少了开发者在脚本包装上的工作,并提供了标准化的环境探测能力。在使用时,需注意其运行在 DSH 沙箱之下以及 Windows 驱动器上的文件系统限制。

  • 目录页:https://www.skillhub.cn/plugins/XINY11451/dsh-wsl
  • GitHub 仓库:https://github.com/XINY11451/dsh-wsl
羽毛球分组比赛记分
小程序二维码

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

小夜