跳到主内容

dsh-approval-llm

7Star0Fork1Issue0Watching

为 DSH 增加"帮我批准"权限模式,由独立评审模型替代人工判定审批;其他模式行为不变。

机审证据4/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
分支
main
dsh-plugin

安装

命令web profile
$ dsh plugin --profile web add dsh-approval-llm

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Letter2025/dsh-approval-llm:先查看仓库 https://github.com/Letter2025/dsh-approval-llm 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

本插件为 DeepSeek Harness 增加"帮我批准"权限模式:在该模式下,由独立评审模型代替人工判定 approval/request,给出 ALLOW / DENY / ESCALATE 三值决策;其他权限模式下插件完全沉默,人工审批流程不受影响。

核心能力

  • 在 model-approval 权限模式下,由评审模型自动判定 approval/request,给出通过、拒绝或转人工
  • 决策前先按白名单、黑名单、人工专属名单做确定性路由,命中的请求免去模型调用
  • 模型超时、解析错误或上游故障时一律转人工(fail-to-human),不计入连续拒绝熔断
  • 单会话连续拒绝达到阈值后,自动将后续请求交回人工,评审模型停止当裁判
  • 评审时从会话日志回放工具真实参数,避免被 agent 自述误导
  • 随包附带 configure-approval-llm 技能,AI 可按"先建议再确认"流程写入评审配置

技术实现

  • 语言: TypeScript(ESM,严格模式 tsconfig)
  • 关键依赖: @deepseek-ai/dsh-user-approval(审批 outcome 词汇)、@deepseek-ai/dsh-permission-presets(预设服务)、@deepseek-ai/dsh-llm(流式评审调用)、@deepseek-ai/schemastery(配置 schema 校验)
  • 架构模式: cordis 插件,通过 inject = ['llm','tools','permissionPresets','skills'] 注册并监听 approval/request 事件,按"确定性路由 → 熔断 → 评审模型"瀑布处理;通过 package.json#dsh.bundle.patch 同时插入插件行与 model-approval 预设
  • 入口文件: src/index.ts(apply(ctx, rawConfig))

适用场景

希望在 DSH 中实现"先让模型审、拿不准再问人"这类低风险自动化工作流的开发者。适合需要让模型在 workspace-write 模式下持续自主执行,但仍希望对删除、终端命令、job_kill 等高风险工具保留人工把关的场景;不适合无人值守的高风险任务。

前置依赖与兼容性

依赖最低版本说明
@deepseek-ai/dsh-agent^0.1.0-rc.7宿主 Agent,peerDependencies
@deepseek-ai/dsh-llm^0.1.0-rc.7LLM 流式接口与 BlockAssembler
@deepseek-ai/dsh-user-approval^0.1.0-rc.7审批 outcome 词汇(allowed-once / rejected)
@deepseek-ai/dsh-permission-presets^0.1.0-rc.7预设服务(model-approval 预设由此注入)
@deepseek-ai/dsh-session^0.1.0-rc.7会话日志回放工具参数与对话路由
@deepseek-ai/dsh-skill^0.1.0-rc.7bundled configure-approval-llm 技能注册
@deepseek-ai/dsh-tools^0.1.0-rc.7工具注册表(实时取工具描述)
@deepseek-ai/dsh-timeout^0.1.0-rc.7评审请求超时管理
Node 版本未声明package.json 未声明 engines
平台跨平台package.json 未声明 os / cpu 限制
原生模块无不依赖任何原生模块

安装方式

dsh plugin --profile web add github:Letter2025/dsh-approval-llm

配置项

配置类型说明默认值
enabled布尔总开关;关闭时所有请求原样交给下一层 answerer(人工审批)true
modePreset字符串触发评审模型的权限预设名;只有当前会话的预设与之匹配时才介入;设为空字符串则审查所有请求"model-approval"
provider字符串评审模型使用的 provider;必须与 model 成对出现;未设置则回退会话中的对话路由未设置
model字符串评审模型 id;必须与 provider 成对出现未设置
timeoutMs数字评审请求端到端超时(毫秒);超时后转人工,不计入熔断60000
maxOutputTokens数字评审模型输出 token 上限256
systemPrompt字符串自定义安全策略;为空则使用内置"默认放行、关键危害才拒绝"短规则内置策略
allowlist字符串数组命中即直接放行的工具名(不走模型)[]
denyList字符串数组命中即直接拒绝的工具名,优先级高于 allowlist[]
humanOnlyList字符串数组必须由人工决定的工具名,绝不自动评审[]
maxConsecutiveDenials数字单会话连续拒绝上限;超过后该会话转人工;设为 0 关闭熔断3
maxArgsChars数字渲染给评审模型的工具参数 JSON 字符上限4000
includeArgs布尔是否把工具参数一起交给评审模型;参数敏感时可关闭true
notifyUser布尔是否在每次模型通过/拒绝后向会话追加一条用户可见的决策消息true

常见问题

Q: 不配置 provider/model 也能用吗?

A: 可以。未设置时会回退到本次会话最后一次 request/header 中的对话路由;如果会话日志里也没有,则评审失败并转人工,不会伪造决策。

Q: 装上以后人工审批是不是失效了?

A: 不是。插件只在 model-approval 这一个预设下应答;其他预设(含默认的 请求批准)仍然走原有的人工审批,行为与装插件前一致。

Q: 评审模型说"拿不准"或挂掉了会怎样?

A: 一律转人工:超时、解析错误、上游错误都产生 ESCALATE,并把请求交给下一个 answerer;这些失败不会被算进连续拒绝熔断,避免模型故障被误判为"反复拒绝"。

Q: 我担心模型被工具输出骗过,怎么办?

A: 这是已知风险。建议收紧 humanOnlyList(强制人工的高危工具)、denyList(黑名单)、maxConsecutiveDenials(熔断阈值),并避免在无人值守的高风险场景启用。

Q: 安装完怎么配置评审模型?

A: 让任意 agent 加载 configure-approval-llm 技能或对它说"配置审批评审模型",它会按 AI 先建议、你确认后再写盘的流程,把 approval-llm 行写进 ~/.dsh/profiles/web/cordis.patch.yml,重启 dsh web 生效。

Q: 怎么卸载?

A: 通过宿主 DSH 的插件移除命令移除并重启 dsh web;插件声明的 model-approval 预设由 bundle patch 注入,卸载后该预设将随之消失。

上手难度

进阶 — 需要理解 DSH 的权限预设、cordis patch 机制以及为评审模型选型;内置 configure-approval-llm 技能能减轻配置工作,但白名单/黑名单/熔断的策略调优仍需部署者判断。

已知问题与限制

  • 暂无专门的机器可读审计事件类型:评审决策以 user/message 形式出现在主链路可被持久化与重放;待宿主开放自定义事件注册通道后再补 session/approval-llm-request 等事件
  • 暂未提供客户端徽标(浏览器半):评审决策以对话消息形式展示,而非工具卡上的盾牌图标
  • 一次请求一次模型调用:批量评审(PLAN-063)需要审批服务先开放批量入口,单请求延迟受 timeoutMs 与所选评审模型速度约束
  • 评审模型可能被工具输出提示注入:需配置好 humanOnlyList / denyList / 熔断参数,不要在高风险无人值守场景启用
  • 列表仅精确名称匹配:allowlist / denyList / humanOnlyList 不支持通配符或参数模式匹配

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Letter2025/dsh-approval-llm)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录