前言¶
在 DSH 的插件化思路下,系统提示词通常不是一整段手工维护的文本,而是由多个插件分别注册成段,再按顺序组装。对智能体开发者来说,这带来一个具体麻烦:最终发给模型的提示词到底由哪些段组成、某段从哪里来、改一处会不会影响其他段,往往不容易直接看出来。
dsh-prompt-manager 针对这个问题,把“系统提示词”做成可视化和可配置的流水线。下面介绍它的能力、安装方式和典型用法。
这是什么¶
dsh-prompt-manager 是一个 DeepSeek Harness(DSH)插件,由 errorcode7 维护,许可证为 MIT。它的一句话定位是:通过预设查看、改写并切换 DSH 系统提示词,并可视化展示其组装流水线。
它主要解决两类问题:
- 管理:用预设对提示词段做替换、插入、删除,并控制渲染顺序;
- 展示:把来源片段、预设覆盖、变量插值、最终系统提示词和完整请求放在同一条可视链路里。
核心功能¶
下面列出已核实的能力。
预设改写¶
插件支持通过预设对系统提示词段执行以下动作:
- replace:替换某段;
- insert:在某段之后插入新段,或按规则追加;
- remove:删除某段。
顺序控制¶
插件可以精确控制提示词段渲染顺序,支持:
- 置顶;
- 锚点(例如 after 指定某段之后);
- order 数值。
可视化流水线¶
插件会展示提示词组装过程:
- 来源片段;
- 预设覆盖;
- 变量插值;
- 最终系统提示词;
- 完整请求。
历史回看¶
插件支持回看最近 20 轮真实模型组装历史,用于对照当时发给模型的内容。
设置页¶
插件提供设置页「提示词管理」,包含:
- 预设列表;
- 开关切换;
- 表单化规则编辑。
即时生效¶
预设文件修改会即时热重载;切换在下一个模型步骤生效。
agent 工具¶
插件提供 4 个 agent 工具:
- switch_prompt:切换 active preset,或停用;
- list_prompts:列出预设、active 与当前提示词段;
- get_prompt:读取指定 section 的当前文本;
- save_prompt:把当前 section 文本固化为某 preset 的 replace 规则。
预览一致性¶
预览与运行时共用 applyPreset 纯函数,用于保证预览落位与实际一致。
安装与启用¶
先安装插件。README 中的 npm 安装命令标注为“发布到 npm 后”;当前是否已发布未确认。
dsh plugin --profile web add dsh-prompt-manager
如果从源码目录安装,可以使用:
dsh plugin --profile web add /path/to/dsh-prompt-manager
安装前建议先检查源码与许可证。该插件以当前 dsh 进程权限运行,源码中的文件、路由、工具注册和客户端注入都可能影响本机行为,确认后再安装。
文件布局¶
个性化预设保存在 $DSH_HOME/prompts/。
$DSH_HOME/prompts/
├── active.yml
└── <preset>.yml
其中:
$DSH_HOME/prompts/active.yml:用active: <preset>指定启用的预设;null表示不启用;$DSH_HOME/prompts/<preset>.yml:每个预设一个文件,可包含label、description、overrides。
内置预设随插件分发且只读;个性化预设可编辑、删除。
预设文件格式¶
下面是已给出示例的 YAML 形态。规则由动作、目标段、位置和内容组成。
label: 创作模式
description: 面向创意写作的提示词集
overrides:
- action: replace
section: deployment:persona
text: |
你是一位创意写作助手……
- action: insert
section: creative:guidance
after: tools:guidance
text: |
写作流程建议……
- action: insert
section: security:top-guard
top: true
text: |
最高优先级规则……
- action: remove
section: plan-mode:prompt
字段说明:
action: replace / insert / remove;section: 目标段名;text: 要写入或替换的文本;after: 可选,表示插入到该段之后;top: 可选,表示置顶 / 压倒一切。
替换文本中的 {{variable}}(如 {{provider}} {{model}} {{cwd}})会保留给渲染阶段正常插值。
典型用法¶
下面按“先安装,再启用,再用工具调整”的顺序说明。
1、安装插件:
dsh plugin --profile web add /path/to/dsh-prompt-manager
2、准备个性化预设文件,例如:
$DSH_HOME/prompts/active.yml
$DSH_HOME/prompts/creative.yml
3、在 active.yml 中启用某个预设:
active: creative
如果需要停用,使用:
active: null
4、在 agent 中通过工具查看或切换:
- 用
list_prompts查看当前预设、active 与当前提示词段; - 用
get_prompt读取指定 section 的当前文本; - 用
switch_prompt切换 active preset,或使用off: true停用; - 用
save_prompt将当前 section 文本固化为某个 preset 的 replace 规则。
经过上面的步骤,可以在设置页「提示词管理」查看预设列表和表单化规则编辑,也可以在可视化流水线中查看来源、覆盖、插值、最终提示词与完整请求。
适用场景与注意¶
适合以下场景:
- 需要确认 DSH 最终发给模型的 system prompt 是如何组装出来的;
- 需要按会话全局调整某些提示词段;
- 需要在多个预设之间切换,并保留可视化记录;
- 需要把某段当前文本固化为预设规则。
注意:
- 某作用域存在
complete: true段时,注册表会在 waterfall 之后把它还原为唯一提示词段,preset 对 sections 的改写不生效。 - preset 作用于全局组装(所有会话);per-agent 覆盖需通过 agent preset 的
dsh-persona行或agent.ctx注册实现。 - 预设文件修改即时热重载;切换在下一个模型步骤生效。
- 社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系;不要把目录页理解为官方应用商店。
链接¶
- GitHub:https://github.com/errorcode7/dsh-prompt-manager
- 插件线索给出的目录页:https://www.skillhub.cn/plugins/errorcode7/dsh-prompt-manager(未见于已抓取资料)