返回 DSH Guides

DSH 插件开发指南

如何开发一个 DeepSeek Harness DSH Plugin

从最小 Cordis Plugin 模块开始,注册真正的模型能力,把插件打包成可安装的 DSH Bundle,验证完整加载链路,并按照当前 DeepSeek Harness 生态方式发布。

DeepSeek HarnessDSH PluginsDeveloper Preview

Everything is a Plugin

模型适配、Tool、Session、UI、Service、Policy 和工作流都通过同一套可组合架构接入。

注册行为可回滚

插件生命周期结束后,其注册的 Effect 会随 Fiber 一起撤销。

Bundle 仍可被覆盖

Bundle 通过 Patch 分发配置行,上层 Profile 和用户 Patch 仍然可以继续修改。

本文目录+
01

先理解 DSH Plugin 的最小模型

DeepSeek Harness 由 Cordis 驱动,产品行为不是一个固定 Core 外面再挂少量插件,而是由可组合 Plugin Tree 构成。插件获得共享 Context,并通过它注册 Service、Event、Tool、UI、Policy、Storage 或其他能力。

最小 Function Plugin 很简单:导出 name 与 apply(ctx)。如果依赖 tools、llm 等其他 Service,再用 inject 声明,Cordis 会在依赖准备好后再激活插件。

最小 Function Plugin
import type { Context } from '@deepseek-ai/cordis'

export const name = 'my-dsh-plugin'
export const inject = ['tools']

export function apply(ctx: Context) {
  // 在这里通过 ctx 注册能力。
}
02

先选清楚插件真正要负责哪种能力

DSH 的扩展点不只有 Tool。应该先选择与业务行为匹配的 Capability Seam,而不是把所有功能都硬塞到一个模型 Tool 里。

模型 Tool

在 ctx.tools 上注册结构化模型能力。

模型 Provider

在 ctx.llm 上提供新的模型适配器。

后台任务

通过 ctx.jobs 提供长任务、轮询或计划任务。

Policy / 拦截

通过 tools/*、agent/*、fs/* 等事件控制和观察执行。

UI 集成

消费 Session Event 或注册 Web 端展示能力。

Service Provider

提供其他插件可以通过 Context 消费的可替换 Service。

03

用一个小 Tool 跑通第一个插件

Tool 很适合作为第一条完整链路:定义输入 Schema、返回 Canonical Value,再把结果渲染成模型可见内容。DSH 会在 execute 前校验参数,并在插件卸载时撤销 Tool 注册。

一个简单的结构化 Tool
import type { Context } from '@deepseek-ai/cordis'
import { defineTool } from '@deepseek-ai/dsh-tools'

export const name = 'project-info'
export const inject = ['tools']

export function apply(ctx: Context) {
  ctx.tools.register(defineTool({
    name: 'project_info',
    description: 'Return a small project summary.',
    parameters: { name: { type: 'string', required: true } },
    output: {
      schema: { type: 'string' },
      render: (_args, value) => [{ type: 'text', text: value }],
    },
    async execute(args) {
      return 'Project: ' + args.name
    },
  }))
}

真正用于生产的 Tool 还要继续设计取消、结构化输出、Policy Hook、Replay-safe UI 展示以及真实执行路径测试。

04

把插件打包成 DSH Bundle

要让 Profile 可以稳定安装,一个 Package 可以在 package.json 中声明 dsh.bundle,并让它指向 Cordis Patch。Patch 负责把配置行插入 Profile,而上层 Profile/User Patch 仍然可以覆盖这些配置。

package.json 的 Bundle 声明
{
  "name": "@example/my-dsh-plugin",
  "type": "module",
  "dsh": {
    "bundle": {
      "patch": "./cordis.patch.yml"
    }
  }
}
cordis.patch.yml
- insert:
    - id: my-dsh-plugin
      name: '@example/my-dsh-plugin'
  • 把 Patch 文件放进 Package 的发布 files。
  • 导出 Cordis Loader 能真正 resolve 的运行入口。
  • 对消费的 DSH Service 声明合适的 Peer Dependencies。
  • Bundle 只挂载这个 Package 真正负责的行为,避免把无关能力一起塞进去。
05

验证完整加载链,而不是只测一个函数

Unit Test 只能证明你的函数工作;Plugin 真正需要证明的是 Harness 能 resolve、mount、满足 inject 依赖、执行能力并正确卸载。发布前应在真实 DSH Composition 中跑一遍。

从 Harness 源码 checkout 加载开发 Patch
pnpm dsh web --patch ./scratch-plugin/cordis.yml
检查最终 Profile
dsh --profile web --dump-config
  • 确认插件已经出现在最终 Plugin Tree。
  • 从用户真正使用的 Web/TUI/Headless 表面执行一次能力。
  • 测试失败路径和 unload,而不是只测试正常返回。
  • Node 与 Peer Dependency 范围要跟当前 developer preview 保持一致。
06

发布并让 DSH 生态发现你的插件

社区插件可以独立于官方 Monorepo 发布,并依赖需要的 @deepseek-ai Package。安装路径稳定后,应把仓库、Package、Profile、安装命令和验证方式写清楚,并添加 dsh-plugin GitHub Topic。

  • README:能力、目标 Profile、安装、配置、限制和验证步骤。
  • package.json:Package Identity、Exports、版本、License、Engines、Dependencies 与 dsh.bundle。
  • Repository:dsh-plugin Topic、Release/Tag、Changelog、Issue 或 Support 入口。
  • Verification:提供一条可以复现“插件已经加载且能力可用”的验证方式。

一手资料

本文以 DeepSeek AI 官方 Harness 仓库与当前开发文档为主要依据;由于 Harness 仍处于 Developer Preview,具体命令与契约以后续官方版本为准。

DSH Guides

继续阅读 DSH 插件指南

查看真实 DSH Plugins

DSH 插件安装指南

如何安装 DeepSeek Harness 插件

把 DSH Plugin 安装到正确的 Profile,理解 npm 与 GitHub 安装目标,检查最终插件树,并用明确的方式卸载和排查插件,而不是只看“安装成功”就默认已经生效。

阅读指南

DSH Web UI 使用指南

DSH Web UI 使用指南:启动、登录报错与手机访问

DSH Web UI 是 DeepSeek Harness 官方的网页界面,一条命令就能打开,在浏览器里和 Agent 对话、改代码、跑命令。下面从启动讲到第一次配置、登录报错、手机和局域网访问,再到常用的增强插件,每一步都对照官方源码和文档核实过。

阅读指南

DeepSeek Harness Skill 指南

DeepSeek Harness Skill 安装、目录与调用方法

DeepSeek Harness Skill 是写给 Agent 的操作说明:放进指定目录,Agent 会在合适的时候自己读,你也可以用 /名字 直接调用。下面讲清 Skill 和插件的区别、该放哪个目录、SKILL.md 怎么写、装了不显示怎么办。

阅读指南

DeepSeek Harness 皮肤指南

DeepSeek Harness 皮肤推荐与换肤教程

DeepSeek Harness 官方只带浅色、深色和跟随系统三种外观,想换鲸鱼娘、动态壁纸或毛玻璃,就要装社区做的皮肤插件。下面按风格整理热门皮肤,星数实时读取,并讲清网页版和桌面版怎么安装、怎么切换、出了问题怎么恢复。

阅读指南

DeepSeek Harness 插件推荐

DeepSeek Harness 插件推荐:必装插件和按用途精选

插件太多不知道装哪个?这份 DeepSeek Harness 插件推荐先给出 5 个必装插件,再按用途分组精选。每张卡片的星数和安装命令实时读取,挑选标准和我们不推荐的热门插件也写在下面。

阅读指南

DeepSeek Harness 架构指南

DSH Plugin、Bundle 与 Profile 是什么关系?

理解 DeepSeek Harness 如何组合插件:Plugin 负责什么行为,Bundle 如何分发配置,Profile 启动什么组合,以及这些 Patch Layer 最终怎样构成真实运行的 Plugin Tree。

阅读指南