DeepSeek Harness 设置面板怎么改插件配置?DSH plugin 表单与生效时机

配置与使用发布于 2026-10-03作者: DeepSeek Plugin 插件市场
DeepSeek HarnessDSH plugin设置面板配置表单配置
DeepSeek Harness 的设置面板由设置服务从活动 profile 条目投影 Config 字段生成表单,写入分 update、replace、mutate 三种,每次都会校验完整 Config 并拒绝过期修订号;文档改动由 settings/document-updated 事件通知刷新。

DeepSeek Harness 的设置面板由设置服务从活动 profile 条目投影 Config 字段生成表单;写入分 update、replace、mutate 三种,每次都会验证完整 Config 并拒绝过期修订号,配置变化由 settings/document-updated 事件通知刷新(来源)。 文件层的 config: 块与 patch 覆盖见《DeepSeek Harness 插件配置怎么改》,本篇讲面板这一侧怎么读写。

DeepSeek Harness 设置面板从哪来:活动 profile 的 Config 投影

设置服务从活动 profile 条目投影 volatile 的 Config 字段,配置编辑器再通过 Cordis patch 持久化编辑;业务消费者对自己的 Config 引用调用 .get()(来源)。 结构要点:

  1. 表单以条目 id 为命名空间 — 命名空间是当前 profile 中可唯一定位条目的本地 id。预期:多个插件实例只要条目 id 不同,就各自拥有独立表单。
  2. 描述符带四类信息 — 含实际值、继承值、显式 profile 覆盖值和乐观修订号。预期:你能从面板看出「这个值是继承来的还是你显式改过的」。
  3. 普通字段被排除 — 并非所有字段都会出现在表单里。预期:看不到某个键不代表它不存在,可能只是不参与表单。
  4. 面板里的插件从哪来 — 出现在设置里的条目就是当前 profile 装载的插件。预期:想加一个可配置的插件,可先在 DSH Plugin Hub 浏览社区实现再装入 profile。

DeepSeek Harness 设置面板的三种写入方式

update 合并提交的字段;replace 先把即时字段重置为继承配置、再应用提交的字段;mutate 按独立路径编辑,并保留客户端响应中未包含的秘密值(来源)。 怎么选:

  1. update:只改几个字段 — 把提交的字段合并进该条目的配置。预期:日常改一两项用这个,其他值不动。
  2. replace:整段重置 — 先重置即时字段到继承配置,再应用提交内容。预期:想把某条目恢复成「以继承为基础」时用它。
  3. mutate:按路径编辑、保秘密 — 对独立路径应用有序编辑;未包含在客户端响应中的秘密值会被保留,数组下标取消设置即移除该元素。预期:涉及秘密字段的精细改动优先用这一种。
  4. 写入即校验 — 每次写入都会验证完整 Config,并在持久化前拒绝过期修订号。预期:如果你基于旧描述符提交,revision 对不上就被拒,需重新 describe。

DeepSeek Harness 设置面板的生效时机与秘密字段

settings/document-updated 在 Loader 配置变化后使表单描述符失效,这是 UI 通知;远程读取一律使用 redactSecrets: true,被标记 role('secret') 的字段不可能随响应返回(来源)。 关键点:

  1. 失效后重读 — 收到事件后,表单客户端重新读取该条目的 schema、解析值与修订号。预期:改完面板会自动刷新,不用重启。
  2. 区分两种刷新信号 — UI 用 settings/document-updated;只有当消费者需要刷新注册信息时才用 loader/volatile-update。预期:别把两者混用。
  3. 秘密字段不外传 — ctx.settingsController 的每次远程读取都脱敏,role('secret') 无法随响应出行。预期:面板能安全展示配置。
  4. 需要原生编辑时 — openSettingsDocument 会把提供方拥有的设置文档实体化,并用原生文本编辑器打开。预期:想直接改文件时走这条,而不是复制粘贴路径。

注意事项与常见问题

  1. revision 冲突不是 Bug:它是并发保护,重新读取描述符再提交即可。
  2. 秘密字段看不到值:这是设计,不是加载失败;改它用 mutate 并保留原值。
  3. 面板写入会落到 patch:编辑器通过 Cordis patch 持久化,所以文件层也能看到改动痕迹。
  4. 表单 ≠ 全量配置:普通字段被排除,完整字段清单见《DeepSeek Harness 插件能配哪些项》。
  5. 面板入口在 Web UI:怎么打开设置、配模型与工作区,见《DeepSeek Harness Web UI 怎么用》。

来源:插件配置表单(官方文档)、使用 Web UI(官方文档)

常见问题

DeepSeek Harness 设置面板里的表单是从哪来的?

DeepSeek Harness 的设置服务从活动 profile 条目投影 volatile 的 Config 字段生成表单。表单命名空间是当前 profile 中可唯一定位条目的本地 id;多个插件实例只要条目 id 不同就各自拥有独立表单。

DeepSeek Harness 设置面板的 update、replace、mutate 有什么区别?

在 DeepSeek Harness 设置面板里,update 合并提交的字段;replace 先把即时字段重置为继承配置再应用提交的字段;mutate 按独立路径编辑,并保留客户端响应中未包含的秘密值。

为什么在 DeepSeek Harness 设置里改配置会被拒绝?

DeepSeek Harness 每次写入都会验证完整 Config,并在持久化前拒绝过期修订号。如果你基于旧描述符提交,revision 对不上就会被拒;重新 describe 拿到新修订号再改即可。

DeepSeek Harness 设置面板改完以后,模型会不会看到明文密钥?

DeepSeek Harness 设置面板改完不会让模型看到明文密钥:远程读取一律使用 redactSecrets: true,因此被标记为 role('secret') 的字段不可能随响应返回;这正是面板能安全展示配置而不泄露秘密的原因。

DeepSeek Harness 的 settings/document-updated 事件是干什么的?

DeepSeek Harness 的 settings/document-updated 在 Loader 配置变化后使表单描述符失效,是给 UI 的通知;只有当消费者需要刷新注册信息时才使用 loader/volatile-update。

相关术语

ctx.settings
ctx.settings(SettingsForms)把插件的 Config schema 投影成表单,并管理实例级的页面策略;提供 configure、prepareDocument、describe、update、replace、mutate 等操作。— DeepSeek Harness 官方文档 - 插件配置表单
revision(修订号)
revision 是描述符携带的乐观修订号,用于并发控制:写入时若提交的 expectedRevision 已过期,操作会被拒绝,避免覆盖他人改动。— DeepSeek Harness 官方文档 - 插件配置表单
redactSecrets
redactSecrets 是远程读取的设置项,取值 true 时被标记为 role('secret') 的字段不会随响应返回,保证设置面板在远程调用下也不泄露秘密。— DeepSeek Harness 官方文档 - 插件配置表单
settings/document-updated
settings/document-updated 是配置变化后触发的失效事件,通知表单客户端重新读取某条目的 schema、解析值与修订号。— DeepSeek Harness 官方文档 - 插件配置表单

来源