审批管的是另一个维度:这个具体操作能不能继续。它和沙箱模式是两个独立的旋钮,官方文档把这两个捆成「权限预设」提供给界面选择。
| 策略 | 含义 | 风险 |
|---|---|---|
| ask | 每次需要审批的操作都问你 | 安全,但高频操作会很吵 |
| never | 不问,直接放行 | 流畅,但你已经放弃了这一层的把关 |
关键设计:失败时关门
审批结果是闭合的四种:allowed-once、rejected、cancelled、unavailable。官方文档明确写:只有allowed-once放行,其余三种一律按拒绝处理。应答者缺失、不负责该请求、抛异常,都会产生unavailable,而不是放行。
这条设计值得单独记:它意味着「审批链路坏了」的默认结果是不执行,而不是「悄悄执行」。所以遇到莫名其妙没执行的操作,先想审批是不是没应答,而不是怀疑工具坏了。
allowed-once 是一次性的
名字里带once是有意的:这一次授权不延展到下一次同类操作。所以「批准了一次之后它自己跑了一堆命令」这种情况,在机制上应该不会发生——如果发生了,那是别的地方的问题。
两个默认预设
| 预设名 | 组合 | 适合 |
|---|---|---|
| workspace-write | workspace-write沙箱 + ask审批 | 默认。日常够用,越界会问你 |
| danger-full-access | danger-full-access沙箱 + never审批 | 明确知道要越过隔离时。两层都放开了 |
注意 danger-full-access 这个预设是两个都放开:沙箱绕过 + 审批不问。它不是「只放开一样」。选它之前先想清楚这两件事同时放开的后果。
怎么选
- 日常、需要改文件 →
workspace-write。 - 只读分析、连误写都不能有 → read-only + ask。
- danger-full-access只在两种情况下用:你在隔离环境里,或者你完全清楚这一轮要做什么。别为了少点几次同意就用它。