工作模式
Codex 提供多种工作模式以适应不同的使用场景。理解这些模式的特点和适用场景,可以帮助你更高效地使用 Codex。
模式概览
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 标准模式 | 直接执行操作 | 日常开发、快速修改 |
| 计划模式 | 先规划后执行 | 复杂任务、架构设计 |
| 沙箱模式 | 受限执行环境 | 不受信任的代码、安全敏感场景 |
标准模式
标准模式是 Codex 的默认工作模式。在该模式下,Codex 会直接执行你请求的操作。
特点
- 直接修改文件
- 自动执行命令
- 实时反馈结果
使用方式
bash
# 默认即为标准模式
codex "重构这个模块"适用场景
- 简单的代码修改
- 文件创建和编辑
- 运行测试和构建
- 日常开发辅助
计划模式
计划模式(Plan Mode)让 Codex 先制定执行计划,经用户确认后再执行操作。
进入计划模式
bash
# 通过 CLI 标志进入
codex --plan
# 在交互模式中切换
> /plan退出计划模式
bash
# 在计划模式中退出
> /plan
# 或使用快捷键
# Ctrl+D 退出会话计划模式工作流
用户请求 → Codex 分析 → 制定计划 → 用户确认 → 执行操作 → 结果反馈最佳实践
复杂任务使用计划模式
> 重构整个认证系统 > 设计新的 API 架构 > 迁移数据库模式审查执行计划
- 确认步骤是否完整
- 检查是否有遗漏的依赖
- 验证操作顺序是否合理
分阶段执行
- 大型任务拆分为多个计划
- 每个计划完成后验证结果
- 根据实际情况调整后续计划
适用场景
- 多文件重构
- 架构设计决策
- 数据库迁移
- 新功能开发
沙箱模式
沙箱模式限制了 Codex 的操作能力,提供安全的执行环境。
沙箱限制
| 能力 | 沙箱模式 | 信任模式 |
|---|---|---|
| 文件读取 | ✅ 允许 | ✅ 允许 |
| 文件写入 | ⚠️ 需审批 | ✅ 允许 |
| 命令执行 | ⚠️ 受限 | ✅ 允许 |
| 网络访问 | ⚠️ 受限 | ✅ 允许 |
进入沙箱模式
bash
# 强制沙箱模式
codex --sandbox
# 项目级别配置(在 config.toml 中)
[projects."/path/to/project"]
trust_level = "untrusted"退出沙箱模式
bash
# 禁用沙箱
codex --no-sandbox
# 或设置项目为受信任
[projects."/path/to/project"]
trust_level = "trusted"适用场景
- 处理不受信任的代码
- 安全审查
- 第三方代码分析
- 学习探索
权限系统
信任级别
Codex 通过项目路径管理信任级别:
toml
# ~/.codex/config.toml
[projects."/home/haha/codes/my-project"]
trust_level = "trusted"
[projects."/tmp/downloads"]
trust_level = "untrusted"权限矩阵
| 操作 | trusted | untrusted |
|---|---|---|
| 读取文件 | ✅ 自动 | ✅ 自动 |
| 写入文件 | ✅ 自动 | ⚠️ 需审批 |
| 删除文件 | ✅ 自动 | ⚠️ 需审批 |
| 执行命令 | ✅ 自动 | ⚠️ 需审批 |
| 网络请求 | ✅ 自动 | ⚠️ 需审批 |
| 安装依赖 | ✅ 自动 | ⚠️ 需审批 |
审批流程
当操作需要审批时,Codex 会显示:
⚠️ 需要审批:写入文件 /path/to/file.ts
操作:修改文件内容
原因:项目信任级别为 untrusted
是否允许? [y/N]自动审批规则
可以为不同来源的操作设置自动审批:
MCP 工具自动审批
toml
[mcp_servers.filesystem.tools.read_text_file]
approval_mode = "approve"项目信任级别自动审批
项目标记为 trusted 后,文件写入和命令执行自动批准:
toml
[projects."/home/haha/codes/my-app"]
trust_level = "trusted"注意:信任级别和工具审批是信任控制的两个层次。信任级别控制 Codex 自身行为(文件/命令),MCP 工具审批控制外部工具访问。
模式对比
标准模式 vs 计划模式
| 方面 | 标准模式 | 计划模式 |
|---|---|---|
| 执行方式 | 直接执行 | 先规划后执行 |
| 用户控制 | 事后审查 | 事前确认 |
| 适用复杂度 | 简单任务 | 复杂任务 |
| 执行速度 | 快 | 较慢(需确认) |
| 可预测性 | 较低 | 较高 |
沙箱模式 vs 信任模式
| 方面 | 沙箱模式 | 信任模式 |
|---|---|---|
| 安全性 | 高 | 较低 |
| 效率 | 较低(需审批) | 高(自动执行) |
| 适用场景 | 不受信任代码 | 自己的项目 |
| 文件写入 | 需审批 | 自动允许 |
| 命令执行 | 需审批 | 自动允许 |
实际使用建议
1. 根据任务选择模式
bash
# 简单修改 → 标准模式
codex "修复这个 typo"
# 复杂重构 → 计划模式
codex --plan "重构认证系统"
# 第三方代码 → 沙箱模式
codex --sandbox "分析这个下载的脚本"2. 项目信任配置
toml
# 自己的项目设为 trusted
[projects."/home/haha/codes/my-app"]
trust_level = "trusted"
# 临时/下载目录设为 untrusted
[projects."/tmp"]
trust_level = "untrusted"3. 工具审批策略
toml
# 低风险工具自动批准
[mcp_servers.filesystem.tools.read_text_file]
approval_mode = "approve"
# 高风险操作保持询问
# write_file 不设置 approval_mode → 每次询问快捷键参考
| 快捷键 | 功能 | 适用模式 |
|---|---|---|
Ctrl+C | 取消当前操作 | 所有模式 |
Ctrl+D | 退出会话 | 所有模式 |
Esc | 中断 AI 输出 | 所有模式 |
/plan | 切换计划模式 | 交互模式 |
常见问题
Q: 如何知道当前处于哪种模式?
A: Codex 会在会话开始时显示当前模式。你也可以通过状态栏查看。
Q: 计划模式中如何修改计划?
A: 直接告诉 Codex 你的修改意见,它会更新计划。
Q: 沙箱模式下被拒绝的操作怎么办?
A: 你可以选择手动执行该操作,或者将项目信任级别提升为 trusted。
Q: 可以临时覆盖信任级别吗?
A: 可以,使用 --sandbox 或 --no-sandbox 标志临时覆盖。