dsh-plugin-open-source-first:將開源複用優先原則注入 DSH 系統提示詞

前言

在 DSH(DeepSeek Harness)的開發中,系統提示詞(system prompt)的順序決定了指令的優先級。當前 DSH 0.2.1-rc.2 的內置順序中,persona(order 0)之後是 plan/team 策略(order 500/600),再往後纔是工具引導(order 1000+)。這意味着任何外部插件只要將 section 的 order 設在 0~1000 之間,就能在工具調用之前介入決策流程。

現有插件要麼提供固定規則(如 openharness-core-rule 的五條鐵律),要麼只提供工具(如 dsh-find-plugin 的插件檢索能力),沒有插件將「先搜索、再決策、最後才造」的開源複用優先原則以可配置的方式注入到 system prompt 中。wjc300000000-beep/dsh-plugin-open-source-first 正是爲填補這一空白而設計。

插件定位

這是一款工作流插件,通過在 DSH 系統提示詞中插入一個高優先級 section(order 50),強制執行「搜索 → 三級評估 → 構造」的開源複用優先工序。插件本身是純 host 插件,零運行時依賴,不引入任何 client 或 UI 代碼。它只在真實 agent 裝配時渲染,避免污染非 agent 的 assemble() 調用。

插件維護者爲 wjc300000-beep。插件本身不直接實現搜索或構建功能,而是通過收緊條款引導 agent 優先使用 dsh-find-plugin 提供的 find_dsh_plugin 工具進行插件生態檢索。

核心功能

1. 注入開源複用優先規則

插件通過 ctx.systemPrompt.section({ name, order: 50, text }) 註冊一個全局唯一的 section,名稱默認爲 open-source-first:rule。規則正文定義了三步流程:先搜索現有開源方案,再進行三級評估,最後才決定是否從零構建。這條規則會出現在 persona 之後、plan/team 策略和工具引導之前,確保在工具調用前就先執行「搜索」這一前置工序。

2. 自動檢測與收緊條款

插件會自動檢測 dsh-find-plugin 提供的 find_dsh_plugin 工具。如果檢測到該工具存在,就會追加一條收緊條款,要求「插件生態檢索必須優先使用 find_dsh_plugin」。如果不希望追加此條款,可以在配置中設置 findPluginTool: false。

3. 可審計的注入

注入的規則正文存儲在 lib/index.js 的 RULE_TEXT 常量中。DSH 會把渲染後的 system prompt 寫進會話日誌的 system/message 事件,可以通過日誌確認規則是否被成功注入。插件也提供了集成測試腳本,可以掛載真實的 @deepseek-ai/dsh-system-prompt 服務進行自檢。

安裝與啓用

安裝命令(desktop profile)

桌面版使用應用自帶的 CLI。普通 npm 安裝的 dsh 命令會把 desktop 判爲「由 Electron 應用獨佔管理」而拒絕,因此需要使用應用自帶 CLI。

# 1. 在插件目錄打包
cd dsh-plugin-open-source-first
npm pack                     # 產出 dsh-plugin-open-source-first-0.1.0.tgz

# 2. 用應用自帶 CLI 安裝;--profile desktop 即當前桌面配置
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$DSH" plugin --profile desktop add ./dsh-plugin-open-source-first-0.1.0.tgz

也可以直接安裝目錄(pnpm 會建 link: 依賴):

"$DSH" plugin --profile desktop add /absolute/path/to/dsh-plugin-open-source-first

也可以直接從 GitHub 安裝(倉庫無構建步驟、無運行時依賴):

"$DSH" plugin --profile desktop add github:wjc300000000-beep/dsh-plugin-open-source-first

安裝後需要徹底退出應用(⌘Q)再重開,讓 host 模塊重新加載。

卸載

"$DSH" plugin --profile desktop remove dsh-plugin-open-source-first

然後重啓應用;必要時在 Plugins 頁確認 bundle 已取消選擇。

配置

bundle patch 裏默認已寫入 order: 50。要覆蓋配置,在 ~/.dsh/profiles/desktop/cordis.patch.yml 追加一個按 id 定位的 patch 層:

- id: open-source-first
  config:
    enabled: true
    order: 50
    # sectionName: 'open-source-first:rule'
    # findPluginTool: find_dsh_plugin   # 強制指定;false 關閉收緊條款
字段 默認 含義
enabled true 設爲 false 時不註冊任何 section
order 50 必須爲有限數字;改動後需重載 profile
sectionName open-source-first:rule 全局唯一;與其他插件撞名時改這裏
findPluginTool 自動檢測 字符串:強制使用該工具名;false:不追加收緊條款;不填:檢測 ctx.tools.get('find_dsh_plugin', agent)

典型用法

驗證注入是否生效

在對話框直接問:「系統提示裏有沒有『開源複用優先原則』這條?請複述三步流程。」模型能複述即注入成功(軟約束:注入一定發生,是否嚴格遵守無法 100% 保證)。

查會話日誌

DSH 會把渲染後的 system prompt 寫進會話日誌的 system/message 事件:

S=~/.dsh/sessions/--Users-ether-Documents-deepseek-harness-default-workspace--/<session-id>/session.v4.jsonl.zstd
zstdcat "$S" | grep -c "開源複用優先原則"

跑真實服務集成測試

不啓動應用、不調用 LLM,直接掛載真實的 @deepseek-ai/dsh-system-prompt 服務做裝配:

ELECTRON_RUN_AS_NODE=1 "/Applications/DeepSeek Harness.app/Contents/MacOS/DeepSeek Harness" \
  --expose-internals scripts/verify-in-app.mjs

實測輸出:

OK  live assembly order: deployment:persona-prefix -> open-source-first:rule -> verify:plan-marker -> verify:tool-marker -> deployment:persona-suffix
OK  rule length: 1401 chars

適用場景與注意

這款插件適合需要在 DSH 中強制執行「先搜索、再決策、最後才造」開發流程的開發者。它特別適合以下場景:

  • 需要系統化地降低重複造輪子的團隊
  • 需要可審計的系統提示詞變更流程
  • 已經使用或計劃使用 dsh-find-plugin 進行插件生態檢索的場景

插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。插件採用 MIT 許可證,掛載模式參考 MIT 許可的 openharness-core-rule;規則正文爲本倉庫原創。

生態背景

DSH 的理念是「一切皆插件」,社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件與現有的 dsh-find-plugin 互補而非重複:前者提供 find_dsh_plugin 工具用於實時搜 GitHub dsh-plugin topic,後者通過收緊條款引導優先使用該工具。

如果不想裝插件,還有兩條替代方案:在 ~/.dsh/profiles/desktop/cordis.patch.yml 中覆蓋 system-prompt 的 personaPrefix,或寫進 $DSH_HOME/AGENTS.md 作爲 user 角色的持久上下文。但這兩條都不具備 context.agent gating 和可配置的 order,不適合需要硬約束的場景。

總結

dsh-plugin-open-source-first 通過在 DSH 系統提示詞中插入一個高優先級的 section,將「先搜索、再決策、最後才造」的開源複用優先原則注入到開發流程中。它不提供搜索或構建能力,而是通過收緊條款引導 agent 優先使用 dsh-find-plugin 工具。插件採用純 host 實現,零運行時依賴,安裝後需重開應用才能生效。

插件目錄:https://www.skillhub.cn/plugins/wjc300000000-beep/dsh-plugin-open-source-first
GitHub:https://github.com/wjc300000000-beep/dsh-plugin-open-source-first

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

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

小夜