TingRuDeng/dsh-smart-approval ↗★ 0
dsh-smart-approval
Fail-closed LLM-assisted approval reviewer for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:TingRuDeng/dsh-smart-approval说明文档
阅读完整 README ↗dsh-smart-approval
English | 中文
dsh-smart-approval 是
DeepSeek Harness 的失败关闭审批插件。
它在相同的 workspace-write 沙箱上提供人工审批、智能审批和无人值守三种模式,智能审批是推荐默认值。
默认情况下,插件复用当前会话的 provider 和 model;也可以配置独立审核路由。切换模式会从下一次授权申请起生效,不需要重启 DSH。
[!WARNING] 本项目和 DSH 均处于开发者预览阶段。请阅读下方安全边界,并在要求可复现的环境中固定精确版本。
审批模式
| 模式 | 安全请求 | 高风险或不确定 | 明确恶意 |
|---|---|---|---|
| Workspace Write · Manual | 转人工 | 转人工 | 转人工 |
| Workspace Write · Smart(推荐) | 自动通过一次 | 转人工 | 拒绝 |
| Workspace Write · Unattended | 自动通过一次 | 拒绝 | 拒绝 |
三个模式都使用 sandbox: workspace-write 和 approval: ask。ask 会让授权申请进入 DSH 的
approval/request waterfall;插件再决定自动通过一次、委托给下一个人工 answerer,或直接拒绝。
人工模式会立即旁路审核器,不读取工具参数或用户授权上下文。
安装
环境要求
- Node.js 24 或更高版本。
- DeepSeek Harness `>=0.1.0-rc.5
Git 依赖会运行本包的 `prepare` 构建。pnpm 10 及以上默认阻止依赖构建脚本。首次从 Git 安装时,
请按 DSH 提示把精确包名加入该 profile 的 `pnpm-workspace.yaml` `allowBuilds`,审核源码后再重试。
Registry 包已经包含构建产物,不需要这项 Git 构建许可。
### 验证或卸载
配置转储中应出现 `dsh-smart-approval` bundle、`smart-approval` 插件行,以及三个
Workspace Write 预设:
```sh
dsh --profile web --dump-config
卸载插件:
dsh plugin --profile web remove dsh-smart-approval
使用与切换模式
DSH 当前只提供一个平铺的 Permissions 选择器,因此三个 Workspace Write 模式使用相同前缀并相邻显示。 可以在 Web UI 中选择,也可以在当前会话执行对应命令:
- 人工审批:
/permission workspace-write - 智能审批:
/permission smart-approval - 无人值守:
/permission unattended
插件会为每次授权申请读取当前 preset,因此切换会从下一次申请起立即生效。
工作原理
插件是 DSH approval/request waterfall 中的前置 answerer:
- 根据
callId定位真实的tool/call事件。目前只有 DSHbash和pwsh具备自动审核契约; 其他工具会按当前模式转人工或拒绝。 - 仅使用当前 turn 中直接、纯文本的用户消息作为授权上下文。历史轮次、Assistant 消息、工具输出和模型生成的授权理由均不构成授权。
- 只传递影响 shell 执行的字段:、、、 和 。未知字段、图片、非文本内容或超限上下文不会被截断,而是失败关闭。