dsh-system-prompt-studio:按会话在运行时查看与覆盖 system prompt

前言

在 DeepSeek Harness(DSH)里调智能体行为,很多人习惯改配置文件里的 deployment 级 persona 前缀或后缀。改一次往往要重启进程,而且同一配置会对所有会话生效,不利于「这一条对话先试一版 system prompt」的迭代。

dsh-system-prompt-studio 把查看和覆盖 system prompt 的能力放到客户端与会话粒度:在不重启的前提下,针对当前对话(或全局默认)追加段落、替换某一命名的一手段落,或整体替换;改动在下一次模型请求时生效,并可在面板里对照「实际上次请求发出的内容」与拼装出的段落列表。

下面按定位、能力、安装与用法、注意事项说明该插件。维护者为 user-Mrz,分类为客户端插件;仓库见 GitHub,目录页见 SkillHub。

这是什么

插件以 scoped npm 包 @user-mrz/dsh-system-prompt-studio 分发(当前资料中的版本为 0.2.0,许可证 MIT)。它面向 DSH Web / Desktop 共用的客户端产物,在 Host 与 Client 两侧协同:Host 负责与会话相关的 system prompt 覆盖逻辑,Client 提供标题栏(或欢迎区)里的 System prompt 面板。

npm 上还存在未加 scope 的同名包 dsh-system-prompt-studio,由他人维护,不是本插件;安装时必须使用 @user-mrz/ 前缀。

核心功能

看见「真实发出的」system prompt

面板底部只读区域可展开查看:

  • System prompt of the latest request:该对话上一次请求实际发给模型的 system prompt;
  • Sections assembled for this conversation:本次拼装所用段落的名称、顺序与字符数。

尚未完成过组装的对话,列表会说明无法枚举,而不是猜测。

三种覆盖模式

模式 作用
Append(默认) 保留所有一手段落,在末尾追加你的文本,相对稳妥。
Replace a section 对某一命名的一手段落做 shadow 替换,例如 deployment:persona-suffix。
Replace everything 你的文本成为完整 system prompt,风险最高(见下文注意事项)。

保存后无需 reload;下一条发往模型的消息即按新规则组装。覆盖规则按会话持久化,并可设置全局默认,使新建顶层对话自动继承(子 agent 不适用全局默认)。

Fork 出的对话会沿 parentSession 链继承父会话规则;面板提供 Pin,可把继承结果固定在本会话。

编辑未保存时,Esc、点击遮罩或关闭按钮会提示确认,避免误丢草稿。

插件实现仅依赖 Node 内置模块,运行时无额外 npm 依赖,也不 import @deepseek-ai/* 包。

环境与安装

要求

  • DSH:>=0.2.2-0 且 <0.3.0-0
  • Node.js:≥ 22.19.0

安装命令

推荐从 npm 安装(资料中的官方写法):

dsh plugin --profile <profile> add @user-mrz/dsh-system-prompt-studio

将 <profile> 换成你的 profile 名;Web 构建通常为 web。

需要固定版本时可加版本号,例如:

dsh plugin --profile <profile> add @user-mrz/dsh-system-prompt-studio@0.2.0

从 GitHub 跟踪默认分支时,资料示例为带 ref 的安装:

dsh plugin --profile <profile> add github:user-Mrz/dsh-system-prompt-studio#v0.2.0

卸载:

dsh plugin --profile <profile> remove @user-mrz/dsh-system-prompt-studio

卸载不会删除你已保存的覆盖内容。

安装后

Host 侧安装后即生效;Client 侧为新注入的 JavaScript,刷新页面一次后标题栏按钮才会出现。

可用 HTTP 检查 Host 是否就绪(将 sessionId 换为实际会话 ID):

curl "http://127.0.0.1:3080/api/system-prompt-studio?session=<sessionId>"

返回含 "ok":true 与 capability 字段即表示可用。

若使用 pnpm 且构建脚本被拦截:本包 prepare 仅校验入口文件是否存在,不编译、不写盘;按 README 说明在 profile 的 pnpm-workspace.yaml 里将对应 allowBuilds 设为 true 后重试 add。授予构建权限意味着安装时该包代码可在 DSH agent 沙箱外执行,应只对你信任的源码开启。

典型用法

  1. 在任意对话标题栏点击 System prompt(若本会话已有覆盖,按钮上会带点)。全新对话时标题栏可能被 Harness 隐藏,则在欢迎区使用 Set system prompt。
  2. 选择作用范围:this conversation 或 global default(全局默认仅作用于顶层对话,不含 subagent)。
  3. 选择模式、填写文本并保存;下一条消息起生效。
  4. 展开底部两个只读块,对照实际上次请求内容与段落列表。

尚未发过第一条消息的对话也可以先设好覆盖:Harness 在对话创建时即创建 agent,第一条消息的组装就会带上你的规则。

适用场景与注意

适合:需要在单条对话里快速试验 persona、替换 deployment 后缀、或对照「模型到底收到了什么 system prompt」的开发者;与配置文件级 persona 相比,更适合运行时、按会话迭代。

Replace everything 须谨慎:该模式会去掉全部一手指导(工具说明、结构化输出、plan 模式策略等),工具调用质量可能明显下降;运行时上下文(工作目录、沙箱策略、审批策略等)仍以 user 侧快照发送,不会被你的文本替换。同时会移除其他插件注册的所有 prompt 段落——工具 schema 可能仍在,但告诉模型何时、如何调工具的说明消失,表现往往是「模型变笨」而非明确报错。保存前面板会列出将被丢弃的段落名与字符数,并单独标出属于其他插件的段落数量。

若 profile 上还有会注册 prompt 段落的第三方插件,README 建议在插件行配置中设置 allowComplete: false,从而禁用「整体替换」:面板会灰掉该模式,保存时若仍为 complete 会返回 COMPLETE_BLOCKED;已有 complete 覆盖不再生效并回退到一手默认(数据保留不删)。

同一 session 装配层只允许一个活跃的 complete 段落;若另一插件也注册了 complete,装配会失败并报 multiple complete prompt sections,该对话后续模型请求可能全部失败且界面仅显示 request failed,需改回 Append 或 Replace a section 恢复。

安全与信任:插件随当前 DSH 进程权限运行;安装前应阅读源码与 MIT 许可证,确认 scope 包名与来源。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-system-prompt-studio 把 system prompt 的可见性与可编辑性收到会话内:三种覆盖粒度、下次请求即生效、对照真实拼装结果,并支持全局默认与 fork 继承。需要固定行为时仍可用配置文件;需要单对话试错时用本插件更合适。

  • 目录页:https://www.skillhub.cn/plugins/user-Mrz/dsh-system-prompt-studio
  • 仓库:https://github.com/user-Mrz/dsh-system-prompt-studio
羽毛球分组比赛记分
小程序二维码

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

小夜