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 为准。

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

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

小夜