dsh-prompt-balance:用字節數看清 system prompt 構成,並把操作協議放在規則塊之前

前言

在 DeepSeek Harness(DSH)裏跑長期智能體時,規則會不斷疊加:AGENTS.md、工作區策略、模板說明、數據安全附錄往往疊在一起,卻很少有人量過最終拼出來的 system prompt 裏各佔多少。README 裏舉過一種真實拆分:約 65% 是規則、約 10.7% 是身份——模型第一眼看到的往往是十幾 KB 的「不要」,而「爲誰工作、什麼叫做得好」幾乎被擠到後面。

沒有數字,討論 prompt 質量很難落地;「感覺太臃腫」改不動,「規則佔 64,902 字節裏的 42,331,且排在最前」纔有依據。順序同樣重要:同樣一條指令,放在組裝結果靠前處,比埋在約束牆後面權重更高。

下面介紹社區插件 dsh-prompt-balance(維護者 penghao73551,分類:模型推理)。它在 DSH 上掛兩個 hook、無構建步驟、無運行時依賴,用來測量各 section 的字節佔比,並在規則類 section 之前插入一段可配置的 operator-protocol,同時在 agent 每步前補一段身份摘要,減輕 AGENTS.md 被上下文壓縮「摺疊」後身份幀丟失的問題。

這是什麼

dsh-prompt-balance 的定位是:Measure what your system prompt is actually made of — then make sure the model reads the operating protocol before it reads the prohibitions(先量清 system prompt 的構成,再讓模型先讀操作協議、後讀禁止項)。

插件通過 Cordis patch 接入 DSH,當前 package 版本爲 1.0.0,許可證 MIT。社區目錄頁:https://www.skillhub.cn/plugins/penghao73551/dsh-prompt-balance;源碼與說明:https://github.com/penghao73551/dsh-prompt-balance。SkillHub 爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係;安裝前建議自行查看倉庫源碼與許可證——插件以當前 DSH 進程權限運行。

核心功能

插件只做兩件事,對應兩個 hook:

Hook 作用
system-prompt/assemble 把每個 section 的字節大小寫入 ~/.dsh/prompt-balance.log;在所有規則類 section 之前 prepend 一段較短的 <operator-protocol>。冪等:不會重複疊第二層 gate。
agent/pre-step AGENTS.md 會以普通消息進入上下文,壓縮時可能被摘要掉細節;本 hook 在指令前加約 250 字節的身份 digest,讓「爲誰服務」這一幀在 fold 之後仍保留。

日誌裏的 rules 是對名稱匹配 instruction|agents|workspace|memory|rule 的 section 字節求和;若宿主命名不同,該比例僅供參考,應看 top= 列表裏的 section 名與字節。

安裝與啓用

官方安裝命令如下(來自 README,勿自行拼接 github:owner/repo):

dsh plugin --profile desktop add dsh-prompt-balance

若要先試本地目錄,可使用 link 形式(路徑改爲你本機絕對路徑):

dsh plugin --profile desktop add link:/absolute/path/to/dsh-prompt-balance

安裝後重啓應用。插件會在安裝時寫一行日誌、每次 assemble 再寫一行,可用下面命令確認是否生效:

tail -f ~/.dsh/prompt-balance.log

卸載:

dsh plugin --profile desktop remove dsh-prompt-balance

日誌文件仍留在 ~/.dsh/prompt-balance.log,需要可自行刪除。

配置

默認身份塊是佔位內容;gate 要發揮作用,需要在 ~/.dsh/prompt-balance.json 裏寫真實身份與檢查項。兩個鍵彼此獨立、均可選:

  • identity:字符串數組,用換行拼接;用於 gate 與 pre-step digest。
  • gate:字符串數組;第一行是 framing,其餘爲編號檢查項。

刪除該 JSON 即恢復默認。插件不會改寫你的其它 DSH 配置,除上述文件外無可配項。

示例(結構與 README 一致,內容請按你的場景改寫):

{
  "identity": [
    "I am the assistant to one person: a regional manager running a multi-city store network",
    "Their output is analysis, slide decks, and operating ledgers.",
    "",
    "Their five recurring failures: claiming done without verifying, coarse self-review,",
    "pasting parts without classifying them, skipping workflow steps, acting before review.",
    "",
    "So: concrete things first, structure second; every conclusion carries its source;",
    "find the flaws yourself before shipping."
  ],
  "gate": [
    "You serve one person, not a ticket queue. Six checks before you answer:",
    "1. Enumerate before you abstract...",
    "2. Specific beats categorical..."
  ]
}

日誌裏能看到什麼

典型一行 assemble 日誌類似:

[2026-10-30T07:12:51.902Z] assemble: sections=30 in=19805B out=20862B gate=1057B rules=12943B (65.4%) top=genui:fence:5068 dsh-taste-skill:2949 identity:2402

in / out / gate 均爲字節數,可單獨覈算 gate 成本。pre-step 行會標明 instructions 字節是否因 digest 發生變化。

兼容性與注意

  • DSH kernel 0.2.1-rc.* 及更高;README 說明已與 @deepseek-ai/dsh-system-prompt 的 waterfall 三參數 (assembly, context, next) 對齊,錯誤的多參數 handler 會導致 next is not a function 並拖垮工具調用。
  • Node 20+;無運行時 npm 依賴。
  • import 階段不拋錯:加載失敗時桌面端會走恢復對話框,插件內部步驟會包一層並寫入日誌。

適合:已經在 DSH desktop profile 上跑 agent、且 system prompt 由多段規則拼裝的開發者——需要先量化再談裁剪與順序,並願意維護 prompt-balance.json 裏的身份與 gate 文案。

不適合:期望插件自動改寫 AGENTS.md 或全局 DSH 配置的用法;本插件只測量、prepend gate、pre-step 補 digest。

結尾

dsh-prompt-balance 把「prompt 裏規則佔比多少、誰排在最前」從感覺變成日誌裏的字節與 section 名,再用可配置的 operator-protocol 把操作協議挪到規則塊之前,並用 pre-step 身份 digest 對抗長對話裏的上下文摺疊。若你在 Harness 生態裏做模型推理與 agent 編排,可從目錄頁或 GitHub 安裝,用 tail -f ~/.dsh/prompt-balance.log 觀察第一次 assemble 的構成再決定是否寫 ~/.dsh/prompt-balance.json。

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

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

小夜