加载中

权限模式

第 4 课5 分钟
加载中

权限模式

权限模式让您可以一次性决定Claude可以在不停下来征求您同意的情况下运行哪些操作。您不必逐个提示批准每一个操作,而是可以选择一个与工作相匹配的模式,让Claude在您感到放心的信任级别上工作。

您已经接触过其中几种模式了。每次您按下shift-tab时,都会在它们之间循环切换:手动模式、接受编辑和计划模式。这些涵盖了日常的、动手操作的工作。而其余的模式,才是真正体现Claude Code"放手不管"特性的地方,其中应该首选的是自动模式。

六种权限模式

以下是完整的模式集合。每种模式在"自由运行的内容"和"需要您签字批准的内容"之间划出了不同的界线。

  • 手动模式(Manual) 仅进行读取操作,不会提示。其他所有操作都会先征求同意。
  • 接受编辑(Accept edits) 会运行读取、文件编辑和常见的文件系统bash命令,而不会询问。这适用于迭代您事后会审查的代码。
  • 计划模式(Plan) 会进行研究并提出更改建议,但不会编辑任何内容。读取操作可以自由运行,当自动模式可用时,自动模式的分类器会审查Claude为进行探索而运行的命令,并让已批准的命令无需提示即可运行。
  • 自动模式(Auto) 接受所有操作,由一个独立的分类器模型在大多数操作运行前对其进行审查。
  • 不询问(Don't ask) 允许在您的工作目录内进行文件读取,以及使用预先批准的工具。任何原本会触发提示的操作都会被自动拒绝。
  • 绕过权限(Bypass permissions) 跳过所有检查。这等同于dangerously-skip-permissions标志。只能在隔离的容器或虚拟机内运行它。

使用shift-tab循环切换

您不需要记住每种模式对应的命令。按shift-tab即可在日常使用的几种模式之间循环切换:手动模式、接受编辑、计划模式和自动模式。底部的状态栏始终显示您当前所处的模式,因此您只需瞥一眼,就能准确知道Claude被允许做什么。

自动模式的工作原理

自动模式是"放手不管"的模式。Claude会自主运行,但在大多数操作执行之前,会有一个独立的分类器模型对其进行审查。该分类器守护的是意图。它会留意那些超出您实际要求范围的越界操作。

以下是它设计用来阻止的操作类型:

  • 生产环境部署和迁移
  • 强制推送,或将下载的代码直接传输到shell中执行
  • 将敏感数据发送到外部端点
  • 不可逆地销毁会话开始前就已存在的文件

而对于日常工作,它会放行:您项目中的本地编辑、从锁定文件安装依赖项、只读请求,以及推送到您正在处理的仓库的任意分支(包括默认分支)。例外情况是任何名称标志着其为部署目标的其他分支,例如production或gh-pages。对于推送到那里的操作,分类器会自行判断。

分类器做不到的事

分类器检查的是意图,而非正确性。它无法判断代码是否真正可行。因此,如果您要求Claude重构身份验证,而它写出了有问题的身份验证代码,分类器仍会放行,因为"有问题"并不等同于"危险"。

这就是为什么要将自动模式与运行您测试的停止钩子(stop hook)搭配使用的原因。两者协同工作:

  • 自动模式在Claude运行期间监视它试图做什么。
  • 停止钩子在Claude完成后确认代码确实可以运行。

一个在大多数操作之前守护意图,另一个在之后守护正确性。自动模式的防护机制仍在不断演进,因此请查看文档以获取当前的阻止和允许列表。

用于无人值守运行的"不询问"模式

只要没有人在场批准提示——例如CI流水线、计划任务、夜间批处理——"不询问"模式就是正确的选择。Claude仍会运行在手动模式下无需批准即可执行的操作,例如在您的工作目录内进行文件读取,以及您预先批准的工具。任何原本会触发提示的操作都会被自动拒绝。这正是它的全部意义所在。您的流水线会持续推进,而不会因为没有人在场批准而卡住。

让模式匹配工作场景

权限模式有多种,您可以通过循环按shift-tab来切换日常使用的几种模式。总结一下:

  • 自动模式 是"放手不管"的模式。分类器在大多数操作之前检查意图,停止钩子在之后检查正确性。
  • 不询问 适用于无人在场批准的无人值守流水线。
  • 绕过权限 仅适用于隔离的容器和虚拟机内部。

选择适合您当前工作的模式,让Claude在该信任级别上运行。