DeepSeek Harness 设置面板怎么改插件配置?DSH plugin 表单与生效时机
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()(来源)。 结构要点:
- 表单以条目 id 为命名空间 — 命名空间是当前 profile 中可唯一定位条目的本地 id。预期:多个插件实例只要条目 id 不同,就各自拥有独立表单。
- 描述符带四类信息 — 含实际值、继承值、显式 profile 覆盖值和乐观修订号。预期:你能从面板看出「这个值是继承来的还是你显式改过的」。
- 普通字段被排除 — 并非所有字段都会出现在表单里。预期:看不到某个键不代表它不存在,可能只是不参与表单。
- 面板里的插件从哪来 — 出现在设置里的条目就是当前 profile 装载的插件。预期:想加一个可配置的插件,可先在 DSH Plugin Hub 浏览社区实现再装入 profile。
DeepSeek Harness 设置面板的三种写入方式
update 合并提交的字段;replace 先把即时字段重置为继承配置、再应用提交的字段;mutate 按独立路径编辑,并保留客户端响应中未包含的秘密值(来源)。 怎么选:
update:只改几个字段 — 把提交的字段合并进该条目的配置。预期:日常改一两项用这个,其他值不动。replace:整段重置 — 先重置即时字段到继承配置,再应用提交内容。预期:想把某条目恢复成「以继承为基础」时用它。mutate:按路径编辑、保秘密 — 对独立路径应用有序编辑;未包含在客户端响应中的秘密值会被保留,数组下标取消设置即移除该元素。预期:涉及秘密字段的精细改动优先用这一种。- 写入即校验 — 每次写入都会验证完整 Config,并在持久化前拒绝过期修订号。预期:如果你基于旧描述符提交,revision 对不上就被拒,需重新
describe。
DeepSeek Harness 设置面板的生效时机与秘密字段
settings/document-updated 在 Loader 配置变化后使表单描述符失效,这是 UI 通知;远程读取一律使用 redactSecrets: true,被标记 role('secret') 的字段不可能随响应返回(来源)。 关键点:
- 失效后重读 — 收到事件后,表单客户端重新读取该条目的 schema、解析值与修订号。预期:改完面板会自动刷新,不用重启。
- 区分两种刷新信号 — UI 用
settings/document-updated;只有当消费者需要刷新注册信息时才用loader/volatile-update。预期:别把两者混用。 - 秘密字段不外传 —
ctx.settingsController的每次远程读取都脱敏,role('secret')无法随响应出行。预期:面板能安全展示配置。 - 需要原生编辑时 —
openSettingsDocument会把提供方拥有的设置文档实体化,并用原生文本编辑器打开。预期:想直接改文件时走这条,而不是复制粘贴路径。
注意事项与常见问题
- revision 冲突不是 Bug:它是并发保护,重新读取描述符再提交即可。
- 秘密字段看不到值:这是设计,不是加载失败;改它用
mutate并保留原值。 - 面板写入会落到 patch:编辑器通过 Cordis patch 持久化,所以文件层也能看到改动痕迹。
- 表单 ≠ 全量配置:普通字段被排除,完整字段清单见《DeepSeek Harness 插件能配哪些项》。
- 面板入口在 Web UI:怎么打开设置、配模型与工作区,见《DeepSeek Harness Web UI 怎么用》。
常见问题
DeepSeek Harness 的设置服务从活动 profile 条目投影 volatile 的 Config 字段生成表单。表单命名空间是当前 profile 中可唯一定位条目的本地 id;多个插件实例只要条目 id 不同就各自拥有独立表单。
在 DeepSeek Harness 设置面板里,update 合并提交的字段;replace 先把即时字段重置为继承配置再应用提交的字段;mutate 按独立路径编辑,并保留客户端响应中未包含的秘密值。
DeepSeek Harness 每次写入都会验证完整 Config,并在持久化前拒绝过期修订号。如果你基于旧描述符提交,revision 对不上就会被拒;重新 describe 拿到新修订号再改即可。
DeepSeek Harness 设置面板改完不会让模型看到明文密钥:远程读取一律使用 redactSecrets: true,因此被标记为 role('secret') 的字段不可能随响应返回;这正是面板能安全展示配置而不泄露秘密的原因。
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 官方文档 - 插件配置表单
来源
- DeepSeek Harness 官方文档 - 插件配置表单· deepseek-harness
- DeepSeek Harness 官方文档 - 使用 Web UI· deepseek-harness