指南●●○5 分钟 · +40 XP
Agent 的权限模式(Permission Modes)
从“每个操作都要确认”到自动模式:权限模式(permission modes)决定了 agent 在采取行动前,会向你请求许可的频率。
核心问题
一个能修改文件、执行命令或发起网络请求的 agent,需要规则来约束:哪些事它不用问就能做,哪些事需要你的同意?这些规则就叫权限模式(permission modes)。
Claude Code 里最重要的几种模式
- 手动(默认):只允许读取,每次文件改动和每个命令执行前都要确认。
- Accept Edits:文件改动和简单的文件系统命令(比如创建文件夹)不用确认就能执行,其他一切仍需确认。
- Plan 模式:agent 只能做调研、写计划,不能做任何改动——适合在真正动手之前先探索。
- Auto 模式:几乎所有操作都不用确认,后台会有一个额外的检查模型拦截有风险的操作(比如生产环境部署、force push)。
- Bypass Permissions:所有检查都关闭——只适用于像没有联网的容器这样的隔离环境。
如何切换
在命令行里,用 Shift+Tab 就能在各个模式间切换,也可以直接用像 --permission-mode plan 这样的标志启动。
经验法则
权限尽量少给,但要给够用(最小权限原则)。处理敏感工作或不熟悉的代码时:用手动模式。处理反正之后都要看 diff 检查的常规改动:用 Accept Edits。Bypass Permissions 只能在真正的沙盒里用,绝不要在你的正式电脑上用。
示例
面对一个陌生的新代码库,用“claude --permission-mode plan”启动。agent 会先探索,再提出一份计划。等你确认之后,你(比如)再切换到 Accept Edits 模式,让它真正写入这些改动——而不用逐个确认每一次文件改动。
🛠️ 练习——自己动手试试
在一个正在运行的 Claude Code 会话里,有意识地在两种权限模式之间切换,观察它们的区别。
- 在一个测试项目里以默认模式(手动)启动 Claude Code,请它做一个小的代码改动——观察确认提示。
- 用 Shift+Tab 切换到 Accept Edits 模式,请它做同类型的改动——比较一下现在哪些操作不用确认就能运行,哪些仍然需要确认。
- 切换到 Plan 模式,请它做一个更大的改动——确认在你接受计划之前,真的没有任何文件被改动。
✅ 自查清单
- ☐ 你能说清楚在 Accept Edits 模式下,哪些操作是自动执行的,哪些仍然会询问吗?
- ☐ 你理解为什么 Plan 模式不会改动任何东西,尽管 agent 一直在读取文件、执行命令吗?
- ☐ 你知道为什么 Bypass Permissions 只在隔离环境里才有意义吗?
小测验
选择权限模式时的经验法则是什么?
来源
- Claude Code 文档:选择权限模式 ↗ code.claude.com
- Claude 文档:Agent SDK 中的 Permissions ↗ platform.claude.com