dsh-preset-studio:在 DSH 里用表单维护 Agent 预设

前言

DeepSeek Harness(DSH)里,Agent 预设决定一次会话加载哪些插件、以什么顺序组合。手写 YAML 或改 bundle patch 能精确控制,但改字段、试插件组合、对照声明文档时,纯文本编辑成本高,也容易和界面上的「Agent 预设」列表脱节。

预设编辑器(Preset Studio) 是社区插件 @local/dsh-preset-studio(仓库 Yume-Hatsuyuki/dsh-preset-studio),维护者为 Yume-Hatsuyuki,目录分类为工作流。它在 设置 → Agent 预设 → 自定义 里提供「🛠 预设编辑器」,用表单维护自定义预设并写回 JSON,Host 半边再注册进 agentPresets;Client 半边把编辑器挂进内置 Agent 预设页,而不是单独占一条设置菜单。

下面介绍它做什么、怎么装、怎么用,以及使用时需要注意的限制。

这是什么

一句话:DeepSeek Harness 的 Agent 预设扩展,支持在设置页里可视化、手动配置自定义 Agent 预设。

它是 Cordis bundle:@local/dsh-preset-studio。Host 负责持久化与预设注册;Client 在内置 agent-presets 设置区块上叠加按钮和对话框,宿主只暴露两条 HTTP 路由,不感知具体 UI 实现。

核心功能

两栏预设编辑器

在「自定义」分组中,「🛠 预设编辑器」位于「+ 让 Agent 帮我创建预设模式」上方,是两个创建/编辑入口中的第一项。点开后左侧是「我的预设」列表,右侧空状态有「+ 新建预设」;也可从左侧「新建」或「新建第一个预设」进入。

与预设声明一致的字段

表单字段与 Agent 预设声明一一对应,包括:

  • 预设 ID(id)、显示名称(name)、描述(description)、排序(order)
  • 「插件组合」(plugins):每行一张卡片,含行 ID、包名、分组、停用、isolate、config
  • 包名输入框带可滚动候选浮层,避免被对话框裁切
  • 「模式说明与使用」对应 guide.explanation / guide.usage(Markdown);保存后,自定义预设卡片会出现与内置预设相同的「模式说明 / 如何使用」按钮

保存与生效

保存后 Host 立即重新注册,内置预设卡片会刷新。新建会话可在 Agent 预设列表中选到新预设;已打开的会话不受影响。原先的「设置 → 预设编辑器」独立菜单已移除,入口统一在 Agent 预设页。

界面与主题

编辑器使用 DSH 设计 token:卡片边框、悬停态、选中项左侧强调线、输入聚焦环,以及带边框的主/次/危险按钮。无预设时显示居中引导卡和主按钮。

数据与 API

自定义预设写入:

  • ~/.dsh/agent-preset-studio.json
  • 若设置了 $DSH_HOME,则为 $DSH_HOME/agent-preset-studio.json

该文件仅由本插件 Host 写入,不做原地 YAML 编辑。对外接口(仅同源):

  • GET /preset-studio/state → { ok, value: { presets, shipped, failed } }
  • POST /preset-studio/save(content-type: application/json)→ 同上

安装与启用

插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与许可证(package.json 中 private: true,版本 1.0.0,依赖 @deepseek-ai/schemastery ~3.18.5)。社区目录页:skillhub.cn/plugins/Yume-Hatsuyuki/dsh-preset-studio。目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

官方 README 给出的安装步骤如下(需先将仓库放到本地路径,再 add 该目录):

# 克隆项目到本地
git clone https://github.com/Yume-Hatsuyuki/dsh-preset-studio

# 添加到桌面客户端
dsh plugin --profile desktop add .\dsh-preset-studio\

# 添加到 WEBUI(可选)
dsh plugin --profile web add .\dsh-preset-studio\

Linux/macOS 下请将 add 后的路径改为本机克隆目录的实际路径(README 示例为 Windows 风格 .\dsh-preset-studio\)。

典型用法

  1. 打开 设置 → Agent 预设,在「自定义」里点 🛠 预设编辑器。
  2. 新建预设,填写 ID、名称、描述、排序;在「插件组合」中点「+ 添加插件」,按卡片填写行 ID、包名、分组、config 等。
  3. 需要说明文档时,在「模式说明与使用」卡片填写 Markdown,保存。
  4. 关闭对话框回到 Agent 预设页,确认自定义卡片已出现;新建 Agent 会话时从列表选择该预设。

字段与声明对照表(摘自 README):

界面 声明字段 说明
预设 ID id 小写字母、数字、连字符
显示名称 name 可选
描述 description 可选
排序 order 可选
插件组合 plugins 子插件数组,顺序即加载顺序
行 ID / 包名 id / name name 必填;分组行填 cordis:group
分组 group: true 该行 config 为子条目数组
停用 disabled: true 保留在模板里但不加载
isolate isolate 例如 {"compaction": true}
config config 该插件的配置对象
模式说明 / 如何使用 guide.explanation / guide.usage 可选 Markdown

适用场景与注意

适合谁:经常切换插件组合、希望与 DSH 内置 Agent 预设页同一入口维护模板,又不想直接改 YAML 的 DSH 用户。

已知限制(以 README 为准):

  • 不支持 !!js 表达式:数据以 JSON 保存,disabled 只能是布尔值;需按平台开关时,请改用 profile patch 里的 YAML 声明。
  • 保存成功不等于插件可加载:包名错误可能要到用该预设开会话时才报错;设置页「Agent 预设」会显示诊断信息。
  • 不能覆盖内置预设 ID(standard / ptc / minimal / cordis),请使用新 ID。
  • 修改只影响之后新建的 Agent。
  • Client 集成依赖内置页条目 id agent-presets、「自定义」分组标题等;官方若调整结构,编辑器入口或帮助按钮可能不再出现,但不影响内置预设页本身。

结尾

dsh-preset-studio 把自定义 Agent 预设从「改文件 + 猜字段」收成设置页里的表单流程,并与内置预设卡片、模式说明按钮对齐。若你已在用 DSH 的工作流类插件组合,可在目录页查看简介,在 GitHub 阅读完整 README 与预览图后再安装。

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

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

Xiaoye