dsh-global-system-prompt:为 DeepSeek Harness 提供可编辑的全局提示词

前言

在 DeepSeek Harness(dsh)里做多轮对话或挂多个 agent preset 时,往往希望有一段「无论开哪个项目、哪条会话都生效」的说明——编码规范、回复语言、工具使用习惯等。若只在某个仓库的 AGENTS.md 里写,换目录或换工具就带不走;若每次手动粘贴进对话,又容易漏、难维护。

cc-switch 一类产品里有「全局提示词」的做法:一段用户文字,每次对话自动进系统提示。dsh-global-system-prompt 把同类能力接到 dsh 上,并在 Web 设置面板里直接编辑;保存后下一轮请求即生效,无需重启进程(改提示词内容时)。下面介绍它是什么、怎么装、怎么用,以及和项目 AGENTS.md、用户全局指令文件的关系。

这是什么

dsh-global-system-prompt 是社区维护的 dsh 插件(npm 包名 dsh-global-system-prompt,仓库 YMRwithNoworry/dsh-global-system-prompt),在 SkillHub 目录中归类为工作流。它维护一段可编辑的全局文字,通过两条通道生效:

  1. 系统提示词:注册为独立段落(默认 order: -900,紧跟 harness 身份行之后、persona 之前),根会话、preset 挂载的 agent、进程内 subagent 都会带上;段落名 user:global-prompt 不会被 preset 的 persona 覆盖。
  2. 项目 AGENTS.md:与会话所在项目根(向上找 .git)下的 AGENTS.md 同步同一段正文,便于 Claude Code、Codex、Cursor、Zed 等读同一套规则,并随 git 提交。

默认提示词文件为 $DSH_HOME/global-prompt.md(即 ~/.dsh/global-prompt.md)。插件还会在注入内容末尾可选地附上两个文件的绝对路径(全局提示词文件与用户全局指令 $DSH_HOME/AGENTS.md),减少模型在磁盘上乱找「全局 AGENTS.md」的情况。

核心功能

系统提示词注入

  • 每个 step 重新渲染时都会重新读文件,保存后下一次请求带上新内容。
  • 内容不变时不额外污染 prompt 前缀缓存;只有这一段随编辑变化。
  • 文件存在但内容为空时不注入正文(文件位置说明仍可按配置附加),可作为临时静音;文件不存在时使用配置里的 text 兜底(默认为空)。
  • 默认 UTF-8 注入上限 maxBytes: 65536(64 KiB),超出部分截断;Web 面板可查看实际注入字节数与预览。

同步到项目 AGENTS.md

会话开始时写一次,之后每个 step 复查(内容未变时开销很小)。在 AGENTS.md 末尾维护带标记的区块,区块外原有内容不动;写入采用临时文件再 rename,避免读到半截内容。提示词清空时移除区块;若文件仅由插件创建且无其他内容,会删除该文件。

Web 设置面板

路径:设置 → 全局提示词。可编辑、保存、重新从磁盘读取;面板展示文件路径、段落 order、项目同步状态及「写入项目的区块」预览。dsh Desktop 通过去掉跨站 Origin 等方式放行保存,避免桌面端 403。

与 preset、其他插件的分工

  • 外部 CLI 子代理(如 Codex、Claude Code)自有提示词,不受本插件系统提示通道影响。
  • 插件不写 $DSH_HOME/AGENTS.md(那是 dsh 与 dsh-global-rules 的用户全局指令);只在其路径说明里声明位置。
  • 在 dsh 会话内,同一段规则可能既出现在系统提示词,又通过工作区 AGENTS.md 被 dsh-agent-instructions 类上下文读入——前者是 dsh 实时通道,后者是跨工具通道;若不想在项目留痕,可关闭 syncProjectAgents。

安装与启用

正式安装走 npm。包名必须是 dsh-global-system-prompt;npm 上另有无关包 dsh-global-prompt,不要装错。

Web 面板 profile:

dsh plugin --profile web add dsh-global-system-prompt

仅 TUI、无 Web 服务器时(注入与项目同步仍可用):

dsh plugin --profile dsh-tui add dsh-global-system-prompt

从 GitHub 安装或钉住提交:

dsh plugin --profile web add github:YMRwithNoworry/dsh-global-system-prompt

dsh plugin --profile web add github:YMRwithNoworry/dsh-global-system-prompt#<commit-sha>

dsh plugin add 会把包加入 profile 的 dependencies,并把声明了 dsh.bundle 的包追加到 dsh.profile.bundles。新增 bundle 属于启动边界,装完后需重启一次 dsh;之后只改提示词内容不需要重启。

装完可先验证配置是否合入(PowerShell 示例):

dsh --profile web --dump-config | Select-String -Context 0,8 'global-system-prompt'

应能看到 # == dsh-global-system-prompt 及 id: global-prompt 等行。

当前 npm 版本为 0.3.2(以 package.json 为准),许可证 MIT,运行环境要求 Node >= 22.19.0。插件在本地 dsh 进程内执行,安装前请自行查看仓库源码与许可证。

典型用法

  1. 按上文命令为 web 或 dsh-tui profile 安装插件,重启 dsh。
  2. 打开 Web:设置 → 全局提示词,在文本框写入规则(例如统一使用中文、commit 规范、禁止未请求的大范围重构),保存。
  3. 发起下一轮对话;当前已发出的那一轮不会变。
  4. 也可直接编辑 ~/.dsh/global-prompt.md,再在面板点「重新读取」。
  5. 若希望规则进 git、给非 dsh 工具用,保持默认 syncProjectAgents: true,在会话项目根查看 AGENTS.md 中带 BEGIN dsh-global-system-prompt 的区块。

项目文件中区块形态(正文与全局提示词一致,路径以本机为准):

<!-- BEGIN dsh-global-system-prompt -->
<!--
  Managed by the dsh-global-system-prompt plugin. The rules below are synced from:
  (global-prompt.md 的绝对路径)
  Edits inside this block are overwritten on the next sync; delete the block,
  markers included, to stop syncing.
-->

Global rules — follow these in every task in this project:

(全局提示词原文)

<!-- END dsh-global-system-prompt -->

配置要点

默认配置在包的 cordis.patch.yml 中,段落 id 为 global-prompt。在 profile 的 ~/.dsh/profiles/<name>/cordis.patch.yml 里按 id 覆盖时,patch 会整体替换该行的 config,需写全字段。

字段 默认值 含义
enabled true 总开关;false 时不注册段落、不写项目 AGENTS.md(面板路由仍在)
file $DSH_HOME/global-prompt.md 提示词文件
order -900 段落顺序,越小越靠前
text '' 仅当提示词文件不存在时的兜底
maxBytes 65536 注入 UTF-8 字节上限
escapeBraces true 系统提示通道内中和 {{;不影响写入项目的原文
announcePaths true 注入末尾附加两文件的绝对路径说明
syncProjectAgents true 是否同步到项目 AGENTS.md
projectAgentsPreamble Global rules — follow these in every task in this project: 项目区块开头指令行;'' 则只留正文

常见组合:syncProjectAgents: false 只保留系统提示词;announcePaths: false 去掉路径说明;enabled: false 整插件停用。

适用场景与注意

适合:需要在所有 dsh 会话中固定 persona 之外的「用户全局规则」;希望同一套规则同步到项目 AGENTS.md,方便多工具协作与版本管理;希望模型明确知道 global-prompt.md 与 $DSH_HOME/AGENTS.md 的路径。

注意:

  • 插件以当前 dsh 进程权限读写文件与项目目录;安装前请审查 GitHub 仓库 源码与 MIT 许可证。
  • 项目 AGENTS.md 超过 1 MiB、标记被手改坏或 IO 失败时,插件记 warning、保持原文件,系统提示注入仍继续。
  • 若项目根解析到 $DSH_HOME/AGENTS.md,插件会跳过写入并 warning。
  • DeepSeek Harness 生态强调「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-global-system-prompt 用一块可编辑的全局文字,同时进入 dsh 每轮系统提示词与会话项目的 AGENTS.md,并在 Web 面板集中维护。装包后重启一次 dsh 即可开始用;之后改词保存,下一轮对话生效。

羽毛球分组比赛记分
小程序二维码

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

小夜