返回目录
其他 待识别

dsh-codex-approval

040822/dsh-codex-approval

dsh-codex-approval插件:仿照Codex的AI自动审批,规则+AI三级风险评估自动放行/拒绝,让dsh沙箱审批自动化

Stars
2
Forks
0
Issues
0
更新
2 天前

PROJECT TOPICS

项目标签

PROJECT README

README

dsh-codex-approval

dsh-codex-approval 鲸鱼娘宣传图:少点审批弹窗,让 Agent 连续工作

少点审批弹窗,让 Agent 连续工作。

为 DeepSeek Harness(DSH)提供自动审批。常见操作自动处理,其余请求交给 AI 判断,需要你决定时再来问你。

你可以继续使用工作区沙箱,同时减少反复点确认的打断。

为什么值得用 · 快速上手 · 文档与支持 · 更新日志

为什么值得用

交给 Agent 一个任务,离开一会儿,回来却发现它还停在审批弹窗前。

如果你也遇到过这种情况,这个插件就是为减少这些停顿而做的。它帮你处理重复的审批判断,让你把注意力留给任务本身。

  • 日常开发少打断。 常见只读操作按规则自动处理,其他请求由 AI 评估,再决定放行、拒绝或询问你。
  • 长任务不用守着点确认。 切换到无人值守模式,审批不再等你回应;需要确认的操作默认拒绝。
  • 按你的习惯调整。 哪些操作允许、哪些需要确认、哪些禁止,都可以配置;也能随时切回人工审批。
你关心的事 插件怎么处理
每次审批都要等 AI 吗? 常见操作先走规则,命中就直接处理,不花模型调用
AI 能参考我正在做什么吗? 可以开启会话上下文,让判断参考你提出的任务和授权
判定模型突然不可用了怎么办? 可以配置备用模型,主模型失败后自动按顺序尝试
自动拒绝后,Agent 知道原因吗? 会反馈拒绝来源与理由,引导 Agent 调整方案
调整起来麻烦吗? 模型和常用策略在 Web 设置里修改,保存即生效
想知道某次为什么放行或拒绝? 有决策日志可查,便于回看和排查

快速上手

1. 安装并重启

dsh plugin --profile web add dsh-codex-approval

重启 dsh web 进程,再刷新页面。上面的命令只安装到 web profile。

2. 选一个可用的模型

打开 设置 → 插件 → 插件配置,找到本插件,选择你已经在 DSH 中配置好的判定模型并保存。需要时,也可以添加备用模型。

首次使用请检查主模型和备用模型:内置默认配置来自作者的环境,不一定适用于你的机器。如果模型均不可用,默认会回到人工审批。

3. 开始使用,按需切换模式

在会话权限选择器中保持 workspace-write,输入:

/approval-mode ai

之后照常使用即可。只有操作触发审批时,插件才会介入。

工作方式 会发生什么 切换命令
日常使用(默认) 自动处理审批,仍需确认时再问你 /approval-mode ai
无人值守 不弹窗等待,需要确认的操作默认拒绝 /approval-mode ai-auto
人工审批 暂停插件的自动审批,交回 DSH 处理 /approval-mode manual

切换只影响当前会话。输入 /approval-mode 查看当前模式,输入 /approval-mode default 恢复配置中的默认模式——默认模式本身可以在 Web 设置卡片里选(设置 → Codex 审批 → 默认审批模式),改完即时生效,不用重启 dsh web。

无人值守模式适合不方便随时回应的长任务。遇到被拒绝的操作,Agent 仍需要调整方案;它不保证每个任务都能自动完成。

文档与支持

想了解 文档
调整策略、开启会话上下文 配置参考
编写规则、理解判断过程与日志 决策链与规则语法
Web 设置与模型配置排查 Web 配置卡片
安全机制与已知限制 安全模型与边界
判定质量怎么衡量(评测三层、指标、门槛) 评测与回归
开发、构建与兼容性声明 开发说明
作者本地部署的特殊配置 本地部署环境说明
版本变化 更新日志
它如何做决定?

先看规则,再请 AI 判断,最后按你选择的模式处理。

例如,在默认的日常模式下,如果这些 Bash 命令触发审批:

  • git status:常见只读操作,内置规则直接放行。
  • npm publish、git push:发布操作属于红条,必须你本人确认;无人值守时直接拒绝(写死的策略,没有"无人值守就放行"的开关——要在无人值守时放开权限请改宿主的权限档位)。
  • rm -rf ./dist、Remove-Item -Recurse build:递归删除一律交你确认——工作区是沙箱的写边界,不是备份,删掉的东西不受权限档位保护。rm -r 也算,rm -rvf 这类打包写法同样命中(判定在 argv 上做,靠拼写绕不过去);rm -rf /、rm -rf ~/Documents 这类越界形态则是直接拒绝。
  • git clean -fdx、git reset --hard、git branch -D、docker system prune -af --volumes、kubectl delete ns、wipefs -a:整体状态删除直接拒绝——未提交的工作、分支提交、卷、对象存储前缀在别处没有副本,没有一次授权能把它们找回来。日常形态不被牵连:git branch -d(只删已合并分支)、git restore --staged(只动索引)、kubectl delete pod(重启 Pod 就是删它)交给 AI 判,wipefs -n(dry run)直接放行。
  • 其他没被规则覆盖的操作:交给 AI 评估——它同时给出风险、它建议的处理方式和用户授权强度,最终放行与否由程序按规则算;证据不足时它可以要求读取工作区内的脚本再判断。

你可以自行调整规则。带有重定向、串联执行等复杂写法的命令,会做额外检查,不会仅凭开头看起来是只读命令就按规则放行。

想了解具体判断方式,见 决策链与规则语法。

使用注意、常见问题与卸载

使用注意

  • 保留沙箱。 支持 workspace-write 和 read-only;danger-full-access 不产生这类审批请求,插件不会介入。
  • 同一个 profile 只启用一个自动审批插件。 多个审批插件可能互相干扰。
  • AI 可能判断错误。 自动审批不能保证所有操作安全,请按任务需要配置权限与策略。具体边界见 安全说明。

常见问题

装了以后没变化?

确认已重启 dsh web 进程,而不只是刷新页面。再检查会话权限是否为 workspace-write 或 read-only,并用 /approval-mode 确认插件没有处于人工模式。

为什么还是经常弹窗?

可能是某个操作需要你确认,也可能是判定模型不可用。先检查设置里的模型配置;仍有问题时,可查看 ~/.dsh/logs/approval.jsonl 中的决策记录,或参阅 排查文档。

如何卸载?

dsh plugin --profile web remove dsh-codex-approval

需要 Node.js 22.19 或更高版本。内置 Bash 与 Windows PowerShell 规则。

开源协议:MIT。

CLASSIFICATION EVIDENCE

分类依据

项目类型待识别
功能分类其他
规则置信度低

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。