dsh-engineer-tools:工程化命令的 DeepSeek Harness 插件

DeepSeek Harness(DSH)采用插件化架构,开发者常需要在 Agent 会话中执行 Git 操作或依赖管理命令。直接调用 Shell 脚本容易导致返回格式不统一,且缺乏类型约束。下面介绍 dsh-engineer-tools,它将常用工程命令封装为结构化的 Host Tool,让 Agent 能够以更聚焦、更安全的方式执行这些任务。

插件定位

dsh-engineer-tools 是由 bycall 维护的一个 DSH 插件,旨在为工程场景提供工具支持。它包含一个作用域化的 Git 运行器和包管理器运行器,并提供了易于扩展的工具模板。插件遵循 MIT 协议,代码为纯 ESM,无构建步骤。

核心功能

Git 工具

该工具允许 Agent 在会话工作区执行 git 子命令,支持 status、diff、log、branch、show 等。工具会返回 stdout、stderr 和 exitCode,便于后续逻辑处理。

包管理器工具

支持 npm、pnpm、yarn、bun 四种主流包管理器。可执行生命周期命令(如 install、outdated、audit)以及开发脚本(如 test、build、lint)。当指定 manager: auto 时,工具会根据 lockfile 自动识别当前项目使用的包管理器。

运行机制

所有工具以 Agent 权限运行命令,严格受 DSH 沙箱与审批策略限制,确保执行过程可控。

安装与启用

  1. 安装插件
    使用官方安装命令将插件添加到指定 profile(示例中使用 web profile):
    dsh plugin --profile web add dsh-engineer-tools
也可以通过本地目录源安装:
    dsh plugin --profile web add /path/to/dsh-engineer-tools
  1. 生效
    安装完成后,需要重启 DSH.app,Agent 即可在后续对话中调用 git 和 dev 工具。

  2. 卸载
    如需移除插件:

    dsh plugin --profile web remove dsh-engineer-tools

典型用法

安装生效后,Agent 可以直接调用封装好的工具。
* 调用 git 工具时,只需传入具体的 git 子命令,如 git status 或 git log -1。
* 调用 dev 工具时,可指定包管理器或使用 manager: auto 自动识别。例如执行构建:dev build。

适用场景与技术注意

  • 适用场景:适用于需要在 DSH Agent 会话中频繁进行 Git 操作或依赖管理的软件工程场景。
  • 技术细节:
    • 插件严格遵循 @deepseek-ai/dsh-tool-bash 的注册范式。
    • 依赖声明中 peerDependencies 的版本范围必须逐条列出,不能依赖宽松匹配(如 >=),否则可能破坏模块级 Symbol 标记,导致运行时错误。
    • 插件通过 dsh 配置中的 bundle.patch 应用 cordis 补丁。

dsh-engineer-tools 通过标准化接口简化了工程命令的调用流程。开发者可以参考其源码结构,快速扩展更多符合 DSH 规范的工具。

GitHub 仓库

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

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

小夜