dsh-baize-rules:在對話開始時注入持久化的行爲約束

前言

DeepSeek Harness (DSH) 的設計理念是“一切皆插件”。在實際使用中,經常會遇到需要模型記住長期約束的情況,例如“本次會話必須用中文寫註釋”或“禁止修改現有的測試用例”。這些要求往往需要跨輪次持久化。

dsh-baize-rules(Baize)是一個 DSH 插件,旨在解決這一問題。它將用戶設定的持久化“必須做/禁止做”要求,以純文本規則的形式,在對話開始時注入到模型請求中。

核心功能

該插件提供了一套完整的規則管理機制:

  1. 三重作用域,全部注入
    規則分爲 global(全局,所有會話生效)、session(當前會話)和 project(當前工作目錄)三個作用域。無論規則存儲在哪裏,只要處於激活狀態,都會被注入到模型中。

  2. 持久化存儲
    所有規則數據均寫入 $DSH_HOME(默認爲 ~/.dsh),支持跨會話和重啓後保留。

  3. 特定性優先
    渲染順序爲 project > session > global。當上下文預算有限時,更具體的規則優先被保留。

  4. 容錯機制
    規則文件讀取具備容錯性。如果某個作用域的文件損壞或被手動編輯破壞,該作用域會被置爲空,並給出警告,而不會導致整個對話流程中斷。

  5. 去重與長線程保持
    通過 SHA-1 哈希抑制重複注入。在會話生命週期變化(如啓動、恢復、清除、壓縮)或規則文本更新後,會自動重新發布規則快照,確保長對話中規則不被遺忘。

  6. 安全防護
    規則內容中的特殊字符(如 </system-reminder>)會被轉義,防止用戶文本意外關閉插件注入的框架。

  7. 統一數據源
    命令行接口(CLI)與 Web UI 共享同一套存儲核心,確保狀態一致。

  8. 標籤與模板
    規則支持標籤(如 #frontend),用於 UI 篩選。標籤默認不消耗模型上下文預算,除非開啓 injectTags 選項。支持將常用規則保存爲模板,應用模板會生成內容副本,後續模板修改不影響已應用的規則。

  9. 衝突安全寫入
    寫入時攜帶文件版本號,如果檢測到文件在他處被修改,寫入操作會被拒絕並提示重試,避免數據丟失。

安裝與啓用

通過 npm 安裝插件到指定的 profile(默認 web profile):

dsh plugin --profile web add dsh-baize-rules@0.2.4

如果 DSH 由 pm2 管理,安裝後需要重啓進程以加載新插件:

pm2 restart dsh

典型用法

插件提供了完整的 CLI 命令集進行管理:

  • 查看當前規則:
    /baize-rules
這等同於列出所有作用域的規則。
  • 添加規則(默認添加到 session 作用域):
    /baize-rules add Write comments in Chinese.
  • 添加全局規則:
    /baize-rules global add Don't delete or rewrite existing tests.
  • 列出特定作用域:
    /baize-rules list project
  • 編輯、禁用、啓用規則:
    /baize-rules edit <id>
    /baize-rules disable <id>
    /baize-rules enable <id>
  • 切換默認作用域:
    /baize-rules scope global
  • 清除規則:
    /baize-rules clear session

適用場景與注意

適用場景:
- 個人習慣的強制約束(如語言、格式)。
- 跨項目的通用規則。
- 單個會話內的臨時約束。

與 AGENTS.md 的區別:
DSH 自帶 @deepseek-ai/dsh-agent-instructions 插件,讀取工作區的 AGENTS.md。dsh-baize-rules 與其互補:前者適合項目級、版本控制、團隊共享的約定;後者適合個人、跨項目或特定會話的需求。兩者都通過 user/message 注入,並共享相同的優先級機制。

重要注意:
- 規則是純文本,不強制使用 must/mustNot 標記,由內容語言本身表達含義。
- 若當前沒有激活的規則,則不會注入任何內容。
- 插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證。

結語

dsh-baize-rules 爲 DSH 用戶提供了在對話層面管理模型行爲的工具。通過將規則作爲持久化的 user/message 注入,它解決了長期約束記憶的問題,使模型行爲更加可控。

  • 目錄頁:https://www.skillhub.cn/plugins/bvcvb/dsh-baize-rules
  • GitHub:https://github.com/bvcvb/dsh-baize-rules
羽毛球分组比赛记分
小程序二维码

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

小夜