dsh-permission-rules 使用指南
在 DSH 工具调用前立一道 YAML 规则闸门,按工具名/参数/路径/Agent/网络目标产生 allow/deny/ask;本地代理管控出网,全程只读审计。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-permission-rules
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add dsh-permission-rules
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
deny阻断调用;规则的reason成为模型可见的错误。ask走官方审批接缝(挂载dsh-auto-review用第二模型作答,或由人作答;两者皆无时 harness 失败关闭)。allow(及未命中)严格经next()委托——下游监听器绝不会被短路。- 丰富匹配 —— 工具名 glob(含
mcp__*)、agent 身份选择器(main/subagent/preset:*)、参数键/值 glob 或 正则(含!pattern取反与absent键维度)、任意嵌套深度的工作区相对路径 glob,以及when宿主条件(环境变量、平台)。 - 分层规则文件 —— 可选
searchUp从会话 cwd 到文件系统根合并每个.dsh/rules.yaml,就近优先。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
装上之后还需要做什么?
安装后必须重启 profile 才会挂上 id: permission-rules 行;想要规则真正生效,再在工作目录下放一份 .dsh/rules.yaml(或通过 fallbackPath 配置一个全局兜底文件)即可,没规则文件就等同于"全部放行"。
跟 dsh-auto-review 是什么关系?要一起装吗?
两者是分工互补:本插件产出 ask(让出审批通道),dsh-auto-review 在审批通道上挂第二个模型做裁决;只装本插件时,ask 走人类审批或 host 默认行为,两边都装才形成"规则筛选 + 模型复核"的闭环。
想先观察新规则会不会误伤怎么办?
在 cordis.yml 里把这个插件的 enforce 临时设成 false 进入 dry-run 模式:deny/ask 命中只写带 dryRun 标记的审计日志、不阻断调用,所有事件照常流向下游。
写错了 YAML 会发生什么?
默认 badFilePolicy: 'fail'——当前等待执行的工具调用直接报错;HMR 热重载场景下保留上一次成功加载的规则、绝不崩;如果想宽容一点,改成 ignore-with-warning 即可记录警告并按空规则继续。
网络策略默认是怎么走的?
默认 network.enabled: true 且 network.mode: 'auto',会自动跟随官方沙箱预设(只读→全禁、工作区写入→白名单、danger-full-access→全放);host 没接沙箱服务时回落到 autoFallback(默认 allow-all),可以手动改成 deny-all/whitelist/allow-all 写死。
为什么装上后审计日志里看不到事件?
0.1.0-rc.6 及之前的 host 会丢弃 ignorable 标记,导致审计事件不带标记、破坏会话在新 host 上的恢复,插件会主动降级为不开会话日志审计并打印一次性警告;如果确实要在旧 host 上保留审计,把 allowUnmarkedAudit: true 设上、但旧日志可能需要 scripts/repair-session-logs.mjs 修一遍。
怎么看到当前生效的规则和最近决策?
在会话里跑 /rules 列出来源与命中行,/rules reload 强制重新加载当前工作区的规则链,/rules decisions [n] 看最近 n 条本会话决策(默认 10 条),/rules test <tool> <json> 还能干跑一次规则比对。
怎么卸载?
一行 dsh plugin --profile web remove dsh-permission-rules 即可,事务式卸载,不影响 profile 之外的其它插件或会话状态。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.8+(peerDependencies 全家桶锁
>=0.1.0-rc.8 <0.2.0,dshWorkshop.compatibility.dshVersions 列出 rc.5/rc.7/rc.8) - Node: ^22.19.0 || >=24.0.0(package.json#engines.node)
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则