dsh-strict-rules:爲 DeepSeek Harness 注入全局行爲規則

前言

在 DeepSeek Harness(DSH)裏做智能體或長會話開發時,常見做法是每次開新任務都在系統提示或開場白裏重複同一套約定:先澄清需求再改代碼、交付文檔前別帶着明顯 AI 腔、預算夠就先把調查做全。規則寫在腦子裏或文檔裏,模型並不一定會穩定執行;子代理、工具調用和 present 交付又各自走不同路徑,單靠提示詞很難「硬」住。

下面介紹社區插件 dsh-strict-rules(維護者 ymz001130,GitHub 分類爲工作流)。它把「先問後做、未答重問、交付前潤色、邊做邊確認、Token 預算不設限」等約定寫進 DSH 插件體系:系統提示注入、斜槓命令、工具 pre-execute/execute 門禁與會話狀態持久化一起用,目標是在不依賴你每回合重複強調的前提下,讓行爲儘量一致。插件可在 DSH 插件管理器中識別、啓停和卸載;社區目錄頁見 skillhub.cn/plugins/ymz001130/dsh-strict-rules,源碼與說明見 github.com/ymz001130/dsh-strict-rules。

這是什麼

dsh-strict-rules 是 DSH 的全局行爲規則插件(當前 package 版本 0.2.3,MIT 許可證,engines.dsh 要求 >=0.2.0-rc <0.3.0-0)。README 記載的真實運行驗證環境爲 DSH 0.2.1-rc.5(桌面版)與插件 0.2.3。

它解決的核心問題是:把用戶預設的工作流規則變成「默認加載 + 可開關 + 部分步驟可機械攔截」,而不是隻在對話裏口頭約定。

六條規則與實現方式

README 用表格概括了六條規則;下面按同一事實展開,便於對照源碼目錄 lib/ 中的職責劃分。

規則 行爲 實現方式
R1 先問後做 新任務先用 ask_user_question 至少兩輪提問,完成前不允許動手 系統提示規則 + 每回合近距提醒 + tools/pre-execute 硬門禁
R2 不明確就問 有歧義先問;提問被取消/中斷會原樣重問同一問題 提示規則 + tools/execute 包裝重試(指數退避、不設上限,按用戶選擇)
R3 交付前潤色 Word/PPT/PDF/Excel 交付前必須做一輪去 AI 痕跡潤色 提示規則 + present 前內容哈希校驗門禁
R4 永久生效 所有會話和子代理自動適用;/rules 可查看/臨時停用 全局 system prompt section + /rules 命令
R5 邊做邊確認 工作中出現新疑惑或發現可改進之處,先問詢確認再繼續 提示規則 + 每輪提醒中的近距提醒
R6 不省 Token 用戶已聲明用量 unlimited、預算無上限;不因省 Token 省略調查/驗證/測試/輪次,不截斷交付物 系統提示規則(含用戶原話)+ 每輪提醒中的近距提醒

R1 先問後做

新任務或需要動手的輸入,先走兩輪提問:

  1. 第 1 輪:目標、對象/範圍、輸入、期望輸出、約束與禁忌、驗收標準。
  2. 第 2 輪:複述理解並請用戶確認,再補問新發現的歧義。

完成提問前,寫文件、改文件、執行命令、啓動子代理、交付文件等動手工具會被攔截;只讀調查與提問放行,未知第三方工具默認也攔截。用戶說「直接做/別問了」或只是「繼續/好的/謝謝」時不強制提問;「不要直接做,先問我」這類否定句仍按任務處理。子代理不向用戶提問,不明確處寫入報告,由父代理統一詢問。

R2 不明確就問

任何會影響結果的歧義先問。用戶取消或提問中斷時,插件自動用同一組問題重問(指數退避、按用戶選擇不設次數上限;/rules off 是唯一剎車)。整個回合被用戶 Stop 時,無法在同一回合內重問。

R3 交付前潤色

文檔經 present 交付前,必須實際改寫文件內容:先按清單自檢,再逐段重寫有問題的段落,保留事實、數據、引用、結構。

首次交付某內容會被攔截,攔截信息會寫明「已記錄基線 + 哈希前 8 位」,並說明這是預期流程;改寫保存(內容哈希變化)後再 present 才放行。改寫完也可先調用工具 rules_mark_polished 登記(只記在插件狀態與審計裏,不會改動文檔),隨後一次 present 可直接放行。登記後若又改了文件,需重新潤色並重新登記。若文件確實無法改寫(如掃描版 PDF),連續 4 次內容未變化後門禁放行並寫入審計。

R4 永久生效與開關語義

規則對所有會話和子代理生效。/rules status 查看總開關、提問進度、待潤色文檔;/rules off 臨時停用強制執行與提醒(規則文本仍在系統提示中);/rules on 恢復;開關持久保存。

插件管理器裏禁用本插件 = 完全停用(不加載、規則文本也不再注入),與 /rules off 語義不同;禁用或卸載後需重啓 DSH 生效。

R5 邊做邊確認

執行中若對新意圖有疑惑,或發現用戶方案/當前做法有可改進之處,先問詢再繼續。影響下一步的立即問;不影響當前步驟的可在自然停點合併提問。用戶否決後按用戶決定執行,不重複同一建議。

R6 不省 Token

插件把用戶「unlimited、預算無上限」類原話放進系統提示,要求不因 Token 顧慮省略調查、驗證、測試與輪次。R6 不改變 R1–R5,也不改變工具權限、沙箱與審批策略;README 明確說明它不會改變模型服務端真實的計費或配額限制(如果存在)。

插件管理器可見性

按 DSH 插件元數據約定,管理器(設置 → 插件)顯示 行爲規則 / Strict Rules(來自 locale/zh.json、locale/en.json 的 meta.title / meta.description),帶 icon.svg,可見語義化版本並支持啓停、卸載。

安裝與啓用

README 給出的安裝方式如下(路徑中的 <本插件目錄> 需替換爲實際克隆或解壓目錄;資料未提供 dsh plugin add github:owner/repo 一類命令,此處不臆造)。

在 Windows 上可用安裝腳本:

powershell -ExecutionPolicy Bypass -File "<本插件目錄>\install.ps1"

或使用 DSH 自帶 CLI 手動加入 desktop profile:

& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "<本插件目錄>"

安裝完成後重啓 DeepSeek Harness 加載最新代碼。插件以當前 DSH 進程權限運行;安裝前應自行檢查源碼與 MIT 許可證,確認符合你的環境與安全策略。

卸載:

powershell -ExecutionPolicy Bypass -File "<本插件目錄>\uninstall.ps1"

然後重啓 DSH。運行時數據在 %DSH_HOME%\strict-rules\(默認 C:\Users\<你>\.dsh\strict-rules\),可手動刪除。

典型用法

斜槓命令

  • /rules 或 /rules status:查看總開關、當前回合提問進度、待潤色文檔;命令會出現在斜槓命令列表。
  • /rules off、/rules on:全局停用/恢復強制執行與提醒,重啓後保留最後一次狀態。

潤色登記工具

Agent 完成文檔潤色後可調用 rules_mark_polished,參數 path(文檔路徑)和可選 note;標記只存在插件內存狀態與審計中,文檔本身不變。

審計

門禁攔截、提問輪次、重問、潤色、放行、開關操作記錄在:

%DSH_HOME%\strict-rules\audit.ndjson

默認路徑爲 C:\Users\<你>\.dsh\strict-rules\audit.ndjson。

適用場景與已知邊界

適合誰:希望在 DSH 桌面版(README 驗證爲 0.2.1-rc.5)上長期固定「先問後做 + 文檔 present 前潤色 + 子代理繼承同一套規則文本」的工作流開發者;需要可審計、可 /rules off 臨時鬆綁的場景。

務必瞭解的邊界(README「已知邊界」節,不是完美強制):

  • 攔截對象是工具調用。PTC 模式下 run_code 在程序內部直接讀寫文件(不經工具)無法攔截,只能靠系統提示約束。
  • 未通過 present 的交付(例如在回覆裏直接給路徑)無法機械校驗潤色。
  • 未知 MCP/第三方工具在提問完成前默認攔截;確屬只讀且必須用時,可先 /rules off,或將工具名加入 lib/policy.js 的 SAFE_TOOL_NAMES。
  • 提問期間 pwsh 僅放行文檔列出的只讀命令與只讀管道;寫命令、重定向、分號等仍攔截。
  • 提問期間 python 僅放行內置 lib/readonly_probe.py 與 %DSH_HOME%\strict-rules\readonly-scripts.json 裏登記的絕對路徑 .py 腳本。
  • 子代理不觸發硬門禁(避免無法向用戶提問而死鎖),規則文本仍注入系統提示。
  • agents 服務不可用或歸屬未知時不啓硬門禁。

維護方面,README 描述更新流程:update.ps1 做語法檢查、34 項 node --test 迴歸、重建發佈包並提示重啓;行爲變更升次版本、修 bug 升補丁版本。

結尾

dsh-strict-rules 把 DSH 會話裏反覆口述的行爲約定,拆成提示注入、斜槓命令、門禁與審計幾條可運維的線;適合需要「默認嚴格、可查看狀態、可臨時關閉」的團隊或個人工作流。進一步細節以倉庫 README 與 CHANGELOG.md 爲準。

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

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

小夜