前言¶
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\)。
典型用法¶
- 打开 设置 → Agent 预设,在「自定义」里点 🛠 预设编辑器。
- 新建预设,填写 ID、名称、描述、排序;在「插件组合」中点「+ 添加插件」,按卡片填写行 ID、包名、分组、
config等。 - 需要说明文档时,在「模式说明与使用」卡片填写 Markdown,保存。
- 关闭对话框回到 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