DSH 系统提示词工作室

前言

DeepSeek Harness(DSH)在装配系统提示词时会注入 runtime 上下文、工具 schema、AGENTS.md、时间读数等系统侧内容。对某些场景来说,这些输入不仅多余,还可能干扰模型行为或消耗 token。在 DSH 生态中,一切皆插件,社区开发者可以通过插件扩展或覆盖这些行为。本文介绍的「系统提示词工作室」插件,就是用来编辑初始系统提示词,并按需屏蔽各类系统侧注入,同时提供普通/仅聊天/自定义模式切换与记忆支持。

插件定位

  • 插件名称:dsh-prompt-studio(系统提示词工作室)
  • 维护者:irislilymoon
  • 分类:模型推理
  • 星标:0
  • 定位:DSH 桌面端 / Web 端插件,用于编辑初始系统提示词,按需屏蔽 runtime 上下文、工具 schema、AGENTS.md、时间读数等系统侧输入,支持普通/仅聊天/自定义模式切换与实时生效。

核心功能

模式

插件提供三种模式,通过设置页的「新对话默认模式」决定新会话的初始模式,已有对话可在输入框上方单独切换:

  • 普通模式:完全使用 DSH 自带的系统提示词与完整工具。
  • 仅聊天:只发送设置页里的「仅聊天提示词」,默认全量替换并屏蔽所有系统侧输入;可在「仅聊天屏蔽与记忆」里按需放行记忆、时间读数或个别工具。
  • 自定义模式:每套模式独立保存名称、系统提示词、屏蔽总开关、单项 allow/deny、记忆开关和工具基线保护。

当前版本没有全局模式;设置页编辑的是仅聊天提示词与它自己的屏蔽/记忆配置;普通模式固定使用 DSH 默认提示词,其他组合通过自定义模式保存。

细粒度屏蔽

仅聊天和自定义模式都支持细粒度屏蔽,四类屏蔽项各有可折叠的单项列表:

  • 屏蔽 runtime 上下文:工作目录、沙箱/审批策略、skill 目录等快照。总开关会拦截整份快照;展开单项后可以只屏蔽其中几项,或只保留工作目录。
  • 屏蔽工具 schema:工具定义走独立协议字段,通常是最大的一笔 token。总开关会移除全部工具;展开单项后可以只保留个别工具。
  • 屏蔽 AGENTS.md / 时间等注入:agent-instructions、time-context、skill-catalog、skill-invocation。展开单项后可以只保留时间读数等某一项。
  • 屏蔽所有非用户注入:用户角色里只要不是用户自己发的消息都过滤,包括 plan-mode、goal、schedule、session reference 等。

设置页的「仅聊天屏蔽与记忆」只作用于仅聊天模式:

  • 总开关:保持「全部屏蔽」语义,未列出的新工具、新注入也会被拦截。
  • 单项:默认折叠。勾选表示屏蔽该项;总开关打开时,未勾选的项会被放行;总开关关闭后,勾选单项可以只屏蔽这一项。
  • 全选:把某一类的所有普通单项都勾上会自动回到总开关语义,和之前一样连未知项一起拦截;带「记忆默认」的项单独处理。

记忆

仅聊天和自定义模式都可以开启记忆,插件会在当前会话的工作目录读取两个文件,并在每轮装配时注入系统提示词:

  • SOUL.md:人格、语气、价值观和边界。文件不存在时,只在你明确要求设置人格时才建议模型创建。
  • MEMORY.md:跨对话保留的用户偏好、项目背景和决定。文件不存在时,模型可以在学到耐久事实后自行创建。

注入内容按字面处理,不参与 {{变量}} 插值;单文件最多注入 12000 字符,超出会截断并提示模型用 read 查看全文。符号链接、指向工作目录外的文件和非普通文件会被拒绝读取。

同时默认放行这些工具/注入(带「记忆默认」标记,仍可在单项里勾选屏蔽,但记忆可能失效):

  • 工具:read、write、edit、str_replace_editor。
  • 注入:time-context(当前时间与间隔读数)。
  • runtime:working-directory:current(仅当 runtime 总开关打开时)。

记忆按工作目录隔离:不同工作区的 MEMORY.md 相互独立。想要一份跨项目共享的记忆,可以固定使用同一个工作区聊天。普通模式不使用这里的记忆开关,始终是 DSH 默认提示词 + 完整工具。

自定义模式

设置页的「自定义模式」板块可以新建、编辑、删除模式。每套模式独立配置:

  • 提示词模式:不覆盖 / 全量替换 / 只替换开场白。
  • 不覆盖:完全使用 DSH 自带的系统提示词。
  • 全量替换:整个系统提示词只保留模式里的正文;Agent Teams、工具指引、plan 策略等其余段全部去掉。
  • 只替换开场白:用正文替换 harness:identity 和 deployment:persona-prefix,其他段保留。
  • 系统提示词正文:按字面注入,不参与 DSH 的 {{变量}} 插值;只有 {{model}} 会被替换成当前模型名。
  • 屏蔽总开关 + 单项:runtime、工具 schema、AGENTS.md / 时间注入、非用户注入四类总开关,以及每类的可折叠单项列表。总开关打开时,单项用于放行例外;总开关关闭时,单项用于只屏蔽选中项。
  • 记忆开关:与仅聊天相同的记忆最小放行范围。
  • 工具基线保护:在会话首轮和声明序列重启时保留完整工具一轮,避免之后重新打开工具被服务端拒绝(首轮会多约 9k token)。

新建模式默认使用「全量替换」,并把当前仅聊天提示词作为起点,屏蔽总开关和记忆默认关闭,可以按需调整。

安装与启用

桌面端插件页(推荐)

将插件目录放到任意位置,然后在 DSH 中打开:

设置 → 插件 → 添加插件 → 填写该目录的绝对路径:

<插件目录>\dsh-prompt-studio

安装后插件会出现在「已安装插件」,确认开关是开启状态即可;客户端部分会热更新,宿主部分按提示重启 DSH。

卸载:设置 → 插件 → 系统提示词工作室 → 卸载。

命令行(仅非桌面 profile)

桌面 profile 由 Electron 应用独占管理,dsh plugin --profile desktop ... 会被拒绝。桌面端请使用上面的插件页;Web / CLI profile 可以用:

dsh plugin --profile <profile-name> add "<插件目录>/dsh-prompt-studio"

典型用法

场景一:纯对话而不带工具与系统注入

在设置页编辑「仅聊天提示词」,然后在「仅聊天屏蔽与记忆」里保持默认的四类屏蔽总开关打开,不开启记忆。每轮对话只会携带你提供的提示词,不包含 DSH 默认的系统侧输入。如果你需要模型具备记忆能力,可以在「仅聊天屏蔽与记忆」里打开记忆总开关,并在单项里放行 read / write / edit / str_replace_editor 和 time-context。

场景二:默认提示词 + 完整工具 + 记忆

新建一个自定义模式:

  • 提示词模式选择「不覆盖」,使用 DSH 默认系统提示词。
  • 在「仅聊天屏蔽与记忆」里开启记忆总开关,放行上述工具与注入。
  • 保存模式。

在「新对话默认模式」中选择该自定义模式。新对话会使用默认提示词 + 完整工具 + 记忆,且不会在系统提示词层面覆盖 DSH 默认内容。

场景三:切换模式实时生效

在已有对话的输入框上方切换模式(例如从仅聊天切到普通模式),下一轮请求会触发 startsRequestSeries: true,DSH 会用新模式替换当前激活的 system 节点,并清空后续旧节点。这意味着切换模式后不会继续沿用历史里的旧提示词,而是从新提示词开始重建请求序列。

适用场景与注意

适合希望精细控制系统提示词和系统侧注入的用户,例如:

  • 需要纯对话而不受 DSH 默认工具、runtime 上下文干扰的场景。
  • 需要保存多套提示词与屏蔽配置,在不同对话中快速切换。
  • 需要在工作区中持久化记忆(SOUL.md / MEMORY.md),让模型跨对话保持一致性。

使用前应检查源码与许可证(MIT),确保符合你的安全与合规要求。插件以当前 DSH 进程权限运行,不要在不受信任的仓库中打开包含敏感内容的 SOUL.md / MEMORY.md,以免将它们当作背景数据注入系统提示词。

短结尾

系统提示词工作室通过细粒度屏蔽与模式切换,让 DSH 的初始提示词与系统侧注入变得可控,适合需要纯净对话或定制系统提示词的开发者。插件目录与 GitHub 仓库见下:

  • 插件目录页:https://www.skillhub.cn/plugins/irislilymoon/dsh-prompt-studio
  • GitHub:https://github.com/irislilymoon/dsh-prompt-studio
羽毛球分组比赛记分
小程序二维码

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

Xiaoye