DeepSeek Harness 的插件:怎么装、怎么关,让它自己写一个
按 DeepSeek Harness 官方文档整理:插件页上的官方插件、实验性插件和第三方插件各是什么,怎么从包名、Git 仓库或本地目录安装,安装源怎么选,装完为什么还要点启用,以及用“创造模式”让它自己写一个插件。也讲清装插件的风险:插件的代码不受工作区沙箱限制。
本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。
DeepSeek Harness 的口号是“一切皆插件”:终端、子智能体、自动化任务、语音输入,这些功能本身都是插件。在侧栏点 插件 就能管理它们。
日常会用到的操作就三样:
- 打开或关掉一个官方插件:点开关。
- 装一个第三方插件:点 添加插件,填包名、Git 地址或本地路径。
- 让它自己写一个:在“添加插件”旁边的箭头里选 让 Agent 创建插件。
动手之前先知道一条:官方文档写明,装进来的插件代码在主进程里运行,不受工作区沙箱的限制。装插件要像装软件一样看来源。
还没装 DeepSeek Harness 的,先看安装和上手。
插件页上有什么
按官方的界面说明,插件页从上到下分几块:
| 分组 | 是什么 |
|---|---|
| 内置插件配置 | 几个官方插件的设置页:子智能体、网页搜索、Agent 循环、终端 |
| 实验性插件 | 随安装包带着、默认关闭的官方插件。标题旁的“更多”可以看全部 |
| 已安装插件 | 你另外装的第三方插件 |
官方页面上列出的实验性插件有智能体团队、自动授权审查、自动化任务、语音输入等。近两个版本又加了 Git Worktrees、思考过程翻译,以及把 Claude Code、Codex 当子智能体用的两个组合包。
另外,设置 → 内置插件 里有一份只读的列表,显示全部内置插件和它们的运行状态。要改东西在插件页,那里只能看。
“组合包”是什么
界面上管理的单位叫组合包(bundle)。一个组合包里可以有好几个插件,装和卸是整包进行的,包里的每一行又可以单独开关。
平时不用在意这个区别,只要知道:页面上的一张卡片是一个组合包,点进去能看到它带了哪些插件。
打开和关闭
点卡片上的开关即可。官方文档说明的几点:
- 关闭不等于卸载。 关掉只是不再加载,装好的文件留着。卸载是另一个操作,会要你确认。
- 改动对所有会话生效。 插件是装在整套配置上的,不是某个会话里。
- 有的改动要重启。 替换一个已经装着的包之后,要重启程序才会加载新版本,界面会提示。
- 装了但加载失败的包会留在列表里,带着错误信息,可以关掉或卸载。
随安装包带着的官方插件没有“卸载”这个操作,只能开或关,它们跟着 DeepSeek Harness 本身一起升级。
安装第三方插件
点 添加插件,在对话框里填要装的东西。官方文档说明它接受四种写法:
| 写法 | 例子 |
|---|---|
| 包名,可以带版本 | 某个包名、某个包名@1.2.0 |
| Git 地址 | 一个 GitHub 仓库的地址 |
| 压缩包 | 一个 .tgz 的链接 |
| 本地绝对路径 | /Users/you/my-plugin |
官方的说明是:包名就是插件 README 里 dsh plugin add 后面的那一段。
社区插件可以在 GitHub 上按 dsh-plugin 这个话题找,官方建议插件作者都打上它。
安装的过程
点“安装”之后,它不会马上装,而是分几步:
- 先查清楚你填的是什么。 它会去安装源读出包名、一句话简介和版本。包不存在、已经装过、或者那个包根本不是插件,会直接在输入框下面告诉你,不会开始安装。
- 显示安装进度。 具体的命令和输出折叠在“查看安装详情”里。
- 装完问你要不要启用。 点 立即启用 才会生效;直接关掉对话框,它就是“已安装但关闭”的状态。
第三步容易漏。装完发现功能没出来,先看是不是没启用。
安装源:国内一般会自动选镜像
插件是通过 pnpm 从 npm 的注册表下载的。国内直接访问 npm 官方源经常很慢,官方为此做了处理:
- 第一次使用时,如果你没有专门配置过安装源,它会同时探测 npm 官方源和国内的镜像源,哪个先回应就用哪个。
- 对话框里的 安装源 可以展开手动选:npm 官方源、中国大陆镜像源,或者自己填一个地址。
- 你的选择记在浏览器里,下次打开还是它。
官方文档说明,这个探测只是向两个源各发一个测试请求,不使用按 IP 判断地区的服务,也不发送会话里的内容。
有两点要知道:
- 探测快不代表下载快。 官方自己写了,响应时间不代表下载的吞吐量。装得慢就手动换一个源。
- 从 GitHub 装的不走镜像。 填的是 GitHub 地址时,它要直接连 GitHub,连不上的话换安装源没有用。这时要解决的是网络,见在国内网络下怎么用。
装到的版本可能不是最新的
官方文档提到一个细节:安装完成后显示的是实际装上的版本,它可能比你查到的最新版本旧。原因是 pnpm 的一项供应链安全策略,刚发布不久的版本会被暂时避开。界面会说明这个差异,并给出想装最新版时该用的精确写法。
这是一项保护,不是出错。刚发布的包被植入恶意代码又很快下架的事并不少见。后半句是我们的补充。
安装脚本要你批准
有的包在安装时要运行自己的构建脚本。pnpm 会把它拦下来,界面上列出等待允许的包,由你决定要不要 允许这些脚本并重试。
脚本是可以执行任意命令的。不认识的包要求运行脚本时,先去看它的仓库。
升级
官方文档写明,页面上没有版本选择器。官方的按需插件在有新版本时会提供“更新”;其他第三方插件要升级,办法是卸载后重新安装。
让它自己写一个:创造模式
在“添加插件”旁边的箭头里选 让 Agent 创建插件,会进入创造模式。按 0.2.1-alpha.1 的版本说明,这个入口可以先留着草稿,你把需求发出去之后它才开始动手。
官方页面演示的例子是一句话:
帮我写一个「番茄时钟」插件
演示里它先加载了插件开发的技能,查了当前有哪些可用的界面位置,然后写出插件的文件、安装、再验证运行状态,用了五分多钟。
创造模式下它的权限更大
这一点要特别留意。官方文档说明,用来装卸插件的 plugin_manager 工具只在创造模式里启用,其他模式默认是关的。而且:
- 这个工具的每个操作,都要求会话处于完全权限,或者你对这一次调用点了同意;
- 你同意一次不会改变会话的权限模式;
- 权限是“从不询问”、你拒绝了、或者没有人能回答时,操作不会执行。
所以在“工作区内修改”这一档下用创造模式,它写完插件要安装时会来问你。这时看清楚它要装的是什么再点同意。权限的几档见DeepSeek Harness 的权限怎么设。
自己写的插件也是代码
它写出来的插件和别人写的一样,装上之后在主进程里运行。让它写完之后,至少打开看一眼它生成了哪些文件、要不要联网、读写了哪些位置。
想自己动手写
官方的开发文档从“第一个插件”讲起。一个插件就是一个导出 apply 函数的 TypeScript 模块:
import type { Context } from '@deepseek-ai/cordis'
export const name = 'my-plugin'
export function apply(ctx: Context) {
// 在这里注册能力
}
框架加载它时调用 apply,你通过传进来的 ctx 注册工具、命令这些能力。
官方教程的下一步是加一个工具。下面是文档里的例子,注册一个叫 greet 的工具,模型可以调用它:
import type { Context } from '@deepseek-ai/cordis'
import { defineTool } from '@deepseek-ai/dsh-tools'
export const name = 'greet-tool'
export const inject = ['tools']
export function apply(ctx: Context) {
ctx.tools.register(defineTool({
name: 'greet',
description: 'Greet someone by name.',
parameters: {
name: { type: 'string', required: true, description: 'The name to greet' },
},
output: {
schema: { type: 'string' },
render: (_args, value) => [{ type: 'text', text: value }],
},
async execute(args) {
return `Hello, ${args.name}!`
},
}))
}
开发时用一份单独的配置把它加载进来,不用先打包:
pnpm dsh web --patch ./scratch-plugin/cordis.yml
官方教程是从源码检出的仓库里开始的,完整步骤、怎么加配置项、怎么打包发布,都在开发文档里。发布时给仓库打上 dsh-plugin 话题,别人就能找到。
装插件的风险
把官方文档里分散的几句话放在一起看:
- 已安装的插件代码在主进程里运行,不受工作区沙箱限制;
- 插件的改动跨会话持久生效;
- 官方的安全说明把“加载第三方插件”列为风险来源,并建议“在允许运行前检查插件、配置和拟执行命令”。
也就是说,权限选择器的那几档管的是智能体执行的命令,管不到插件自己。一个插件能做的事,和你在这台电脑上运行的任何程序一样多。
我们的建议:
- 官方的插件按需开,用不到的实验性插件保持关闭;
- 第三方插件先看仓库:谁写的、多少人在用、最近有没有更新;
- 要求运行安装脚本的包多看一眼;
- 不放心的,在虚拟机或者一台不放重要东西的机器上先试。
常见问题
| 现象 | 原因和办法 |
|---|---|
| 装完了功能没出现 | 没有点“立即启用”。到已安装插件里把开关打开 |
| 提示那个包不是插件 | 它没有声明组合包,不能通过插件页管理 |
| 安装很慢或者失败 | 展开“安装源”换一个;从 GitHub 装的要解决网络 |
| 装上的版本比最新的旧 | 新发布的版本被安全策略暂时避开了,界面上有精确版本的装法 |
| 安装停在等待允许脚本 | 有依赖要运行构建脚本,确认来源后再允许 |
| 开了开关没变化 | 有的改动要重启程序,看界面的提示 |
| 想升级第三方插件 | 卸载后重新安装 |
| 创造模式里它装不上自己写的插件 | 安装需要你同意,或者会话处于完全权限 |
| 插件页显示不可用 | 当前的运行方式没有可管理的配置 |
相关文章
- DeepSeek Harness 安装和上手
- DeepSeek Harness 的权限怎么设
- DeepSeek Harness 的自动化:自动化任务也是一个插件
- 从 Claude Code、Codex 过来:两个子智能体组合包怎么用