DeepSeek Harness 插件:dsh-greet-plugin

DeepSeek Harness(DSH)的设计理念是“一切皆插件”。在开发智能体或工作流时,如果需要模型具备特定的工具能力,开发者需要自行编写插件。dsh-greet-plugin 是一个最小化的示例插件,它向 Harness 注册了一个 greet 工具,演示了纯 JavaScript 插件的编写方式。

插件简介

这是一个由 imiss1314520 维护的插件,许可证为 MIT。它通过纯 JavaScript 实现,不依赖构建步骤,适合作为开发自定义工具的起点。

核心功能

  • 注册 greet 工具
  • 纯 JavaScript,无构建步骤
  • 通过 package.json 声明配置层
  • 通过 cordis.patch.yml 向组合中插入插件

安装与启用

使用官方命令从 GitHub 安装:

dsh plugin --profile myprofile add github:<用户名>/<仓库名>

安装后,先验证配置层是否生效,再启动 Harness:

dsh --profile myprofile --dump-config   # 输出里应出现 "# == dsh-greet-plugin" 这一层
dsh --profile myprofile

典型用法

在会话中输入:

Use the greet tool to greet Ada.

模型将调用 greet 工具,并收到工具结果 Hello, Ada!。

组成与实现

该插件由三个核心文件组成:

  • package.json:声明 dsh.bundle.patch,以及运行时依赖。
  • cordis.patch.yml:贡献配置层,向组合中插入一行插件,按包名引用本包。
  • index.js:插件入口,导出 name、inject、apply,在 apply 中通过 defineTool 注册工具。

inject = ['tools'] 确保在工具注册表就绪后再调用 apply。defineTool 依据 parameters 校验参数,execute 返回 output.schema 声明的规范值,output.render 再把它转成面向模型的内容。

如何修改

若要将其改造成自己的插件:

  1. 改 package.json 的 name,例如 dsh-my-plugin。这个包名才是别人安装和引用时用的名字,与仓库名无关。
  2. 改 cordis.patch.yml 中插件行的 name,必须与上面的包名完全一致。
  3. 改 index.js 的 name 导出、工具名、参数与返回值。
  4. 需要用户可配置的项时,导出一个 Schemastery schema 作为 Config,并把默认值写在 schema 里。

注意事项

  • 不要引入构建步骤。 dsh plugin add github:... 拉取的是源码而不是构建产物:包若需要 build,使用者安装会失败,还得在 profile 的 pnpm-workspace.yaml 中写 allowBuilds 授权。保持纯 JavaScript 就没有这个问题。
  • 运行时依赖写进 dependencies;别人通过 git 或 npm 安装时,pnpm 会自动装上它们。
  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

发布与发现

  • 发布到 npm:pnpm publish。
  • 让别人找到这个插件:给 GitHub 仓库加上 dsh-plugin 话题。

相关链接

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

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

Xiaoye