YMRwithNoworry/dsh-global-system-prompt ↗★ 0

dsh-global-system-prompt

cc-switch-style global prompt for DeepSeek Harness (dsh 0.1.5): one user-editable block injected into the system prompt of every conversation, mirrored into each session project's AGENTS.md, and naming the harness's user-global AGENTS.md by absolute path so the model stops hunting for it. Edited from the web settings panel. 适合需要统一配置全局指令、同步项目AGENTS文件的用户。

パッケージ
dsh-global-system-prompt
互換性
未検証
Cordis ピア範囲
^4.0.2
バージョン
0.3.1
ライセンス
MIT
最終更新
2026/09/21

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:YMRwithNoworry/dsh-global-system-prompt

ドキュメント

README 全文を読む ↗

使用

打开 设置 → 全局提示词,在文本框里写内容,保存。

  • 保存后下一次请求(下一轮对话)生效,当前已经发出的那一轮不变。
  • 文件默认是 ~/.dsh/global-prompt.md(即 $DSH_HOME/global-prompt.md),也可以直接用任何编辑器改它——面板上的「重新读取」按钮会重新拉取。
  • 文件存在但内容为空 = 不注入提示词正文(文件位置说明仍会附加,见 announcePaths),这也是临时静音的办法;删掉文件则回到配置里的 text 兜底(默认为空)。
  • 面板会显示提示词文件路径、用户全局指令文件路径与状态、段落位置 order、实际注入字节数,还有一个「实际注入预览」可以展开看模型读到的原文;文件超过 maxBytes(默认 64 KiB)时超出部分不会注入。
  • 面板底部还有两行关于项目 AGENTS.md 的状态:本进程同步过哪些项目、最近一次动作(已创建 / 已更新 / 已是最新 / 已移除 / 已跳过 / 失败),以及「写入项目的区块」预览。

配置

配置写在行里。默认值如下(也就是本包的 cordis.patch.yml):

- id: global-prompt
  config:
    enabled: true
    # file: ~/.dsh/global-prompt.md       # 默认 $DSH_HOME/global-prompt.md;支持 ~ / ~/ / ~\
    order: -900
    text: ''
    maxBytes: 65536
    escapeBraces: true
    announcePaths: true
    # instructionsFile: ~/.dsh/AGENTS.md  # 默认 $DSH_HOME/AGENTS.md;'' 表示不提
    includeInstructions: false
    pathsNote: ''
    syncProjectAgents: true
    # projectAgentsFileName: AGENTS.md    # 写进项目根的这个文件;只能是文件名
    # projectRootMarkers: ['.git']        # 向上找项目根用的标记
    # projectAgentsFallback: cwd          # 找不到标记:cwd 写会话目录本身 / skip 不写
    # projectAgentsPreamble: 'Global rules — follow these in every task in this project:'
字段默认值含义
enabledtrue总开关。false 时不注册段落、也不写项目 AGENTS.md(面板路由仍在,方便你先写好内容再打开)
file$DSH_HOME/global-prompt.md提示词文件;相对路径按进程工作目录解析
order-900段落位置。-1000 是 harness 身份行,0 是部署 persona 前缀,500 是 plan 策略;越小越靠前
text''仅当文件不存在时使用的兜底文本
maxBytes65536注入内容的 UTF-8 字节上限,超出部分截断(面板会提示)
escapeBracestrue中和文本里的 {{(见下);只影响系统提示词那条通道
announcePathstrue在末尾附加「文件位置说明」,写出下面两个文件的绝对路径(模型不必再找)
instructionsFile$DSH_HOME/AGENTS.mddsh 自己的用户全局指令文件;用于位置说明。设为 '' 则完全不提它
includeInstructionsfalse把该文件的内容也并进这一段。默认关闭,因为 base 系 profile 里 dsh-agent-instructions 已经它会作为上下文注入;只有在没有挂那个插件的组装(比如自建 sdk-minimal)里才需要打开
pathsNote''自定义位置说明文案(原样使用、不支持占位符)。留空则用生成的英文说明
syncProjectAgentstrue把提示词同步进会话项目的 AGENTS.md(见上)。false 只保留系统提示词那条通道
projectAgentsFileNameAGENTS.md项目文件的名字,只能是裸文件名(想写 CLAUDE.md 就改这里)
projectRootMarkers['.git']向上找项目根时的标记名;标记文件或目录都算
projectAgentsFallbackcwd一路没找到标记时:cwd 用会话工作目录本身,skip 干脆不写
projectAgentsPreambleGlobal rules — follow these in every task in this project:区块开头那行给模型看的指令,原样写入;'' 只留正文

想覆盖某项时,在 profile 的 ~/.dsh/profiles//cordis.patch.yml 里按 id 改——patch 会整体替换该行的 config,所以要写全:

- id: global-prompt
  config:
    enabled: true
    order: -1100        # 放到身份行之前
    file: ~/.dsh/my-global-prompt.md
    text: ''
    maxBytes: 65536
    escapeBraces: true
    syncProjectAgents: true
    projectAgentsPreamble: '全局规则,本项目所有任务都必须遵守:'

关于 escapeBraces(重要)

系统提示词段落会把 {{name}} 当作变量插值,遇到未注册的变量名会抛错并中断这一轮,而且没有转义语法。所以如果你会在全局提示词里写 JSON、模板、{{placeholder}} 这类内容,保持 escapeBraces: true(默认):插件会把每个 {{ 中间插入一个零宽空格(模型看不到,人眼也看不到),插值就不会命中。确实需要原样注入时才设为 false。