deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README

少点审批弹窗,让 Agent 连续工作。
为 DeepSeek Harness(DSH)提供自动审批。常见操作自动处理,其余请求交给 AI 判断,需要你决定时再来问你。
你可以继续使用工作区沙箱,同时减少反复点确认的打断。
交给 Agent 一个任务,离开一会儿,回来却发现它还停在审批弹窗前。
如果你也遇到过这种情况,这个插件就是为减少这些停顿而做的。它帮你处理重复的审批判断,让你把注意力留给任务本身。
| 你关心的事 | 插件怎么处理 |
|---|---|
| 每次审批都要等 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)直接放行。你可以自行调整规则。带有重定向、串联执行等复杂写法的命令,会做额外检查,不会仅凭开头看起来是只读命令就按规则放行。
想了解具体判断方式,见 决策链与规则语法。
使用注意
workspace-write 和 read-only;danger-full-access 不产生这类审批请求,插件不会介入。常见问题
装了以后没变化?
确认已重启 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,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。