promptgarten 🌱
🌍 DE
指南●●○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 会话里,有意识地在两种权限模式之间切换,观察它们的区别。

  1. 在一个测试项目里以默认模式(手动)启动 Claude Code,请它做一个小的代码改动——观察确认提示。
  2. 用 Shift+Tab 切换到 Accept Edits 模式,请它做同类型的改动——比较一下现在哪些操作不用确认就能运行,哪些仍然需要确认。
  3. 切换到 Plan 模式,请它做一个更大的改动——确认在你接受计划之前,真的没有任何文件被改动。

自查清单

  • 你能说清楚在 Accept Edits 模式下,哪些操作是自动执行的,哪些仍然会询问吗?
  • 你理解为什么 Plan 模式不会改动任何东西,尽管 agent 一直在读取文件、执行命令吗?
  • 你知道为什么 Bypass Permissions 只在隔离环境里才有意义吗?

小测验

选择权限模式时的经验法则是什么?

来源

相关主题

自主 agent 的护栏(guardrails) ●●●Vibe coding 中的安全问题 ●●○Claude Code:Anthropic 的命令行 agent ●●○Agent 卡住了?这样解套 ●●○