DeepSeek Harness 怎么建独立 profile 装 DSH plugin?隔离与切换

配置与使用发布于 2026-10-02作者: DeepSeek Plugin 插件市场
DeepSeek HarnessDSH pluginprofile插件隔离bundles
DeepSeek Harness 的 profile 是独立运行配置,目录在 $DSH_HOME/profiles/<name>,含 package.json(bundles)和 cordis.patch.yml;用 --from-default-profile 新建,按 profile 装插件。

DeepSeek Harness 的 profile 是一套独立运行配置,目录在 $DSH_HOME/profiles/<name>,含 package.json(dsh.profile manifest 与有序 bundles)和 cordis.patch.yml;用 dsh --profile <name> --from-default-profile <template> 新建,插件按 profile 隔离安装。 这篇讲清 profile 是什么、怎么建、插件怎么装进去。

DeepSeek Harness profile 是什么:目录结构与 bundles 顺序

DeepSeek Harness 的 profile 目录含 package.json(记录树外插件依赖、dsh.profile manifest 与有序 bundles)与 cordis.patch.yml,插件装在它的 node_modules 里,各 profile 之间默认互不可见(来源)。 四步看懂结构:

  1. 看目录位置 — 每个 profile 在 $DSH_HOME/profiles/<name>。预期:<name> 就是启动时 --profile 或 dsh <name> 用的名字。
  2. 读 package.json — 里面除了普通依赖,还有 dsh.profile manifest 与 bundles。预期:bundles 是有序列表,决定组合包叠加顺序。
  3. 认常见 bundle — 如 @deepseek-ai/dsh-base、dsh-web-app、dsh-headless、dsh-sdk-app、dsh-sdk-minimal、dsh-acp-app。预期:不同形态用不同组合,Web 版与 headless 版各用各的。
  4. 看 cordis.patch.yml — 这是该 profile 的用户 patch 层,用来覆盖组合包默认值。预期:只影响本 profile。

叠加顺序为:各 bundle 的 patch(按 bundles 顺序)→ profile 的 cordis.patch.yml → home 级 $DSH_HOME/cordis.patch.yml → --patch。越靠后越优先。

DeepSeek Harness 怎么建自定义 profile:--from-default-profile 与模板

用 dsh --profile <name> --from-default-profile <template> 从默认模板新建 profile,模板决定这个 profile 的形态;启动时用 dsh <name> 或 dsh --profile <name>(来源)。 按步骤建:

  1. 选模板 — 按用途选:交互 Web 用 dsh-web-app,无人值守任务用 dsh-headless,二次开发用 dsh-sdk-app。预期:模板直接决定默认 bundles 组成。
  2. 建 profile — 执行 dsh --profile <name> --from-default-profile <template>。预期:在 $DSH_HOME/profiles/<name> 下生成 package.json 与 patch 文件。
  3. 给个好记的名字 — 别用保留名 desktop。预期:名字不合法时创建会失败或与桌面版冲突。
  4. 启动验证 — 用 dsh <name> 或 dsh --profile <name> 启动。预期:能进入该 profile 的形态。
  5. 查默认配置 — 需要时用 --dump-default-config 看该 profile 的组合默认值。预期:确认模板带进来的默认项。

DeepSeek Harness 怎么把插件装到指定 profile:dsh plugin --profile

用 dsh plugin --profile <name> <pnpm 参数> 把插件装进指定 profile 的 node_modules;profile 之间默认互不可见,装到 A 的插件在 B 里不生效(来源)。 操作顺序:

  1. 确认目标 profile — 先想清楚这个插件要服务哪个 profile。预期:headless 用的插件不必装进 web。
  2. 按 profile 安装 — 执行 dsh plugin --profile <name> <pnpm 参数>。预期:依赖写进该 profile 的 package.json 的 node_modules。
  3. 验证已装 — 启动该 profile,在插件列表里确认。预期:能在该 profile 看到、在别的 profile 看不到,即隔离正确。
  4. 需要共享时写 home 级 — 想所有 profile 都吃到,用 home 级 cordis.patch.yml 统一配置。预期:配置共享,但依赖仍按 profile 各自安装。

想在 profile 里试装社区 DSH插件,可先在 DSH Plugin Hub 找到插件名,再按 profile 装。

已安装插件

DeepSeek Harness profile 配置的注意事项与局限

  1. desktop 是保留名:由桌面端独占,CLI 拒绝用它 boot 与 dump,自定义 profile 另取名字。
  2. 隔离是默认行为:装插件、配权限、配模型都按 profile 生效,跨 profile 不会自动同步。
  3. bundles 顺序有语义:顺序决定默认配置谁盖谁,不要随意调换。
  4. 模板决定起点:选错模板会带进不合适的默认组合,重来比补配置省事。
  5. profile 目录可备份:整个 $DSH_HOME/profiles/<name> 一起备份,就能带走该 profile 的插件与配置。

跨 profile 的安装差异见《dsh plugin 多 profile 安装》;配置文件位置见《dsh 配置文件在哪》。

来源:dsh CLI README(官方仓库)

常见问题

DeepSeek Harness 的 profile 是什么、目录里都有什么?

DeepSeek Harness 的 profile 是一套独立的运行配置,目录在 $DSH_HOME/profiles/<name>。里面 package.json 记录树外插件依赖、dsh.profile manifest 与有序的 bundles,cordis.patch.yml 是该 profile 的用户 patch 层,插件由 pnpm 装进它的 node_modules。

怎么新建一个自定义 profile、从哪个模板起步?

用 dsh --profile <name> --from-default-profile <template> 从默认模板新建。模板对应不同形态,如 @deepseek-ai/dsh-web-app、dsh-headless、dsh-sdk-app,选一个与你用途最接近的作起点。

DeepSeek Harness profile 的 bundles 顺序有什么用?

bundles 决定组合包的叠加顺序,各 bundle 的 patch 按 dsh.profile.bundles 里的先后依次应用,之后才是 profile 的 cordis.patch.yml、home 级 patch 与 --patch。顺序决定了默认配置谁盖谁。

怎么把 DSH plugin 只装到某个 profile?

用 dsh plugin --profile <name> <pnpm 参数>,把插件装进该 profile 的 node_modules。profile 之间默认互不可见,装到 A 的插件在 B 里不会生效。

为什么 desktop 不能当普通 profile 名使用?

desktop 是 DeepSeek Harness 的保留 profile 名,由桌面端独占,CLI 会拒绝用它 boot 与 dump 配置。自定义 profile 要另取名字,避免与桌面版冲突。

相关术语

profile
profile 是 DeepSeek Harness 中一套独立的运行配置单位,位于 $DSH_HOME/profiles/<name>,拥有自己的 package.json、bundles、cordis.patch.yml 与 node_modules,彼此默认互不可见。— dsh CLI README
bundles
bundles 是 DeepSeek Harness profile 的 package.json 中 dsh.profile 下声明的有序组合包列表,决定各组合包 patch 的叠加顺序,示例包含 @deepseek-ai/dsh-base 与 dsh-web-app。— dsh CLI README
--from-default-profile
--from-default-profile 是 dsh 命令行参数,用于在创建新 profile 时从指定默认模板起步,避免从零手写 package.json 与 bundles。— dsh CLI README
dsh plugin --profile
dsh plugin --profile 是 dsh 的子命令用法,用于把插件安装操作限定到指定 profile,把 pnpm 参数透传给该 profile 的依赖安装流程。— dsh CLI README

来源