dsh-suite/packages/preset-center

43Star8Fork27Issue0Watching

DSH 中文 agent 预设场景包:在 Settings 增加「场景包」入口,一键安装 6 个中文写作/学习/翻译预设,无需重启立即出现在 Agent presets 选择器。

语言
HTML
License
MIT
分支
main
agent-frameworkawesome-listcordisdeepseekdeepseek-harnessdeveloper-toolsdshdsh-plugin

安装

$ dsh plugin --profile web add github:whyihaveyou/dsh-suite/packages/preset-center

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

一句话定位

在 DSH Web 端设置页里挂一个「场景包」分区,把 6 套中文写作/学习 agent 预设以卡片列出来,支持一键应用到官方 Agent presets 选择器;本身不写业务逻辑,只承担预设文件的搬运与界面注入。

核心能力

  • 在 Settings 多挂一个「场景包 / Preset Packs」分区,列出全部 6 张预设卡片,并支持「预览 / 一键应用 / 移除」三按钮(packages/preset-center/lib/client.js:82-122, 131-137)。
  • 「一键应用」会把对应预设的 agent.cordis.ymlpreset.yml 写到官方 user preset root(~/.agent-presets/<id>/),写完立即可被官方 agent-presets 插件扫描到,无需重启 DSH(packages/preset-center/lib/index.js:47-56 / README.md:23-29)。
  • 提供 6 套中文预设:小红书笔记助手 / 中文文案润色 / 日报周报生成器 / 学习读书笔记助手 / 翻译与双语润色 / 头脑风暴与选题策划,每套都关掉 shell、保留 fs / skill / ask-user / todo,部分按场景开/关联网搜索(packages/preset-center/presets/*/preset.yml)。
  • 提供「预览」面板,应用前可看到将写入哪些文件、人设摘要和工具开关,避免盲装(packages/preset-center/lib/client.js:103-108)。
  • 客户端内置中英双语文案,跟随 DSH 的 locale 系统切换(packages/preset-center/lib/client.js:13-30, 129)。
  • 「移除」调用 /preset-center/remove 删除 user root 下对应子目录,可逐个独立移除,不影响其他预设(packages/preset-center/lib/index.js:58-62, 88-96)。

技术实现

  • 语言: JavaScript (ESM, "type": "module")
  • 关键依赖: @deepseek-ai/dsh-client-runtime / @deepseek-ai/dsh-client-ui-slots / @deepseek-ai/dsh-client-ui-settings / @deepseek-ai/dsh-client-locale(仅前端注入用,见 packages/preset-center/package.json:17-22);host 半区无第三方依赖,仅用 Node 内置 node:fs / node:zlib / node:url / node:os / node:path(packages/preset-center/lib/index.js:5-9)
  • 架构模式: cordis bundle 双端注入 —— host 端通过 cordis.patch.ymlinsert 声明把 preset-center 模块挂入 loader;运行时 host 端 inject: ['webServer'] 注册 3 条 HTTP 路由 /preset-center/list|apply|remove,client 端通过 __ModuleLoader__.load 注入到 Settings 页面(packages/preset-center/cordis.patch.yml / packages/preset-center/lib/index.js:11-12, 64-99 / packages/preset-center/lib/client.js:5-7, 126-142)
  • 入口文件: host packages/preset-center/lib/index.js(注册路由)/ client packages/preset-center/lib/client.js(渲染 Settings 分区)

适用场景

刚装好 DSH Web 端、想跳过自己写 persona 提示词就拿到可用的中文写作助手(小红书、文案润色、日报周报、翻译、读书笔记、头脑风暴)的普通用户;尤其是中文写作、运营、自媒体等高频场景,希望装一个包就获得「选一下就能开聊」的体验。

前置依赖与兼容性

依赖最低版本说明
DSH未声明package.json 仅声明 dsh.bundle.patchdsh.client(platform: web),无 dsh.engines 字段;DSH 版本兼容性未由插件声明(packages/preset-center/package.json:12-25)
Node^22.19 或 >=24packages/preset-center/package.json:32-34engines.node
平台跨平台os / cpu 限制,仅依赖 Node 内置模块
原生模块host 半区仅用 node:fs / node:zlib 等内置 API,无 native binding

安装方式

dsh plugin --profile web add github:whyihaveyou/dsh-suite/packages/preset-center

配置项

配置类型说明默认值
DSH_HOME环境变量决定预设文件写入哪个根目录;预设最终位置是 ${DSH_HOME}/.agent-presets/<id>/~/.dsh(即 $HOME/.dsh

本插件自身无 DSH Schema / ctx 配置项;6 套预设按各自 agent.cordis.yml 的硬编码开关工作,无法在 Settings 里逐项开关。

常见问题

Q: 安装后还需要做什么才能让预设生效?

A: 无需重启 DSH。本插件把预设文件直接写入官方 user preset root(~/.agent-presets/<id>/),官方 agent-presets 插件每次调用都会重新扫描该目录,安装完成后到 Settings → Agent presets 选择对应预设即可开始对话。

Q: 和官方 standard agent preset 是什么关系?是覆盖还是新增?

A: 是新增。预设被写入官方 user preset root 后以独立 id 出现在 Agent presets 选择器,与官方 standard 并存;不会替换或影响 standard 预设。

Q: 安装了哪些预设?为什么 README 只写 3 个但界面里看到 6 个?

A: 实际打包了 6 个预设:小红书笔记助手 / 中文文案润色 / 日报周报生成器 / 学习读书笔记助手 / 翻译与双语润色 / 头脑风暴与选题策划。README 表格只列出前 3 个属于文档未与目录同步,presets/ 目录与界面均以 6 个为准。

Q: 这些预设都会执行 shell 命令吗?安全吗?

A: 不会。6 套预设的 agent.cordis.yml 都把 tool-bash 和 tool-pwsh 显式设为 disabled,关掉 shell 执行;可用工具为 fs / fs-search / skill / ask-user / todo,部分预设(小红书、读书笔记、头脑风暴)额外开启联网搜索。

Q: 怎么卸载某个预设?

A: 在 Settings → 场景包 卡片上点「移除」即可。本插件会调用 /preset-center/remove 删除 user root 下对应子目录;preset-center 本身不卸载,6 个预设可逐个独立移除。

Q: 预设装在哪里?换电脑要重新装吗?

A: 装在 <DSH_HOME>/.agent-presets/<id>/(DSH_HOME 默认 ~/.dsh,可通过环境变量覆盖);该目录跟随用户 home,不随插件走,所以换电脑或重装 DSH 后需要重新一键应用。

Q: 界面里的「场景包」入口在哪里?怎么打开?

A: 重启 dsh web 后,浏览器 Settings 页面会多出一个名为「场景包 / Preset Packs」的分区(label 由 client 注入,order: 70);展开后可看到 6 张预设卡片,每张卡片支持「预览 / 一键应用 / 移除」。

上手难度

入门 — 安装 + 一次重启 dsh web 即可在 Settings 看到「场景包」分区,点击卡片即可一键应用;不需要读源码或写配置。

已知问题与限制

  • 文档与实现不同步:README 表格只列出 3 个预设(小红书笔记助手 / 中文文案润色 / 日报周报生成器),但 presets/ 目录与 Settings 界面实际包含 6 个预设(另含学习读书笔记助手 / 翻译与双语润色 / 头脑风暴与选题策划),三者顺序按 preset.ymlorder 字段排序展示(packages/preset-center/README.md:17-22 / packages/preset-center/presets/*/preset.yml / packages/preset-center/lib/index.js:30, 42)。
  • 预设文件写入位置由环境变量 DSH_HOME 控制,默认为 ~/.dsh;但 DSH 自身的 home 与本插件读取的 DSH_HOME 是否一致未在源码中校验,写到不一致的目录会导致「看不到预设生效」(packages/preset-center/lib/index.js:17-19, 47-56)。
  • 预设内的工具开关(联网搜索开关、shell 是否禁用)全部硬编码在每个预设的 agent.cordis.yml 里,插件不提供在 Settings 页面修改这些开关的入口;想调整只能编辑 ~/.agent-presets/<id>/agent.cordis.yml(packages/preset-center/lib/client.js:97-102 / packages/preset-center/presets/*/agent.cordis.yml)。
  • 6 套预设全都禁用了 shell 和 subagent-codex / subagent-claude-code 两个产品化 provider,无法在这些预设里让 agent 跑命令或交由 Codex / Claude Code 子代理执行(packages/preset-center/presets/*/agent.cordis.yml)。