dsh-prompt-manager:把 DSH 系统提示词拆成可管理、可预览的流水线

前言

在 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:每个预设一个文件,可包含 labeldescriptionoverrides

内置预设随插件分发且只读;个性化预设可编辑、删除。

预设文件格式

下面是已给出示例的 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(未见于已抓取资料)
羽毛球分组比赛记分
小程序二维码

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

小夜