前言¶
DeepSeek Harness (DSH) 的原生機制在全局層只讀取單一的 AGENTS.md 文件,而項目層支持遍歷多個候選文件。這種不對稱導致全局規則無法像項目規則那樣靈活拆分,往往只能堆砌在一個文件中。
dsh-global-rules 插件通過多文件拆分與設置頁 GUI,填補了這一空白。它允許將全局規則拆分爲獨立的 markdown 文件,並提供可視化的管理界面,解決了全局指令維護困難的問題。
核心功能¶
本插件主要實現以下能力:
- 多文件拆分:在
$DSH_HOME/rules/目錄下,每個獨立的 markdown 文件即是一條全局規則。 - GUI 管理:提供設置頁 GUI,支持規則的增刪改、暫停與啓用。
- 優先級排序:支持 P0-P3 四檔優先級。高優先級規則(P0)在注入序列中排在前面,且在預算不足時優先被保留。
- 預算分配:支持按優先級分配預算限制,超出限制的規則會被截斷或省略。
- 安全防護:嚴格的路徑安全防護,防止路徑穿越攻擊;不讀取會話數據,無網絡請求。
安裝與啓用¶
安裝插件需要使用 dsh plugin 命令,安裝後需重啓 host 進程。
dsh plugin --profile web add github:kingzhz/dsh-global-rules
dsh web
注意:host 側代碼在進程啓動時裝載,安裝後必須重啓 DSH。
典型用法¶
文件結構¶
在 $DSH_HOME/rules/ 目錄下放置規則文件,每條規則爲一個獨立的 markdown 文件。文件名支持數字前綴以控制同優先級下的排序。
$DSH_HOME/rules/
├── 01-回答風格.md
├── 02-代碼改動規範.md
└── 03-隱私禁區.md
優先級配置¶
在規則文件的 front matter 中配置 priority 字段來設定優先級。
---
priority: 0
---
# 安全紅線
絕對不執行 rm -rf、不 force push。
| 優先級 | 說明 |
|---|---|
| P0 (0) | 最高優先級,最先注入,預算不足時最後丟棄 |
| P1 (1) | 高優先級 |
| P2 (2) | 默認優先級(不寫即爲此檔) |
| P3 (3) | 最低優先級,最先注入,預算不足時最先丟棄 |
配置參數¶
在 DSH 配置文件中可設置插件的運行參數。
- id: global-rules
name: 'dsh-global-rules'
config:
rulesDir: ~/.dsh/rules # 規則文件目錄
maxBytes: 32768 # 注入文本的總字節上限
maxSourceBytes: 262144 # 單個規則文件的讀取上限
order: 100 # P0 檔的段序號
heading: Global rules # 注入塊的開頭說明
enabled: true # 是否啓用
注意事項¶
- 暫停機制:暫停規則會將文件名重命名爲
.disabled。這意味着操作會留有磁盤痕跡,如果目錄在版本控制下,git status會顯示文件變更。 - GUI 生效:通過 GUI 修改設置或規則後,需要刷新瀏覽器頁面才能看到變化。
- 原生文件:本插件不接管 DSH 原生的
AGENTS.md,兩者可並存。 - 重啓要求:僅支持 host 側代碼在進程啓動時裝載,安裝或修改配置後必須重啓 DSH。