DeepSeek Harness 插件库

如何构建 DeepSeek Harness 插件:分步教程

构建DeepSeek Harness 插件出奇地快:框架”一切皆插件”的设计意味着一个有用的插件可以只是一个文件。本教程带你从零到可运行。

你需要什么

  • Node.js 18+(DeepSeek Harness 是 Node 运行时)
  • 已安装 DeepSeek Harness(npm install -g @deepseek-ai/dsh
  • GitHub 账号(用于发布)

第 1 步 —— 搭建项目

创建文件夹并初始化:

mkdir my-dsh-plugin && cd my-dsh-plugin
npm init -y
npm install @deepseek-ai/dsh-plugin-kit  # 或当前版本的 SDK 包名

插件开发套件提供类型和辅助函数。包名以官方模板仓库为准——生态变化很快。

第 2 步 —— 编写插件清单

每个插件都要声明自己(plugin.json 或写在 package.json 里):

{
  "name": "my-dsh-plugin",
  "version": "0.1.0",
  "description": "Adds a focused capability to DeepSeek Harness",
  "capabilities": ["tool"],
  "license": "MIT"
}

capabilities 字段告诉 Harness 你的插件提供什么:toolskillmemorythemeworkflowintegration 等。

第 3 步 —— 实现一个能力

最小化的工具插件暴露一个智能体可以调用的函数。TypeScript 示例:

import { defineTool } from '@deepseek-ai/dsh';

export const helloTool = defineTool({
  name: 'hello',
  description: 'Returns a greeting for the given name',
  schema: { name: { type: 'string' } },
  run: async ({ name }) => `Hello, ${name}!`,
});

在插件入口注册它,Harness 就会自动把它暴露给智能体。

第 4 步 —— 本地测试

dsh plugin add ./my-dsh-plugin   # 从本地目录安装
dsh plugins list                 # 验证加载成功
npx @deepseek-ai/dsh web         # 在网页界面里测试

本地安装循环是迭代最快的路径:改代码、重新添加插件、再测试。

第 5 步 —— 写 README 并发布

好的 README 是插件的一部分:

  • 它做什么(一段话)
  • 怎么安装(dsh plugin add github:you/my-dsh-plugin
  • 它需要什么(权限、其他插件)
  • 许可证

然后推到 GitHub,并给仓库打上 dsh-plugin topic。这是生态发现你的方式——也是本类精选目录找到你收录的方式。你也可以发布到 npm,支持 dsh plugin add @scope/package 安装。

第 6 步 —— 提交收录

发布后,提交你的插件,让社区能找到它。

来自生态的设计建议

  • 一个插件一个聚焦能力 —— 最好的插件只把一件事做好(参考目录里的例子);
  • 说清楚安全面 —— 如果你的插件会运行代码或发起网络请求,在 README 里说明。信任是特性;
  • 版本与固定 —— 给发布打版本,让用户能固定提交;
  • 认真对待 issue —— 持续维护是社区目录的收录考量,也是用户的信任信号。

下一步

DeepSeek Harness 插件生态还很年轻,这意味着你想构建的那个插件,还有空间。

DeepSeek Harness 插件常见问题

用什么语言构建 DSH 插件?

DeepSeek Harness 插件用 JavaScript/TypeScript 和官方插件开发套件(dsh plugin dev)构建。套件提供脚手架、类型定义和本地测试循环。

构建一个 DSH 插件需要多久?

用官方模板,一个简单的工具或技能插件 30-60 分钟就能跑起来。更复杂的插件(记忆库、UI 主题)需要更长时间。

如何发布 DSH 插件?

把仓库推到 GitHub 并打上 dsh-plugin topic,生态(以及本类目录)就能发现它。发布到 npm 的插件也可以按包名安装。

← 返回博客