Skip to content

Auto mode 别再死磕:拒绝一次就停,静默则退避

Auto mode 省的是确认点击,不是安全边界。以前有一类糟心体验:安全审查已经拒绝,或迟迟不给答复,会话却像卡住一样把同一动作砸个不停——烧额度、刷日志,还让人误以为「再等一下就会放行」。CLI 2.1.280 把这两条重试路径钉死了。

本文只谈「审查结果之后怎么停」;分类器跑在服务端、如何看 /status,见 Auto mode 服务端分类器。环境与 $defaults 仍看 Auto mode 配置

拒绝一次:明确说「再试也没用」

当安全审查对某次动作给出拒绝 / 不愿审查的结论时,Auto mode 现在会:

  1. 只否决这一次(不再同动作连打)。
  2. 在结果里标明:重试不会改善结果

对你意味着:看到这类提示,不要指望「再开一轮 Auto 就会翻盘」。该改的是权限规则、deny/ask 列表、沙箱范围,或换一条不踩红线的实现路径——而不是催模型硬撞。

静默无答复:退避,十次收工

另一类是安全检查没有给出可解析答复(超时、空响应、通道异常等)。旧行为容易表现为:不停 deny、没有停顿,会话像活死人。2.1.280 改为:

  • 重试带退避(间隔拉大,降低空转)。
  • 同一动作连续约十次仍无有效答复结束本轮并给出说明,而不是无限循环。

实操建议:

你看到的现象先做什么
「拒绝且提示重试无用」/permissions、deny 规则、组织策略;改任务拆法
反复退避后停轮查网络 / 代理 / 审查服务是否可达;看 /status 与调试日志
只在某些目录翻车对照下文符号链接路径;确认写入目标是否在允许树外

CI 与 -p 头less 路径同样受益:失败应尽快以非零退出暴露,而不是在审查抖动里空转半小时。相关边界见 print / bare / CI

顺带:符号链接写入按「落盘处」判权限

同版本还有一处和 Auto mode / acceptEdits / allow 规则强相关的修复:

经符号链接路径的写入,按真实落盘位置(in-tree 拼写)来判断,而不再被「链接看起来还在仓库里」误导。

以前可能出现:提示里显示的是仓库内某路径,实际写入却落到树外;acceptEdits、allow 规则和 Auto mode 却按「看起来安全」的路径放行。现在:

  • 提示会点明写入真正落在哪
  • acceptEdits、allow、Auto mode 不会再仅凭符号链接外观批准树外落盘

对使用 node_modules 外链、共享 cache 目录、把配置链到家目录的仓库尤其重要。权限总览仍见 权限与沙箱:规则写的是真实边界,链接只是别名。

和「服务端分类器」怎么叠

  • 服务端分类器:解决「分类器开销谁买单、是否在云上跑」——看 /status 的 Auto mode server 行。
  • 本文的重试语义:解决「审查已拒 / 无答复时还要不要死磕」。

两者同时生效:上云省的是分类器费用;停重试省的是空转与误判安全感。deny、ask、environment 规则仍然先于自动放行逻辑。

小结

  • 2.1.280:安全审查拒绝 → 只否决一次并提示重试无益;无答复 → 退避,约十次后停轮。
  • 符号链接写入按真实落盘路径做 acceptEdits / allow / Auto mode 判定,降低树外误批。
  • 翻车时先改规则与路径,再谈「让 Auto 再试一次」。

Auto mode 该省的是手点确认,不该省的是「被拒绝之后还要不要撞墙」。

Claude-cn.org,专注于 Claude Code 中文教程