DeepSeek Harness (DSH) 插件:fufu1437/dsh-model-commands

前言

DeepSeek Harness (DSH) 的核心设计理念之一是“一切皆插件”。在智能体开发中,将特定的命令或脚本能力注入到模型的能力列表中是常见需求。传统的做法通常涉及编写文件或依赖其他注册机制。fufu1437/dsh-model-commands 插件引入了一种新的定义方式:它允许开发者直接在 DSH 的设置页面中声明 shell 命令,并将这些声明发布到 Harness 的技能注册表中,使其在模型端表现为一个标准的技能(skill)。

插件介绍

该插件是 DeepSeek Harness (DSH) 的工作流插件,由用户 fufu1437 维护。它不提供工具执行能力,而是专注于将命令定义转化为模型可读取的文本内容。插件遵循 MIT 许可证。

核心功能

  1. 设置页面声明:在 Settings → Model commands 页面中,通过表格界面管理技能条目。
  2. 技能注册:在页面中编写的每一个条目都会被发布到 Harness 的技能注册表。
  3. 行为一致性:发布后的条目在模型端的表现与已安装的技能完全一致。模型在技能目录中只能看到一行(name + description),而技能的具体内容(Body)仅在模型请求加载时才被读取。
  4. 非执行性:该插件不执行任何工具调用。技能本质上是 Markdown 文本,模型读取文本,而非运行命令。

安装与配置

使用 dsh 命令行工具安装该插件。该插件依赖 DSH 0.2.1-rc.2 或更高版本。

安装

在终端中执行以下命令:

dsh plugin --profile web add @fufu1437/dsh-model-commands

安装后,通常需要在 Settings → Plugins 中选择对应的 bundle,或者在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 字段中添加包名,然后刷新 Web 页面。

配置

在 Harness 的配置中,可以通过 YAML 格式指定存储路径和最大技能数量。

- id: fufu-model-commands
  name: '@fufu1437/dsh-model-commands'
  config:
    storePath: /home/me/.dsh/model-commands/skills.json
    maxSkills: 200
  • storePath:默认为 <DSH_HOME>/model-commands/skills.json,这是技能表格的单一事实来源。
  • maxSkills:限制注册表中的条目数量上限,默认为 200。

使用方法

在设置页面的编辑器中,填入以下字段即可定义一个技能:

  • Name:使用 kebab-case 命名(例如 disk-usage),这是模型加载技能时使用的键。
  • Description:必填项。这是模型在决策时唯一看到的文本,决定了模型何时调用该技能。
  • Body:Markdown 格式的文本,即模型加载后接收到的内容。常见用法是将命令行工具的 --help 输出粘贴至此。
  • When to use:可选的额外触发文本,也会出现在目录中。
  • Model can invoke:默认开启,决定该条目是否出现在模型的技能目录中。
  • You can too:默认关闭,决定是否同时在人类命令界面展示该条目。
  • Enabled:关闭后条目仍保留,但不会出现在目录中。

保存操作是原子的,会立即重新发布技能目录并使其对模型生效,无需重启 Harness。

行为与限制

  • 无执行环境:该插件没有任何工具执行逻辑,没有 shell、沙盒或代码求值功能。所有内容仅作为文本存储和读取。
  • 单一事实来源:技能表格是唯一的数据源,注册表只是衍生数据。
  • 写入安全:写入操作是原子的(使用临时文件 + 重命名),且仅使用 Node.js 内置模块(node: builtins)。
  • 认证与路由:相关的路由接口会先进行身份验证检查,未认证请求将返回 401 或 403。
  • 命名冲突:如果名称已被其他提供者注册,系统仅发出警告而非错误,注册表会根据层级和优先级决定最终覆盖哪一个。

迁移说明

在 DSH 0.2.0 及更早版本中,该插件可能使用 commands.json 并注册模型可用的工具。在当前版本中,所有条目均为技能,存储在 skills.json 中。旧版本的 commands.json 文件将保持不变且不再被读取。如果需要恢复旧配置,需手动将旧文件中的内容粘贴到新的设置编辑器中。

结语

fufu1437/dsh-model-commands 插件简化了技能定义的流程,将配置集中在 DSH 的设置界面,同时保证了模型调用的安全性和一致性。它不提供执行能力,而是专注于将命令定义转化为可读的技能文本。

仓库地址:https://github.com/fufu1437/dsh-model-commands

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

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

小夜