乐于分享
好东西不私藏

Claude Code自动模式:官方文档解读安全放手之道,资深用户说这才是「真正用 AI 写代码」

Claude Code自动模式:官方文档解读安全放手之道,资深用户说这才是「真正用 AI 写代码」

点击上方🔺公众号🔺关注我✅

Claude Code 最近更新了一套权限系统,一共 6 种模式,覆盖了从”每一步都问”到”完全放手”的完整光谱。

我花时间把那篇官方文档完整读了一遍,发现这个东西比想象中有意思——它不是简单加了个”是否弹窗确认”的开关,而是把 AI 写代码时的人和 AI 之间的信任关系做了分层。

6 种模式,从保守到开放

Claude Code 的权限模式用 Shift+Tab 可以在会话中循环切换。官方文档列了 6 档,每一档对”什么事不用问你就直接干”有不同的设定:

模式 自动执行范围 适合场景
default 只读操作 刚上手、敏感操作
acceptEdits 读 + 文件编辑 + 常用文件命令 边 review 边迭代代码
plan 只读,只做分析不执行 先探索代码库再改
auto 全部(后台 classifier 安全审查) 长任务、减少弹窗疲劳
dontAsk 仅预先批准的工具 锁定环境的 CI/脚本
bypassPermissions 全部(无审查) 仅限隔离容器和 VM

(后面几个需要主动通过命令行参数开启,不在默认的 Shift+Tab 循环里。)

这套分级最巧妙的地方是,它不是简单二分——”问”或”不问”——而是在中间加了几个实用档位。

中间档位比想象中有用

之前很多人体验 Claude Code 的权限只有两个极端:要么每一步都停下来问(烦),要么 –dangerously-skip-permissions 全放(危险)。

这次新增的中间档补齐了缺口。

acceptEdits 模式可以自动批准文件编辑和常用文件命令(mkdir、touch、rm、mv、cp、sed),但仅限于工作目录内,写 protected paths 的操作仍然需要确认。适合你 review 代码过程中让 Claude 改文件的场景。

plan 模式把 Claude 完全限定在”只读”状态:可以读文件、跑 shell 命令探索代码库,但不会改你的源码。Claude 写一份计划,你审核通过后选择执行模式。还有一个细节是 Ctrl+G 可以直接在编辑器里编辑计划文本再让 Claude 执行。

auto 模式是最高一档有安全兜底的自动执行。背后有一个独立的 classifier 模型对每个操作做审查,拦截越界行为。

Auto mode 的 classifier 怎么工作

这是官方文档里最有信息量的部分。

Auto mode 不会把全部控制权交给 Claude。每次执行前,一个独立的分类器模型会检查操作是否合理:

默认允许的操作:

  • 工作目录内的本地文件操作
  • 安装 lock 文件声明的依赖
  • 读取 .env 并发送凭证到对应的 API
  • 只读 HTTP 请求
  • 推到你当前分支或 Claude 创建的分支

默认拦截的操作:

  • curl | bash 这类下载执行
  • 向外部端点发送敏感数据
  • 生产部署和数据库迁移
  • 云存储批量删除
  • 授予 IAM 或仓库权限
  • 修改共享基础设施
  • 销毁会话开始前已存在的文件
  • Force push 或直接推 main

classifier 默认信任工作目录和仓库配置的 remote,其他外部操作都被视为不可信。管理员可以通过 autoMode.environment 配置添加可信的仓库、存储桶和服务。

另外有一个有意思的设定:如果你在对话中说了”别推””等我 review 再部署”这类边界声明,classifier 也会据此拦截匹配的操作——即使默认规则本来允许。

用 auto mode 的条件

官方文档明确了几个硬性条件:

  • Claude Code v2.1.83 或更新
  • 所有计划(Pro 及以上均支持,Max 和 Pro 都可以)
  • 模型:Sonnet 4.6、Opus 4.6 或 Opus 4.7(部分旧模型不支持)
  • 仅限 Anthropic API(Bedrock、Vertex、Foundry 暂不可用)
  • Team/Enterprise 需要管理员先在后台开启

如果满足条件,在会话中按 Shift+Tab 切到 auto,会弹出一个确认窗口,接受后就能用了。

值得一提的是,auto mode 被官方标注为”research preview”——它在减少弹窗的同时,不能保证绝对安全。”适用场景是方向明确的任务,不能替代敏感操作的 review。”

一个用户的视角

TypeScript 创始人之一 Boris Cherny 在 auto mode 上线后发了条推文,22 万阅读,2000 点赞。他说现在用 Claude Code 最重要的技巧是 auto mode。

理由不是省几个弹窗——他原话是:“auto mode 是 multi-clauding 的关键基石——开一个会话让它自己跑,同时切去干另一件事。”

把 auto mode 放到模式体系里来看,这句话就更容易理解了。在 auto 之前,你只有两个选择:守着它干完一个任务,或者冒全放手的风险。auto mode 卡在中间,安全有 classifier 兜底,工作流不需要你盯着。

于是你可以开一个会话重构模块,同时写另一个模块的测试。这在以前很难做到。

不过 Boris 的用法有一个隐含前提:你对代码方向有把握。auto mode 不适合探索不熟悉的代码库(应该用 plan 模式先),也不适合操作生产环境。

官方文档也说了同样的话:“在信任大方向的任务中使用,不能替代敏感操作的 review。”

几个值得注意的细节

文档里还提到几个容易被忽略的点:

  • auto mode 不在项目级设置文件中生效。如果设置了 defaultMode: "auto".claude/settings.json 里,会静默回退到 default 模式——这是为了防止仓库自行为你开启 auto。
  • 会话中说的边界声明会被 classifier 记住。说了”别推”就会拦住 push 操作,直到你主动解除。
  • plan 模式下的审核支持 /Ultraplan,可以在浏览器里可视化 review 计划再决定是否执行。
  • acceptEdits 模式下 PowerShell 也能用,Set-Content、Add-Content 等命令同样可自动批准。

如果说以前 Claude Code 的权限像”问或不问”的二极管,这次更新把它变成了一套完整的信任分级体系。什么操作让 AI 自己决定,什么操作必须停下来,什么操作只能看不能动,终于可以按场景灵活配置了。

写到这我想问一句:你平时用 AI 编程工具,习惯每一步看着它做,还是更希望它自己跑完回来汇报?评论区聊聊你的工作流。

如果觉得这篇文章有帮助,欢迎点赞、在看、转发!有问题也可以在评论区留言,我会尽量回复!