dsh-global-rules:为 DeepSeek Harness 提供全局规则多文件拆分与 GUI 设置功能

前言

DeepSeek Harness (DSH) 的原生机制在全局层只读取单一的 AGENTS.md 文件,而项目层支持遍历多个候选文件。这种不对称导致全局规则无法像项目规则那样灵活拆分,往往只能堆砌在一个文件中。

dsh-global-rules 插件通过多文件拆分与设置页 GUI,填补了这一空白。它允许将全局规则拆分为独立的 markdown 文件,并提供可视化的管理界面,解决了全局指令维护困难的问题。

核心功能

本插件主要实现以下能力:

  1. 多文件拆分:在 $DSH_HOME/rules/ 目录下,每个独立的 markdown 文件即是一条全局规则。
  2. GUI 管理:提供设置页 GUI,支持规则的增删改、暂停与启用。
  3. 优先级排序:支持 P0-P3 四档优先级。高优先级规则(P0)在注入序列中排在前面,且在预算不足时优先被保留。
  4. 预算分配:支持按优先级分配预算限制,超出限制的规则会被截断或省略。
  5. 安全防护:严格的路径安全防护,防止路径穿越攻击;不读取会话数据,无网络请求。

安装与启用

安装插件需要使用 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              # 是否启用

注意事项

  1. 暂停机制:暂停规则会将文件名重命名为 .disabled。这意味着操作会留有磁盘痕迹,如果目录在版本控制下,git status 会显示文件变更。
  2. GUI 生效:通过 GUI 修改设置或规则后,需要刷新浏览器页面才能看到变化。
  3. 原生文件:本插件不接管 DSH 原生的 AGENTS.md,两者可并存。
  4. 重启要求:仅支持 host 侧代码在进程启动时装载,安装或修改配置后必须重启 DSH。

链接

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

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

小夜