前言¶
DeepSeek Harness(DSH)是面向智能體開發者的提示詞工程與運行時管理工具。在多插件協作場景下,宿主自身的身份段與其它 bundle 的提示詞段經常互相覆蓋、衝突。如果不想修改 DSH 源碼,又希望在每次請求中注入統一的身份與規則,就需要一個能動態接管系統提示的 bundle。menghuanshiguang/dsh-sunder 就是爲此設計的 DSH 插件:它通過註冊三段提示詞與訪問器守衛,把指令層面的控制權交給你,而不是宿主默認行爲。
它是什麼¶
dsh-sunder 是一個 DSH bundle(插件),由維護者 menghuanshiguang 開源,當前版本 1.6.1,在 GitHub 上有 1 個星標。它通過三個提示詞段(sunder:identity、sunder:rules、sunder:footer)和一組 sunder_* 工具,在每輪請求中動態注入身份聲明、規則與公告,並防止其它插件整段替換導致控制權丟失。它不修改 DSH 源碼,不掃描項目目錄,不提權或繞過審批,只改動內容層的提示詞。
核心功能¶
三段提示詞與預設¶
插件註冊三段提示詞,分別佔據系統提示的首段、工具段之後、以及整份提示的末尾。規則段提供 full、concise、dev 三檔預設,分別對應完整規則、壓縮規則(約 60% 長度)與開發模式附加段。通過 preset 配置項選擇,不改變三段在提示詞中的順序。
關閉宿主身份段¶
bundle patch 會把宿主的 system-prompt 的 includeHarnessIdentity 置爲 false,避免默認身份聲明與 Sunder 段互相打架,讓 Sunder 的身份聲明排在第一位。
防止被整段替換¶
插件給 systemPrompt.assemble 裝了一層訪問器守衛(guard)。每次組裝後,它補齊缺失的 sunder:* 段;當其它插件用 complete: true 整段替換時,Sunder 用三段整體替換那一段,而不是與它共存。守衛失效時還有 system-prompt/assemble waterfall 兜底。
公告中心¶
插件從遠端 feed 拉取公告,支持鏡像鏈兜底。網絡不通時使用隨包的 announcements.json。未讀公告以運行期上下文的形式進入當輪提示,也可逐條確認。公告是純文本,只做字符串投影,不當作代碼執行。
每輪規則卡¶
每個請求輪次的第一次請求,插件會把一段精簡規則卡(約 100 字)作爲真實 user 消息追加到本批輸入末尾。這條消息排在運行期上下文快照之後、模型回答之前,任何 scope、complete 段、歷史壓縮都無法挪動或刪除它。同一 turn 不會重複注入。
更新檢查與安裝¶
插件會檢查 GitHub Releases,緩存 6 小時。發現新版本時,會在當輪提示裏帶一句提醒。需要時調用 sunder_update action=apply 直接安裝新版本,它會先快照、校驗包名,再寫安裝目錄。
可觀測工具¶
插件註冊 sunder_status、sunder_config、sunder_prompt 三個工具,分別返回版本、生效配置和最終提示詞文本。DSH 設置頁有一個只讀的 Sunder 分區與未讀公告橫幅。所有持久化數據在一個 JSON 文件裏。
安裝與啓用¶
一鍵腳本(推薦)¶
在倉庫根目錄執行:
node scripts/install.mjs # 安裝到 $DSH_HOME/profiles/desktop
node scripts/install.mjs -p D:\some\profile # 指定其它 profile
node scripts/install.mjs --dry-run # 只看計劃,不寫文件
node scripts/install.mjs --uninstall # 卸載
腳本會在 <profile>/node_modules/dsh-sunder 建 junction 指向本倉庫,在 <profile>/package.json 的 dependencies 寫入 "dsh-sunder": "link:<倉庫路徑>",並把 dsh-sunder 追加到 dsh.profile.bundles。
手動掛到 profile¶
在 profile 的 package.json 裏添加依賴,並加入 bundles 列表:
{
"dependencies": {
"dsh-sunder": "link:D:/dsh/sunder"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-sunder"
]
}
}
}
然後在 profile 目錄執行 npm install 或 pnpm install,再重啓 DSH。
安裝後確認¶
啓動日誌裏應出現類似 [dsh-sunder] v1.6.1 active — language=zh, preset=full, think_header=on, fake_history=on, prompt sections registered, guard=on 的信息。在會話中調用 sunder_status,能看到 placements=sunder:identity@-100000,sunder:rules@10150,sunder:footer@10300。狀態文件出現在 $DSH_HOME/sunder/state.json。
典型用法¶
驗證安裝¶
在會話裏調用 sunder_status,返回裏應出現 dsh-sunder 1.6.1、preset=full、guard=on。
修改預設¶
在 profile 的 cordis.patch.yml 中配置 preset:
- id: sunder
name: dsh-sunder
inject: [systemPrompt]
config:
preset: concise
language: zh
重啓 DSH 後,規則段長度會變爲約 full 的 60%。
注入自定義文本¶
在配置中添加 extraPrompt:
- id: sunder
config:
extraPrompt: |
本機沒有外網,別建議我查在線文檔。
這段文本會追加到規則段末尾。
手動檢查更新¶
在會話中調用:
sunder_update action=apply
插件會檢查 GitHub Releases,發現新版本時自動安裝。
適用場景與注意¶
適合需要統一身份聲明與規則約束、不想修改 DSH 源碼的智能體開發者。插件以當前 DSH 進程的權限運行,安裝前應檢查源碼與許可證。它只改動提示詞內容,不涉及文件讀寫、工具調用、沙箱與審批策略,也不轉發模型流量。
短結尾¶
dsh-sunder 通過三段提示詞與訪問器守衛,把指令層面的控制權交給你,而不是宿主默認行爲。它提供預設、公告中心、每輪規則卡與更新檢查,是 DSH 生態中一個專注於內容層的實用 bundle。
參考鏈接¶
- 插件目錄:https://www.skillhub.cn/plugins/menghuanshiguang/dsh-sunder
- GitHub 倉庫:https://github.com/menghuanshiguang/dsh-sunder