dsh-rules-paths:爲 DeepSeek Harness 添加 Claude Code 風格的路徑規則注入

在 DeepSeek Harness (DSH) 的生態中,通過插件擴展能力是核心設計理念。處理大型項目時,模型往往難以憑空記憶所有文件的具體規範。dsh-rules-paths 插件實現了類似 Claude Code 的 paths: 規則注入機制:當模型成功讀取某個匹配規則的文件時,該規則的正文會被注入到模型的上下文中。它基於 DSH 官方的 @deepseek-ai/dsh-agent-instructions 機制,支持 SHA-1 去重和字節預算控制。

核心功能

  • 預設作用域、可選激活:插件不會在配置文件級別自動掛載,必須通過 agent 預設引用才能激活。系統自帶的四個預設(standard / code / minimal / cordis)默認忽略該插件,新會話只有在選擇的預設包含相關行時纔會生效。
  • 路徑規則:規則文件通過 YAML frontmatter 聲明 paths: glob 模式。一旦模型成功執行 read 操作匹配到文件,規則正文會在下一個步驟邊界被注入。
  • 全局與項目規則:沒有 paths 的規則會被視爲全局規則,在會話開始時注入;開啓 rulesDirProject 後,插件還會掃描項目根目錄下的 <projectRoot>/.dsh/rules 和 <projectRoot>/.claude/rules。
  • 去重與預算:同一會話內,內容未變的規則不會重複發送;內容變更時發送 replace 指令。注入的消息受 maxBytes 限制,超出時會截斷並報告 budget 消耗情況。

安裝與啓用

此插件要求 DSH 0.1.0-rc.x (Web profile)。安裝分兩步:先將包安裝到 profile 的 node_modules,然後從預設中激活。

1. 安裝插件包

插件發佈在 GitHub 倉庫,而非 npm registry。使用以下命令安裝:

dsh plugin --profile web add git+https://github.com/Temoa/dsh-rules-paths.git

安裝後,包會位於 node_modules/@temoa/dsh-rules-paths/,但此時並未激活,因爲沒有預設引用它。

2. 在預設中激活

由於系統自帶預設是隻讀的,你需要複製一個預設進行編輯。在 Web UI 中打開 Settings → Agent Presets,複製 standard 或其他預設。在複製的預設的 agent.cordis.yml 中添加如下行:

- id: rules-paths
  name: '@temoa/dsh-rules-paths'
  config:
    rulesDir: "~/.dsh/rules"
    rulesDirProject: true

修改完成後重啓 Harness。在新建的空白會話中選擇該預設,插件即生效。已有內容的會話不支持切換預設。

配置與用法

規則文件結構

規則文件通常位於 ~/.dsh/rules/*.md(可通過 rulesDir 配置)。每個文件對應一條規則,包含 YAML frontmatter 和規則正文。

---
paths:
  - "**/*.dart"
  - "lib/**/*.ts"
description: Dart conventions (optional, metadata only)
---

Rule body: guidance the model follows after reading a matching file.

配置參數

插件支持以下配置項(rulesDirProject 默認爲 false):

Key Default Meaning
rulesDir ~/.dsh/rules 用戶級規則目錄(~ 會展開)
maxBytes 65536 單條注入消息的字節上限
maxSourceBytes 1048576 單個規則文件允許讀取的最大字節數
rulesDirProject false 是否掃描項目根目錄下的 .dsh/rules 和 .claude/rules

工作原理

插件在模型執行 read 工具成功後,會執行以下邏輯:
1. 掃描配置的規則目錄。
2. 將讀取的文件路徑與規則中的 paths glob 進行匹配(同時匹配絕對路徑和相對路徑)。
3. 將匹配的規則正文渲染爲單條用戶角色消息,進行 SHA-1 去重和字節預算檢查後,摺疊進 agent/pre-step。

注意事項

  • 權限與重啓:編輯預設後必須重啓 Harness。規則文件本身修改後無需重啓,會在下次匹配或全局 reconciliation 時生效。
  • 輸入信任度:規則內容被視爲不可信輸入,僅作爲文本處理,不會執行。
  • 生態說明:本插件由社區用戶 Temoa 維護,與 DeepSeek 或 SkillHub 無官方隸屬關係。

GitHub 倉庫

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

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

小夜