@amaster.ai/dsh-policy

中文文档
0.1.40发布于 2026/11/04MITTypeScriptES Module近 30 天下载 4367

DeepSeek Harness的解说工具调用政策:在工具/预执行门上以平面插件配置表示的配置由配置驱动的允许/拒绝/任务规则(工具名,args模式, shell命令前缀/regex,优先级).

中文使用文档
文档目录10 节
  1. 安装
  2. 配置
  3. 规则字段
  4. 匹配语义
  5. 门盖着什么
  6. 这个 ask 决定
  7. 双子星CLI政策绘图
  8. 警卫
  9. 兼容性
  10. 许可证

@amaster

dsh-policy preview

申报工具调用政策 深层空间( dsh): 配置驱动 allow 编号 : deny 编号 : ask 规则dsh's tools/pre-execute gate ——双子座 CLI 的 TOML 政策文件的语义,表达为平面插件配置(Schemastery-valided YAML,没有代码,没有规则文件).

安装

dsh plugin --profile my-agent add @amaster.ai/dsh-policy

配置

该插件是 默认禁用规则在简介中直播 cordis.patch.yml 像其他的 dsh 插件配置( 编辑热重装配置层):

- name: '@amaster.ai/dsh-policy'
  config:
    enabled: true
    rules:
      - tool: '*'                      # every tool
        decision: allow
        priority: 20
      - tool: bash                     # dsh's shell tool (pwsh works the same)
        decision: deny
        commandPrefix: npm
        priority: 200
        message: 'npm is not allowed. Use bun install / bun add / bun test instead.'
      - tool: bash
        decision: deny
        commandPrefix: bun run
        priority: 200
      - tool: bash                     # …but one specific subcommand is fine
        decision: allow
        commandPrefix: bun run lint
        priority: 300                  # higher priority overrides the broader deny
      - tool: bash                     # grep as a pipe filter stays allowed
        decision: allow
        commandPrefix: grep
        priority: 300
      - tool: write
        decision: deny
        argsPattern:
          file_path: '\.md$'           # matched against the file_path value directly
        priority: 200
      - tool: write                    # …except the project contract file
        decision: allow
        argsPattern:
          file_path: 'PRODUCT\.md$'
        priority: 300
      - tool: write
        decision: ask                  # resolved via ctx.approval (human/answerer chain)
        argsPattern:
          file_path: '(^|/)etc/'
        message: 'writes to a system path'

规则字段

外地需求含义
tool对工具名称或名称清单; * 匹配每个工具
decision对allow 运行电话, deny 挡住它( message 以工具出错的形式到达模型, ask 等待 dsh 的批准连接
priority无( 0)在争夺同一指令段的规则中取得更高的优先权; 断开连接失败关闭( 拒绝 > 要求 > 允许)
message没有拒绝理由 / 询问解释( 生成匹配规则的默认名称)
argsPattern没有与 JSON 字符串参数相匹配的 Regex(或列表,任意) – 或参数名地图 – regex(或列表):每个密钥的图案与该参数的图案相匹配 价值 (非字符串值是 JSON-stringized first),所有密钥必须持有. 优先使用针对外地的规则的地图表格——不放出报价、不按键或跨外地事故
commandPrefix没有每个 shell 命令段的安乔德前缀匹配(或列表,任意),在一个单词边界(npm 匹配 npm install永远 npmx(中文(简体) )
commandRegex没有Regex(或列表,任意)固定在每个 shell 命令段的起始点上——双子兼容;使用 .* 以匹配中段

插件级别字段 : enabled (主开关)和 commandKeys (参数键有 shell 命令字符串——默认) ['command'],覆盖dsh's bash编号 :pwsh 页:1.

匹配语义

  • 一个规则的每个条件必须坚持 用于规则匹配(AND). 一项没有其他条件的规则 tool 和那个工具的每个呼叫匹配.
  • 贝壳命令逐段检查 . 复合命令( E)a && b | c,新线条,背景 &)被分出,引出-认识,可执行命令词通过引出,逃出和行接续实现常态. 巴许 $( ),反键和 <() 编号 : >() 取出替代物作为自己的部分;这里的正文体是数据,但未经引用的正文取出替代物除外. PowerShell backticks是出逃,而不是巴什式替代.
  • 优先权解决一个部分内的竞争; 各个部分的汇总是保守的: deny 否认整个电话,然后任何 ask 升级,和 allow 要求每一段决定允许。 广泛的否认仍然被具体的许可压倒,因为两者在同一部分竞争(bun run lint 在300比克时 bun run (第200段).
  • 没有规则匹配 呼叫通过 给其他人的 tools/pre-execute 链 (next())),因此dsh的自有门和其他插件保持了他们的发言权. 无效的 regex 属于配置错误并失败插件负载; 运行时的评分失败被记录 [dsh-policy] 前缀并被拒绝(无法关闭)而不突破代理循环.

门盖着什么

所有注册在 ctx.tools 通过 tools/pre-execute 门是不可知的工具,不需要每个工具的支持:

  • 官方工具 (对照0.1.6-α.2来源核实): bash, (中文(简体) ), pwsh, (中文(简体) ), read, (中文(简体) ), write, (中文(简体) ), edit, (中文(简体) ), read_image, (中文(简体) ), web_search, (中文(简体) ), web_fetch, (中文(简体) ), list_subagent_models 和代表团的工具, run_code,加上目标/技能/工作流程/ cordis 工具。 和他们比对 tool + 键 argsPattern (对象形式符合其参数形状 : file_path 页:1 write编号 :edit, (中文(简体) ), url 页:1 web_fetch, (中文(简体) ), query 页:1 web_search(中文(简体) ).
  • commandPrefix编号 :commandRegex 适用于其参数带有 shell 命令字符串的工具 - bash 财务报告和审定财务报表 pwsh 双用 command (默认涵盖) commandKeys) (中文(简体) ).
  • PTC 模式数字 : run_code 子发送器重新进入调度器 prepare ,它运行着相同的执行前门——规则适用于每个子调用,而不仅仅是每个调用 run_code。 。 。 .
  • MCP工具 桥由 dsh-mcp-client 登记为同一 ctx.tools 管道——同任何其他工具一样,用其注册名称与之相匹配.

这个 ask 决定

ask 由 dsh 自行解决: @deepseek-ai/dsh-user-approval (UI 提示器,自动回答器,...),在未组成批准服务时未关闭拒绝,在会话下短路拒绝 approval/policy: never模型化的否定理性是规则 message (一) 完全没有审批服务;a rejected编号 :cancelled编号 :unavailable dsh-tools 本身的理由措词(经核实与 [email protected]) (中文(简体) ). 双子座 modes (单位:千美元)default编号 :autoEdit编号 :yolo编号 :plan) 没有dsh对应物——dsh模型轴心作为每会的审批政策(见 dsh-permission-presets dsh 简介/cordis.patch.yml 已包含每个部署范围配置,所以插件没有它自己的模式轴.

双子星CLI政策绘图

双子TOMLdsh- 政策配置
toolName = "*" / "name" / ["a", "b"]tool: '*' / name / [a, b]
decision = "allow" / "deny" / "ask_user"decision: allow / deny / ask
priority = 300priority: 300 (同样的方向)
denyMessagemessage
argsPattern (序列参数的正则)argsPattern 外加 dsh- 内在对象形式 { file_path: '…' } 匹配每个参数值(字符串形式保留了JSON)。 字符串密钥顺序,而不是双子座排序的密钥形式——跨越多个密钥的图案可能需要调整;对象形式没有这样的问题)
commandPrefix 编号 : commandRegex (单一或列表)相同名称,每个命令段匹配; commandRegex 像双子座一样在命令开始
modes = [...]没有对应文件 — 使用单独的 dsh 配置补丁行
allowRedirection不支持( dsh 没有每个调用重定向门)

警卫

一个政策插件是咨询地标,而不是封存:拒绝规则让行为良好的代理避免危险命令,但代理程序仍然运行着主机权限. 与 dsh 的沙盒堆栈对齐( Namedsh-sandbox + 限制执行器)用于OS级执行,并注意dsh 船没有自己的认证或授权.

兼容性

@amaster日记绳子
0.1.x (中文(简体) )`>=0.1.5-弧 1

同伴依赖 : @deepseek-ai/dsh-tools (单位:千美元) tools/pre-execute 门). 批准接合(@deepseek-ai/dsh-user-approval)是可选的,仅涉及 ask 决定.

许可证

麻省理工学院

版本与发布记录

@amaster.ai/dsh-policy 共发布 40 个版本,首次发布于 2026/09/11;过去 12 个月发布了 40 个版本。

版本发布日期距今
0.1.40latest2026/11/041 天前
0.1.392026/11/041 天前
0.1.382026/10/315 天前
0.1.372026/10/315 天前
0.1.362026/10/315 天前
0.1.352026/10/315 天前

关于 @amaster.ai/dsh-policy 的常见问题

@amaster.ai/dsh-policy 是什么?

DeepSeek Harness的解说工具调用政策:在工具/预执行门上以平面插件配置表示的配置由配置驱动的允许/拒绝/任务规则(工具名,args模式, shell命令前缀/regex,优先级).

如何安装 @amaster.ai/dsh-policy?

在项目目录运行 npm install @amaster.ai/dsh-policy,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/cordis(^4.0.1)、@deepseek-ai/dsh-tools(>=0.1.5-rc.1 || >=0.1.6-alpha.1 || >=0.1.7-alpha.1 || >=0.2.0-rc.1 || >=0.2.1-rc.1 || >=0.2.2-rc.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@amaster.ai/dsh-policy 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@amaster.ai/dsh-policy 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@amaster.ai/dsh-policy 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^20.19 || ^22.12 || >=24.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@amaster.ai/dsh-policy 可以商用吗?

@amaster.ai/dsh-policy 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@amaster.ai/dsh-policy 的下载量有多少?

根据 npm 官方下载统计,@amaster.ai/dsh-policy 在 2026/10/06 – 2026/11/04 这 30 天内被下载 4,367 次,日均约 146 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@amaster.ai/dsh-policy 还在维护吗?

最新版本 0.1.40 发布于 2026/11/04(1 天前);至今共发布 40 个版本,其中过去 12 个月发布了 40 个;首次发布于 2026/09/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。