前言¶
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。