DeepSeek Harness
Plugins MarketplaceDeepSeek Harness 插件市场
719 个可安装的 dsh 插件,688 个通过全部七项结构复核。每一条都是拉取 npm 发布包逐字节核对出来的——不是收集链接。
按用途浏览
全部 719 个 →什么是 DeepSeek Harness 插件?
dsh 插件是一个在 package.json 里声明 dsh.bundle 并附带 cordis.patch.yml 的 npm 包。那个 YAML 是一层配置补丁,往 harness 的插件树里插入或替换若干行。
DeepSeek Harness(dsh)是 DeepSeek 于 2026 年 8 月 10 日发布的开源 agent harness,基于 Cordis 构建,把一个想法推到了极限:一切皆插件。模型适配器、工具注册表、会话日志——连 agent loop 本身——全都是插件,因此全都能从配置里替换掉。
所以 dsh 插件不是注册在某个插件 API 上的回调,而是一个有序叠放的配置层。安装一个插件,就是把它的 patch 追加进你的 profile;patch 按 id 定位行,后叠的层胜出。这里没有需要 hook 的特权内核,因此也不需要任何逃生舱口。
插件模块导出 apply(ctx),通过 ctx 注册服务、类型化事件、工具和提示词片段——每一次注册都是可撤销的副作用,卸载插件时全部自动回滚。
为什么要用 dsh 插件?
因为替换一个提供方就能改变整个产品:把文件系统和进程提供方指向远程沙箱,Bash、PTY、LSP 会一起搬过去——不需要为每个工具做一份 fork。
dsh 把每项能力建模成一条 seam,包含三个角色:声明接口的 Service Definition、实现它的 Service Provider、以及使用它的 Consumer(通常是面向模型的工具)。扩展只依赖定义、绝不依赖具体提供方,所以换提供方对下游完全透明。
实际收益是覆盖面。目前已有 719 个可安装插件,触及的领域是单一厂商要花数年才能覆盖的:137 个 Web 界面插件、99 个模型提供方、73 个视觉与多模态插件、56 个搜索插件、51 个用量与成本计量、45 个技能包。
harness 还允许 agent 修改自己的运行时。cordis_define 工具让模型在对话过程中现写一个插件并实时挂载,之后再卸下——这只有在每次注册都可撤销的前提下才可能成立。
怎么安装 dsh 插件?
执行 dsh plugin --profile <名字> add <包名>。它把参数转发给 profile 目录里的 pnpm,如果这个包声明了 dsh.bundle,就把它追加进该 profile 的层列表。
先用 npx @deepseek-ai/dsh web 启动,Web UI 默认在 127.0.0.1:3080。dsh 要求 Node ^22.19 或 >=24。
装完先别启动,执行 dsh --profile <名字> --dump-config。它打印实际组合出来的配置树;你的插件如果没出现在里面,问题在安装这一步,不在插件代码里。
优先从 npm 装,不要从 git 装。npm 包是作者发布时构建好的产物,安装过程不执行这个包的任何代码;从 git 装拉到的是源码,需要在 profile 的 pnpm-workspace.yaml 里开 allowBuilds——那等于允许这个包在你机器上执行代码,且不在 agent 的任何沙箱内。
dsh 和 Claude Code、OpenClaw、Hermes Agent 的区别
四个都是 agent,但只有 dsh 把 agent 循环本身也做成了可替换的插件。下表每一格都能从各自的仓库里核对。
| DeepSeek Harness | Claude Code | OpenClaw | Hermes Agent | |
|---|---|---|---|---|
| 是什么 | 一切皆插件的 agent harness | Anthropic 官方编码 agent | 个人 AI 助手与多渠道网关 | 自我进化、自己长出技能的 agent |
| 扩展模型 | 有序配置层,按 id 定位行 | Skill、MCP、hooks、subagent | 扩展与提供方插件 | 从经验中习得并打磨的技能 |
| agent 循环可替换吗 | 可以,它本身就是插件 | 不可以 | 不可以 | 不可以 |
| 主要语言 | TypeScript | TypeScript | TypeScript | Python |
| 最适合的场景 | 改造 harness 本身 | 今天就在终端里写代码 | 从任意渠道触达一个助手 | 让 agent 自己积累能力 |
适合谁用
改造 harness 的人
你想替换掉 agent 循环、工具流水线或会话存储,而不是绕过它们。没有别的 harness 允许你从配置里换掉这些。
扩展 Web 界面的人
719 个插件里有 359 个通过 dsh.client 附带浏览器半侧,所以 GUI 和后端用的是同一套扩展机制——一个包,两个半侧。
从别的 agent 迁移过来的团队
桥接已经有了:10 个包做 Claude Code 兼容,10 个做 Codex,还有专门的插件把 Claude Code、Codex、ChatGPT、Cursor、Gemini 的聊天记录导入进来。
插件作者
生态只有 4 天,每天新增约 240 个插件。719 个里只有 7 个填了展示元数据,所以一个包装得当的插件立刻就能被看见。
常见问题
DeepSeek Harness 有多少个插件?
截至 2026 年 8 月 15 日,npm 上有 719 个可安装的 dsh 插件——即声明了 dsh.bundle、因而贡献一层配置的包。另有 312 个相关包被索引为库或浏览器半侧,共计 1031 个。第一个插件发布于 2026 年 8 月 13 日,比 dsh 本身上 npm 晚三天。
dsh 插件安装安全吗?
插件运行在 dsh 进程里,权限和 dsh 一样大,所以安装它等同于运行作者的代码。结构复核能查出打包缺陷——719 个里有 688 个通过全部七项——但它读的是包装,不是行为。优先从 npm 安装,安装过程不执行包内任何代码;从 git 安装需要开启 allowBuilds,那会在你机器上执行该包的构建脚本,且不在任何沙箱内。
DeepSeek Harness 和 Claude Code 有什么区别?
Claude Code 是 Anthropic 官方的编码 agent,通过 skill、MCP、hooks 和 subagent 扩展,但它的 agent 循环是固定的。DeepSeek Harness 把循环本身也做成插件,因此可以连同模型适配器、工具注册表、会话日志一起从配置里替换。今天就要写代码,选 Claude Code;要改造 harness 本身,选 dsh。
怎么发布一个 dsh 插件?
发布一个包含三个文件的 npm 包:声明 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } } 的 package.json、patch 文件本身、以及它引用的插件模块。patch 文件必须出现在包的 files 数组里——漏掉它是这份目录里最常见的失败,因为包能正常装上,而那个层根本不存在。keywords 里加上 dsh-plugin,目录就能抓到你。
这里的排序为什么不看下载量和 star?
因为生态里每个插件都不到一周,下载量和 star 编码的是发布先后而不是质量——绝大多数条目都接近 0。排序改用结构性证据:声明的 patch 是否真的打包发布、patch 行在用户机器上能否解析、声明的浏览器半侧是否存在,以及插件的 dsh 依赖区间是否还能接纳当前已发布的版本。