dsh-preset-inspector:把 Agent preset 的层来源、装配树和模型输入摊开看

前言

在 DeepSeek Harness(DSH)里调 Agent preset,设置页的「查看配置」通常只给你一整段 YAML:没有哪一行来自哪个包、没有补丁叠了几层、也没有「最终模型实际收到什么」。而 preset 的真实行为往往是多层补丁叠出来的——dsh-base 声明一行、dsh-web-app 改它、你自己的 cordis.patch.yml 再改一次。最后哪个值生效、这行是谁加的,要自己在多份文件里对。

社区插件 dsh-preset-inspector(维护者 omdsh-dev,分类:工作流)做的是只读检查:把同一份装配拆成模型输入、插件树、补丁层三种视角,并在官方 Settings 里从 preset 卡片一键打开。下面介绍它解决什么问题、怎么装、怎么用,以及使用前需要知道的限制。

这是什么

dsh-preset-inspector 是 DSH 的 Web 端插件,定位是 Agent preset 检查器:看清每个 preset 的层来源、装配树、提示词与工具。它不修改任何 preset 或配置,只帮助你在调试和排障时核对「装配结果」与「磁盘上的补丁栈」是否一致。

DSH 生态里能力多以插件形式扩展;SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。安装第三方插件前,建议自行查看源码与许可证——插件在当前 dsh 进程权限下运行。

为什么需要单独的检查器

README 里把痛点写得很直接:YAML 文本看不到来源、包信息和层次,而生效配置是 bundle / profile / home 等多层 insert、replace config、disable 叠出来的。Preset Inspector 把同一份装配拆成三种看法:

视角 作用
模型输入 当前 preset 实际收到的系统提示词、动态上下文和工具定义
插件树 每个 preset 由哪些插件行组成,每行来自哪一层
补丁层 整个 profile 的 bundle / profile / home 补丁栈,以及每层执行的 ops

三者都是只读展示;需要改配置时仍回到各自的 YAML 或官方设置,而不是在面板里编辑。

核心功能

以下能力均来自仓库 README 与 package 描述,安装后可在面板内切换 preset,无需另开侧栏入口。

模型输入

  • System Prompt:按 order 排列;完整 section 规则由真实 assembly 决定。系统提示词按类型分组(身份 / 人设 / 工具引导等)。点「显示来源」可看每段的段名、来源和包名;不显示时页面只保留正文。
  • 动态注入:每个 context 槽位可点击查看 order、必需/可选、归属和装配说明。
  • 工具定义:展示模型侧真实 schema(工具名、描述、参数和提供方);搜索框可过滤。
  • 面板会自动捕获 Agent setup 阶段的结果,用于还原「模型侧」视图。

插件树与补丁层

  • 插件树:每行插件、分类、包名、工具列表,以及插入/修改/禁用的层信息。
  • 补丁层:每层实际执行的 ops;config patch 会标成整体替换,避免误以为是按 key 合并。

入口与体验

  • 唯一官方入口:Settings → Agent presets 任意 preset 卡片上的「检查」;不占侧栏。
  • 兼容性:浅/深色、中/英、390px 窄屏、键盘焦点(在 0.2.1-rc.1 上已做隔离环境验证)。

安装与启用

面向 Web profile,直接用 git 源安装(命令来自 README,勿省略 --profile web):

dsh plugin --profile web add github:omdsh-dev/dsh-preset-inspector

装完后重启 dsh web。本包依赖宿主注入官方包,不要用本地目录 link: 安装。

离线或需要固定产物时,可使用 release 里的 tarball(开发者本地打包示例):

pnpm pack
dsh plugin --profile web add ./dsh-preset-inspector-*.tgz

装/卸/启停仍走官方 CLI:dsh plugin --profile web add|remove <包>;已装插件可在侧边栏 Plugins 页查看与配置。运行环境要求 Node >=22(见 package.json engines)。

典型用法

  1. 按上一节命令为 web profile 安装插件并重启 dsh web。
  2. 打开 Settings → Agent presets,在要排查的 preset 卡片上点 检查。
  3. 在面板内可切换其他 preset,不必退回设置页重开。
  4. 先看 模型输入,确认系统提示词、动态上下文和工具是否与预期一致;需要追来源时打开「显示来源」。
  5. 若怀疑是某层补丁盖掉了配置,切换到 插件树 看每行插件与层信息,再到 补丁层 核对 bundle → profile → home 的 ops 顺序与类型(尤其 config 的整体替换)。

整个流程不发送模型请求;面板挂在 shell.overlay,由插件维护打开事件与卡片上的「检查」装饰。

适用场景与注意

适合谁

  • 正在叠多层 cordis.patch.yml 或社区 bundle,需要确认「最后谁生效」的 preset 维护者。
  • 对比两个 preset 的工具列表、系统提示词段来源,或排查「设置里写了但模型没收到」类问题。
  • 希望在官方 UI 内完成检查,而不是只靠导出 YAML 手工 diff。

已知限制(使用前请读完)

  • 只读;为拿到 Agent setup 数据,后台会自动执行一次 preset setup,不发起模型请求,但第三方插件在 setup 中仍可能有文件/网络等副作用。
  • Agent/session 条件才注册的工具或提示词段不会出现在 mount 快照里;以实际会话为准。
  • 层栈来自请求时读取的磁盘配置;CLI overlay、telemetry patch 和已热协调的内存树不在回放范围内。
  • config patch 是整体替换,不是按 key 合并。
  • 静态扫描为启发式兜底,复杂运行时拼接可能漏列或多列。
  • 同一 group 内重复 id 的行用 #2 区分;删除前一个同名行时序号会前移,极端情况下来源会显示为 patch。
  • Settings 卡片上的「检查」依赖 DOM 装饰:官方 0.2.1 没有 per-card slot,官方卡片结构变化时入口可能暂时消失(插件不再提供侧栏备用入口)。
  • dry-run 在 0.2.1-rc.1 实测不留下新 session 文件,但依赖 factory rollback 语义;升级 dsh 后需重新验证。
  • 0.2.0-rc.2 未验证——段名/服务名若有差异,模型输入可能显示「运行时」而非模板。

更多实现细节见仓库 docs/engineering-notes.md。

结尾

dsh-preset-inspector 把 preset 从「一整块 YAML」拆成模型输入、插件树和补丁层三条只读视图,并挂在 Settings 的 preset 卡片上,适合在多层补丁和多个社区包并存时做装配核对。若你在 Web 端维护 Agent preset,可按 README 安装命令接入后,从「检查」入口开始对照三层视图。

  • 目录页:https://www.skillhub.cn/plugins/omdsh-dev/dsh-preset-inspector
  • GitHub:https://github.com/omdsh-dev/dsh-preset-inspector
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye