DeepSeek Harness Hub
← 返回列表

J0ss077/dsh-always-require-tools-approval

DeepSeek 客户端兼容 / 相关生态spec-screened在 GitHub 查看 ↗
未验证

@j0ss077/dsh-always-require-tools-approval

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/7 · 已提供中文文档

停止。确认。运行。一个 DeepSeek Harness 插件,它会暂停选定的工具,并在每次执行前等待你的明确批准。

综合分
30.3
GitHub 分
30.3
用户评分
★ Stars
2
周下载量
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/J0ss077/dsh-always-require-tools-approval.git
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

@j0ss077/dsh-always-require-tools-approval

停下。确认。运行。 一个 DeepSeek Harness 插件,它会暂停你监视列表中的工具,并在每次执行前等待你的明确批准。

npm version
license: MIT
[node: >=22.19]()

它的作用

DSH 会在一个沙箱中运行你的 agent,该沙箱会阻止文件写入——但不会阻止命令。bash 仍然可以读取文件、启动程序并访问网络。

这个插件在工具与其执行之间放置了一道批准关卡。当 agent 调用监视列表中的工具时,harness 会暂停,并在任何内容运行之前询问。

- 默认监视列表:bash 和 pwsh。
- 一次批准 = 一次执行。下一次调用会再次询问。
- 拒绝、取消或没有批准渠道 → 该工具被阻止。
- 所有其他工具均不受影响。

要求

- 一个带有批准服务的 DSH profile——标准的 web(GUI)profile 自带一个。
- Node.js >= 22.19。

安装

一条命令即可安装并激活该插件(它以 bundle 层的形式发布):

dsh plugin --profile web add @j0ss077/dsh-always-require-tools-approval

然后重启 GUI。如果你在另一个 profile 下运行,请使用不同的 --profile。

配置

一个选项:tools——监视列表。

| Key     | Type       | Default            | Meaning                                           |
| ------- | ---------- | ------------------ | ------------------------------------------------- |
| tools | string[] | ["bash", "pwsh"] | 在运行前需要批准的工具名称。 |

无需重新安装即可在运行时覆盖它。编辑 ~/.dsh/settings.yaml(当设置了 $DSH_HOME 时为 $DSH_HOME/settings.yaml):

always-require-tools-approval:
tools: ["bash", "pwsh", "node"]

此文件优先于 bundle 中内置的值。

你会看到什么

1. agent 调用一个被监视的工具,例如 bash。
2. 执行暂停:“Approve this tool execution?”
3. 批准 → 该单次调用运行。拒绝 → 被拒绝,并告知 agent 你拒绝了它。

每次调用都会再次提示——批准一次绝不会授予空白支票。提示文本是设计上固定的。

子 agent 也会被覆盖。harness 通常会自动拒绝被委派的子级的批准请求,因此当被监视的工具在子 agent 内运行时,此插件会将问题转发到顶层(面向用户的)会话,由你照常批准或拒绝。由于子 agent 的调用卡片不属于顶层对话,因此提示会明确说明正在发生的情况:

Subagent approval: run "bash" · Why: clean the build output · Command: rm -rf dist
Why: 是工具调用自身的描述,Command: 是即将运行的确切命令;各字段之间用 · 分隔,因此提示在单行审批标题中保持可读。

安全模型

- 一次性。 一次审批仅授权一次执行。
- 失败关闭。 没有审批通道(无头运行、未挂载的服务)→ 该工具会被拒绝,绝不会被静默允许。
- 不自动批准。 对于受监视的工具,插件只会询问;它绝不会自行批准。
- 不干扰。 未受监视的工具会委托给下一个插件。

有关安全态势以及如何报告漏洞,请参阅 SECURITY.md。

更新与移除

dsh plugin --profile web update @j0ss077/dsh-always-require-tools-approval
dsh plugin --profile web remove @j0ss077/dsh-always-require-tools-approval

更新后请重启 GUI。

开发

pnpm install
pnpm build      # compile and normalize .d.ts
pnpm typecheck  # type-check source + tests
pnpm test       # node --test

该插件由四个模块组成——src/contracts.ts(harness 类型)、src/gate.ts(门控策略)、src/subagent.ts(子代理谱系规则)、src/index.ts(接线)。有关 harness 类型为何自行声明,请参阅 ADR 0001;有关子代理审批为何被路由到根会话,请参阅 ADR 0002。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群