DeepSeek Harness 安装插件与配置加载顺序

2026-09-08 00:00    #AI   #工具   #DeepSeek  

加载顺序(生效配置的分层)

生效配置在空根之上按固定顺序逐层组合,后应用的层按行胜出

顺序说明
1profile 的 dsh.profile.bundles 列表各组合包 patch 按列表顺序,先是 dsh-base,再是每个已安装组合包按其加入顺序
2profile 自己的 cordis.patch.yml用户 profile 级的 patch 层
3home 级的 $DSH_HOME/cordis.patch.yml各 profile 共享的机器本地偏好
4每个 --patch <path> overlay按 argv 顺序

动手:安装 hello-plugin 进 profile

dsh plugin --profile <name> <args...> 在 profile 目录内转发给 pnpm,所有 pnpm 子命令都可用。

1dsh plugin --profile demo add ./hello-plugin

生成的 profile 的 package.json:

 1{
 2  "name": "dsh-profile-demo",
 3  "private": true,
 4  "dependencies": {
 5    "dsh-hello-plugin": "link:/path/to/hello-plugin"
 6  },
 7  "dsh": {
 8    "profile": {
 9      "bundles": [
10        "@deepseek-ai/dsh-base",
11        "dsh-hello-plugin"
12      ]
13    }
14  }
15}

验证与启动:

1dsh --profile demo --dump-config   # 会显示一个 "# == dsh-hello-plugin" 层
2dsh --profile demo

移除:

1dsh plugin --profile demo remove dsh-hello-plugin   # 同时移除依赖和对应的层

patch 按 id 整行替换(不是深度合并)

合并方式行为dsh 的选择
深度合并只覆盖改动的键,其它键自动保留不是这样
整行替换按 id 整行替换 config 值,必须重述所有键dsh 采用

自测

  1. 四层顺序是什么?→ bundles → profile patch → home patch → --patch overlay
  2. 为什么 patch 要重述所有键?→ 因为 patch 是整行替换而非深度合并
  3. 如何核对每层来自哪个组合包?→ dsh --profile demo --dump-config 打印叠加后的生效配置