Coding Agent 权限模式
Coding agent 的权限模式控制 agent 在编辑文件、运行命令、访问网络时是否需要暂停请求批准,是 agent 安全工程的核心机制。
#tech / ai
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: Coding Agent MOC
- 前置概念: Agent Guardrails, Agent 中的 Approval Checkpoints
- 并列概念: Agent 中的人类监督
- 关系笔记: Agent 工程纪律
Coding Agent 权限模式
一句话定义
权限模式是 coding agent 的安全控制层,决定 agent 在编辑文件、运行 shell 命令、访问网络时是自动执行还是暂停请求人工批准,从”只读分析”到”全自动执行”之间提供多级选择。
为什么需要权限模式
Coding agent 能读写文件、执行命令、访问网络——这些都是不可逆或高风险操作。没有权限控制,agent 可能:
- 误删重要文件
- 执行破坏性 shell 命令
- 修改生产配置
- 泄露敏感信息
权限模式让用户根据任务性质和信任程度选择合适的自主级别。
各产品的权限体系
Codex 权限模式
| 模式 | 行为 | 适合场景 |
|---|---|---|
| Read-only | 只读咨询,能浏览文件,不改代码或跑命令,除非你批准计划 | 架构分析、代码理解 |
| Auto | 默认模式,工作目录内读文件、编辑、运行命令;工作区外或网络访问会询问 | 小 bug 修复、跑测试 |
| Full Access | 跨机器范围工作并访问网络,不频繁询问 | 可信仓库的大范围操作 |
CLI 中用 /permissions 切换,支持 --permission-mode 启动参数。
Claude Code 权限模式
| 模式 | 行为 | 适合场景 |
|---|---|---|
| default / Manual | 默认只读,编辑和命令要问你 | 新项目、敏感任务 |
| acceptEdits | 自动接受文件编辑和常见文件操作命令 | 你愿意事后看 diff |
| plan | 只分析和制定计划,不改源码 | 架构分析、大改前 |
| auto | 用后台安全检查减少权限提示 | 长任务、你信任方向 |
| dontAsk | 只运行预批准工具 | CI / 脚本化 |
| bypassPermissions | 跳过大多数权限提示 | 只建议隔离容器/VM |
CLI 中用 Shift+Tab 切换,或 --permission-mode 启动参数。
推荐策略
| 任务类型 | Codex 推荐 | Claude Code 推荐 |
|---|---|---|
| 架构分析 | Read-only | plan |
| 小 bug 修复 | Auto | acceptEdits |
| 跑测试/构建 | Auto | acceptEdits |
| 需要联网查文档 | Auto + 明确批准 | auto |
| 不熟悉的仓库 | Read-only | default |
| 大规模自动迁移 | 不建议 Full Access | auto + worktree |
| CI / 脚本化 | — | dontAsk |
共同原则
- 默认保守:新项目、不熟悉的仓库用最严格模式
- 逐步放开:信任建立后再放宽权限
- 审查 diff:即使自动执行,也要事后审查变更
- 危险操作永远要确认:数据库迁移、部署、删除操作不应自动执行
- 用 worktree 隔离:大范围修改在隔离环境中进行
边界与易混淆点
- 权限模式不等于沙箱——Full Access / bypassPermissions 仍然操作你的真实文件系统
- 权限模式控制的是”是否暂停请求批准”,不是”agent 能力范围”
- 即使在 auto 模式,agent 的 action transcript 仍然可审计
最短记忆方式
权限模式 = 从”只读分析”到”全自动执行”的多级安全控制,根据任务性质和信任程度选择。