DeepSeek Harness 插件故障排查:dsh 安装报错、cordis.patch.yml 冲突与 Profile 失效修复指南(2026)

DeepSeek Harness(dsh)插件安装与配置常见问题排查手册:pnpm workspace allowlist 报错、dsh bundle 格式错误、cordis.patch.yml 冲突、Profile 不生效、插件装了却不加载,逐项给出原因与修复命令。

最近更新: 2026-08-26

何时使用本指南

在「找到插件」与「插件正常运行」之间出问题时使用本页:dsh plugin add 失败、monorepo 里奇怪的 pnpm-workspace allowlist 报错、cordis.patch.yml 改了没反应、Profile 加载了错误的插件组合。每个小节都按同一结构展开——症状原因修复命令

还没走到安装步骤?先读安全安装插件指南;不确定自己在改哪一层配置?先看配置详解

动手之前先记住一条铁律:每次修改配置后都要重启 dsh。插件树在启动时由 Cordis 容器组装,「什么都没发生」的案例里一半只是改了配置忘了重启。

一、安装时提示找不到插件(Plugin not found)

症状dsh plugin add dsh-some-tool 报解析错误,或者安装成功但插件始终没有出现。

原因:CLI 按精确包名从 npm registry 解析。常见原因:包名拼写错误、少了 @scope/ 前缀、插件只通过 GitHub 分发(npm 上没有条目)、或 --profile <name> 与之后启动的 Profile 不一致——条目加进了你从未启用的 Profile。

修复步骤

  1. 先用 npm view dsh-some-tool 核对包的确切名称。插件的详情页与仓库 README 会给出可用的安装命令——社区插件的安装方式由插件自己维护。
  2. 插件只在 GitHub 分发时,用源码地址安装并锁定分支:dsh plugin add github:owner/repo#main
  3. 让参数与启动方式一致:用 dsh plugin --profile web add <package> 安装的,就用 dsh --profile web 启动,不要裸执行 dsh
  4. 本地开发时直接链接目录:dsh plugin add ./path/to/my-dsh-plugin

二、安装卡住或失败:pnpm workspace allowlist

症状:在 pnpm monorepo 中安装插件时卡住,或报 pnpm-workspace allowlistmodule not found、ESM & CJS 解析错误——尤其是从 git 或本地构建安装时。

原因:pnpm 严格限制依赖边界。从 GitHub 安装的插件实际上进入了工作区,如果包没有在边界内声明,pnpm 不会链接它,运行时就无法解析插件或其依赖。

修复步骤

  1. 把包声明进边界:在根目录 package.json 的 dependencies(或 pnpm-workspace.yaml 的允许清单/目录)中加入该插件,然后在工作区根目录执行 pnpm install
  2. 重新安装并重启:dsh plugin add <package>,再启动 dsh 让重建后的插件树生效。
  3. 有 npm 发布版时优先使用发布版:发布包自带依赖,天然绕开工作区边界问题。
  4. 确认运行环境:node -v 应输出 20.0.0 及以上。

三、cordis.patch.yml 冲突(覆盖顺序问题)

症状:两个插件功能重叠——两个侧边栏、两个 OCR 引擎、同一个服务的两套实现——其中一个的设置被静默忽略;dsh 可能提示 Profile patch collision / Override order issue

原因:patch 是覆盖层,叠加在 bundle 与 profile 之上,后写的条目胜出。当两个条目注册同一服务或同一 UI 面板时,声明顺序决定结果。YAML 里重复的键或缩进错误,也可能悄悄改写条目。

修复步骤

  1. 打开你实际使用的文件:cat ~/.dsh/profiles/<name>/cordis.patch.yml,工作区内则是 <项目根>/.dsh/cordis.patch.yml
  2. 调整顺序:把希望生效的插件移到 plugins: 列表末尾——后面的条目覆盖前面的。
  3. 或者保留两者、解除冲突:把其中一个条目的 enabled 设为 false
  4. 最干净的长线方案:把冲突插件拆进不同 Profile,用 dsh --profile <name> 分别启动。
  5. 重启前先校验 YAML——一次缩进错误就会改变条目的含义:yq eval . cordis.patch.yml

四、dsh bundle 格式错误

症状:dsh 能启动,但插件组合与文档描述完全不同;或者从别处复制来的配置文件不断报冲突、加载失败。

原因:三个配置层各有分工:bundle 是随 dsh 分发的官方插件集合,profile 是你自定义的「bundle + 插件」组合,patch 只针对单个插件条目做外科手术式覆盖。如果 cordis.patch.yml 把整套 bundle 重新声明了一遍——几十条插件外加本应属于 profile 层的设置——格式就混了,这些覆盖项开始与 bundle 自带内容互相打架。

修复步骤

  1. 让 patch 保持精简——每个插件一个条目,只有 enabledoptions
# ~/.dsh/profiles/default/cordis.patch.yml
plugins:
  dsh-vision-toolkit:
    enabled: true
    options:
      ocrEngine: 'default'
  1. 想一次启用整套插件?那是 profile 层的职责:在 profile 里配置组合,而不是把每条插件都粘进 patch。
  2. 删掉重复条目、保存并重启 dsh。此时插件的工具/面板应当正常加载,不再打印冲突信息。

五、Profile 不生效

症状:改了 cordis.patch.yml,重启后没有任何变化;或者为某个 Profile 安装的插件无处可寻。

原因:三选一的经典失误:改错了文件(配置文件有两处,且项目级覆盖全局级)、启动时用的 Profile 名与修改的目录不一致、或者压根没重启。

修复步骤

  1. 先看两处文件是否都存在:ls ~/.dsh/profiles/*/cordis.patch.yml 2>/dev/null,以及项目根目录下 ls .dsh/cordis.patch.yml 2>/dev/null
  2. 记住优先级:两者都存在时 <项目根>/.dsh/cordis.patch.yml 覆盖 ~/.dsh/profiles/<name>/cordis.patch.yml
  3. 让参数与目录一致:改了 ~/.dsh/profiles/web/cordis.patch.yml,就用 dsh --profile web 启动——不是 dsh,也不是 dsh --profile headless
  4. 重启验证:dsh --profile web,检查插件的工具或面板是否出现。还是没有?看下一节。

六、插件装上却加载不了(failed to register)

症状:安装成功、配置看着没问题,但启动时 dsh 报 Plugin failed to register / Lifecycle timeout——或者插件无声无息地没加载。

原因:通常是运行时太旧(Node.js 低于 20)、依赖缺失(git 安装需要自己构建)、声明顺序与别的插件冲突,或条目被留成了 enabled: false。还有一个相关的失败模式是沙箱:dsh 默认 read-only 运行,需要读写磁盘或访问网络的插件可能在加载时就被拦下,报 Permission denied / Sandbox security policy violation

修复步骤

  1. 检查运行时:node -v——升级到 20.0.0 及以上(推荐 Node 22 LTS)。
  2. 源码安装需要构建:进入插件目录执行 pnpm install && pnpm build,然后重启。
  3. 干净重装:dsh plugin remove <package>,确认 cordis.patch.yml 中的条目,再 dsh plugin add <package>
  4. 确认条目处于启用状态:dsh plugin add 会写入 enabled: true;如果手改过 YAML,检查它还在不在。
  5. 如果报错与沙箱有关且插件可信,启动时放行:dsh --sandbox workspace-write(详见安全沙箱指南)。
  6. 通过 dsh-market Web UI 安装的?去 Settings → Plugin Market 看插件状态——后台会应用配置并热重载,失败状态会显示在那里。

还是没解决?

  • 安全安装插件指南——安装方式、Profile 与 CLI 速查
  • 配置详解——bundle、profile、patch:你改的到底是哪一层?
  • 提交插件——如果插件 README 描述的行为与你的实际情况不符,去它的仓库开 issue,附上你的 dsh --profile 命令和完整报错,维护者解决得最快;若是你维护的插件,修正 README 后把它提交进目录。

DSH Plugins 是独立的 DeepSeek Harness 插件市场,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。