Sooua
登录
返回文章列表
Codex··3 分钟阅读

审批模式与安全入门:控制 Agent 的自主边界

Codex 的权限控制采用"沙盒(Sandbox)× 审批策略(Approval Policy)"双轨模型。这两个维度正交组合,产生 9 种实际权限状态:

官方原文索引: Approval Modes / Agent Approvals & Security / Sandbox


1. 核心架构与原理解析

Codex 的权限控制采用**"沙盒(Sandbox)× 审批策略(Approval Policy)"**双轨模型。这两个维度正交组合,产生 9 种实际权限状态:

read-onlyworkspace-writedanger-full-access
on-request只读分析,越界需确认✅ 日常开发推荐全权限但关键操作确认
never只读,无确认打断CI 自动编辑⚠️ 裸奔模式,极度危险
untrusted每个操作都确认每个写入都确认每个操作都确认

沙盒的技术实现:

🛠️ 专家视角 / 架构思考: 新手最常犯的错误是混淆"审批模式"和"沙盒模式"。审批模式回答"什么时候问你",沙盒模式回答"能碰哪些文件"。最危险的组合不是 danger-full-access + on-request,而是 workspace-write + never——因为网络访问在 workspace-write 下默认禁用,而 danger-full-access 的审批策略仍可能拦住高危操作。


2. 工程落地与代码示例

三种启动模式

# 模式 1:只读咨询(最安全)
codex --approval-mode suggest --sandbox read-only
# 或交互式切换:/approvals → Read Only
 
# 模式 2:日常开发(推荐)
codex --full-auto
# 等价于:--approval-mode on-request --sandbox workspace-write
 
# 模式 3:全自动(仅限隔离环境)
codex --approval-mode never --sandbox workspace-write
 
# 模式 4:裸奔(仅限 Docker/VM)
codex --yolo
# 等价于:--approval-mode never --sandbox danger-full-access

交互式审批切换

在 Codex TUI 中输入:

/approvals

→ Read Only      # 只看不动,适合审查
→ Auto           # 工作区内自动,越界询问(默认)
→ Full Access    # 更大权限,但仍有关键确认

企业强制策略(requirements.toml)

# 管理员强制,用户不可覆盖
allowed_sandbox_modes = ["read-only", "workspace-write"]
allowed_approval_policies = ["on-request", "untrusted"]
 
# 禁止自动审批模式(防止误操作)
blocked_approval_policies = ["never"]

审批决策流程示例


3. 场景深入:不同场景下的权限配置

场景:代码审查会议

# 审查模式:只看不动,零风险
codex --sandbox read-only --approval-mode suggest
 
> /review main
> 请审查这些改动的安全性

场景:CI/CD 自动修复

# CI 模式:自动但限定范围
codex exec \
  --approval-mode never \
  --sandbox workspace-write \
  --model gpt-5.3-codex \
  "修复 lint 错误并格式化代码"

场景:新人 onboarding

# 新人模式:每个操作都确认
codex --approval-mode untrusted --sandbox workspace-write
 
# 等熟悉后再切到默认模式
> /approvals
> Auto

4. 💡 核心避坑与最佳实践 (Takeaways)

  • 新手起步三原则:① 先用 Read Only 探路 ② 熟悉后再切 Auto ③ 永远不要在未 git commit 的情况下切 Full Access
  • --yolo 不是英雄模式:它是 "you only live once" 的缩写,意味着一旦出错可能无法挽回
  • Windows 用户特别注意:Windows 沙盒是用户态实现,安全性弱于 macOS/Linux,建议配合 WSL2 使用
  • Git 是最终安全网:启用任何自动模式前,务必 git commit -m "pre-codex checkpoint"
  • 团队统一策略:通过 requirements.toml 锁定团队最小权限,防止个人误配置
分享

评论

登录 后参与讨论。

加载中…

相关文章