Refinex DevHubRefinex DevHub
DocsBlogProjectsSitesChangelogAbout
Assistant
你好,我可以基于当前页面内容回答问题、提炼重点,或者告诉你下一步应该继续读什么。
  1. Docs›
  2. config.toml 深度配置指南
Overview
Codex 全景:产品矩阵、模型演进与定价
安装与首次运行:5 分钟从零到第一次对话
核心概念精讲:Prompting、Sandboxing 与 Approval
Codex CLI 深度指南:终端中的编码智能体
Codex App 深度指南:多智能体的指挥中心
IDE Extension 深度指南:编辑器内的 AI 搭档
Codex Web/Cloud:云端异步任务与环境配置
AGENTS.md:让 Codex 真正理解你的项目
config.toml 深度配置指南
MCP 集成深度指南
Agent Skills 深度指南
Subagents:多智能体并行工作流
集成:GitHub、Slack、Linear
自动化与程序化控制:Non-interactive、SDK、App Server
Codex Security:仓库安全扫描与威胁建模
企业部署与团队治理
Prompting 高级指南:从 Cookbook 到实战模式
终极实战:构建 AI 编码团队
  1. Docs›
  2. config.toml 深度配置指南

config.toml 深度配置指南

config.toml 是 Codex 的中枢神经系统。它控制模型选择、沙箱策略、审批行为、Shell 环境、TUI 外观、历史记录等几乎所有运行时行为。本文基于官方 Config Basics、Advanced Config、Config Reference、Sample Config 和 Team Config 五份文档,对每个配置域进行全字段精讲。

一、多层配置覆盖体系

Codex 不是只读一个配置文件。它从多个层级加载配置,按 优先级从高到低 依次覆盖:

优先级来源说明
1CLI flags / --config 覆盖单次运行级别,如 codex --model gpt-5.4 或 codex -c sandbox_workspace_write.network_access=true
2Profile 值(--profile <name>)命名配置档案,覆盖顶层默认值
3项目配置 .codex/config.toml从项目根到当前工作目录,就近优先;仅在项目受信任时加载
4用户配置 ~/.codex/config.toml个人默认值,所有项目共享
5系统配置 /etc/codex/config.tomlUnix 系统级默认,通常由管理员设置
6内置默认值Codex 硬编码的出厂设置

官方原话:「Use that precedence to set shared defaults at the top level and keep profiles focused on the values that differ.」

1.1 项目配置的信任机制

项目级配置文件 .codex/config.toml 存在安全风险(恶意仓库可能注入危险配置),因此 Codex 只在 项目被标记为受信任时 才加载。如果项目未受信任,Codex 跳过所有 .codex/ 层级,直接回退到用户配置和系统配置。

1.2 项目根检测

Codex 从工作目录向上遍历,找到包含 .git 的目录即为项目根。可自定义:

Toml
# 自定义项目根标记文件
project_root_markers = [".git", ".hg", ".sl"]
​
# 设为空数组 = 将当前工作目录视为项目根,不向上搜索
project_root_markers = []

1.3 单次运行覆盖

-c / --config 接受 TOML 格式的键值对,支持点号嵌套:

Bash
# 字符串值需要 TOML 引号
codex --config model='"gpt-5.4"'
​
# 布尔/数值直接写
codex --config sandbox_workspace_write.network_access=true
​
# 数组值
codex --config 'shell_environment_policy.include_only=["PATH","HOME"]'

二、Profiles(配置档案)

实验性功能

Profiles 目前为实验性功能,可能在未来版本中变更或移除。当前仅 CLI 支持,IDE 扩展暂不支持。

Profiles 解决的核心问题:不同项目、不同任务需要不同的模型和策略组合。

2.1 定义与使用

在 config.toml 中定义命名档案,通过 --profile 切换:

Toml
# ===== 顶层默认值 =====
model = "gpt-5.4"
approval_policy = "on-request"
model_reasoning_effort = "medium"
​
# ===== 深度审查档案 =====
[profiles.deep-review]
model = "gpt-5-pro"
model_reasoning_effort = "high"
approval_policy = "never"
​
# ===== 轻量快速档案 =====
[profiles.lightweight]
model = "gpt-4.1"
approval_policy = "untrusted"
​
# ===== 本地模型档案 =====
[profiles.local]
model = "deepseek-coder-v3"
model_provider = "ollama"
approval_policy = "on-request"

使用方式:

Bash
# 命令行指定
codex --profile deep-review
​
# 或设为默认
profile = "deep-review"  # 写在 config.toml 顶层

2.2 多项目多模型切换策略

Profile 还可以覆盖 model_catalog_json(模型目录),当顶层和 Profile 同时设置时,Profile 的值优先。

场景Profile模型推理力度
日常编码(默认)gpt-5.4medium
架构审查 / 安全审计deep-reviewgpt-5-prohigh
快速原型 / 简单查询lightweightgpt-4.1low
离线开发 / 隐私场景local本地模型取决于模型

2.3 Profile 可覆盖的字段

Profile 支持覆盖大多数顶层配置键,包括:model、model_provider、approval_policy、sandbox_mode、service_tier、oss_provider、model_reasoning_effort、plan_mode_reasoning_effort、model_reasoning_summary、model_verbosity、personality、chatgpt_base_url、model_catalog_json。

三、核心模型与推理配置

3.1 模型选择

Toml
# 主模型
model = "gpt-5.4"
​
# 模型提供方(内置:openai / ollama / lmstudio)
model_provider = "openai"
​
# /review 专用模型(默认使用当前会话模型)
# review_model = "gpt-5.4"
​
# 服务层级:fast(快速路径)| flex
# service_tier = "flex"

3.2 推理控制

Toml
# 推理力度:minimal | low | medium | high | xhigh
model_reasoning_effort = "medium"
​
# Plan 模式专用推理力度
plan_mode_reasoning_effort = "high"
​
# 推理摘要:auto | concise | detailed | none
model_reasoning_summary = "auto"
​
# 输出详细度(仅 Responses API 生效):low | medium | high
model_verbosity = "medium"
​
# 强制启用/禁用推理摘要
# model_supports_reasoning_summaries = true

3.3 上下文窗口与压缩

Toml
# 手动设置上下文窗口大小(默认自动检测)
# model_context_window = 128000
​
# 自动压缩触发阈值(token 数)
# model_auto_compact_token_limit = 64000
​
# 每次工具输出保留的最大 token 数
# tool_output_token_limit = 12000
GPT-5.4 · 1M 上下文最佳阈值配置

model_context_window = 1050000

model_auto_compact_token_limit = 700000

为什么是 700k(~67%)而不是 900k(~86%)或默认 50%?

这是基于以下多维证据的最佳临界点:

证据链 ① — "Lost in the Middle" 效应

Stanford 论文(Liu et al., 2023, TACL)及 2025-2026 后续研究证实:LLM 对上下文头尾信息召回率 85-95%,中段急剧下降至 76-82%。这是 Transformer 注意力机制的结构性缺陷,GPT-5.4 虽有改善但未根治。上下文越大,中段「盲区」越长。

证据链 ② — GPT-5.x 实测质量拐点

Reddit r/LocalLLaMA 社区大规模实测(2025-2026):「GPT-5 is like a laser up to about 100k, but starts falling off sooner than Gemini and falls off harder once it does.」GPT-5.4 虽优于 5.2(幻觉率 ↓33%),但超过 ~200k token 后,推理精度和事实准确性仍有可测量的下降。

证据链 ③ — xhigh 推理的 token 开销

reasoning_effort = "xhigh" 时,每轮对话的隐藏推理 token 可达 50-100k+。如果压缩阈值设在 900k,仅剩 150k 给下一轮的输入 + 推理 + 输出,极端情况下会触发「Codex ran out of room」错误。700k 阈值留出 350k 余量,足以容纳 xhigh 推理的峰值消耗。

证据链 ④ — Token 成本与压缩质量权衡

每次 API 调用的成本与输入 token 数近似成正比。900k → 700k 每次请求节省 ~22% 成本。同时,Codex 的压缩会丢失细节(社区反馈:压缩后模型「忘记」先前约定的代码风格、变量命名等),因此不能压得太频繁,但也不能让上下文膨胀到模型注意力退化。

最终判断:700,000(~67%)是最佳临界点
阈值窗口占比对比默认评估
525k50%(默认)—❌ 压缩过频,细节丢失,模型响应偏差
630k60%+20%⚠️ 可用但保守
700k67%+33%✅ 最佳平衡:上下文充裕 + 质量安全区 + xhigh 余量
800k76%+52%⚠️ 接近质量退化区,余量偏紧
900k86%+71%❌ 幻觉风险 ↑,xhigh 余量不足,成本过高

700k 相比默认多保留 17% 的有效上下文(175k token),同时将工作区控制在 GPT-5.4 注意力质量的安全范围内,并为 xhigh 推理保留充足余量。

3.4 沟通风格

Toml
# 人格风格:friendly | pragmatic | none
personality = "pragmatic"
  • friendly:友善详细,适合学习和探索
  • pragmatic:务实简洁,直击技术要点
  • none:无人格,纯输出

会话中可通过 /personality 命令随时切换。

四、审批策略与沙箱深度配置

4.1 审批策略

Toml
# 三档基础策略
approval_policy = "on-request"  # untrusted | on-request | never
​
# 允许 login shell 语义
allow_login_shell = true

三档策略对比:

策略行为适用场景
untrusted仅已知安全的只读命令自动执行,其余全部需要确认新项目、不信任的代码库
on-request模型自行判断何时需要征求批准日常开发推荐,平衡效率与安全
never永不询问,所有操作自动执行高风险,仅建议在完全隔离的环境中使用

细粒度审批策略

对于需要更精细控制的场景,可以使用 granular 模式:

Toml
approval_policy = { granular = {
  sandbox_approval = true,       # 沙箱相关操作需要审批
  rules = true,                  # 规则匹配的命令需要审批
  mcp_elicitations = true,       # MCP 交互需要审批
  request_permissions = false,   # 权限请求自动拒绝
  skill_approval = false         # Skill 脚本自动拒绝
} }

4.2 沙箱模式

Toml
# 三级沙箱
sandbox_mode = "workspace-write"  # read-only | workspace-write | danger-full-access
模式文件访问说明
read-only只读最安全,Codex 无法写入任何文件
workspace-write工作区可读写.git/ 和 .codex/ 自动保护为只读
danger-full-access完全访问无沙箱,极高风险

4.3 workspace-write 沙箱细节

Toml
[sandbox_workspace_write]
# 额外可写路径(除工作区外)
writable_roots = ["/Users/YOU/.pyenv/shims"]
​
# 是否允许子进程访问网络
network_access = false
​
# 是否将 $TMPDIR 排除出可写范围
exclude_tmpdir_env_var = false
​
# 是否将 /tmp 排除出可写范围
exclude_slash_tmp = false

writable_roots 详解

默认情况下 workspace-write 只允许写入当前工作区。某些工具链需要写入工作区之外的路径:

  • Python 虚拟环境管理器(pyenv/pipenv)写入 ~/.pyenv/shims
  • Node.js 全局安装写入 ~/.npm 或 ~/.nvm
  • Gradle/Maven 写入 ~/.gradle 或 ~/.m2

将这些路径加入 writable_roots 即可解除限制。注意 .git/ 和 .codex/ 始终受保护,即使它们在可写范围内。

network_access 详解

默认 false。关闭网络访问是安全最佳实践:

  • 防止恶意代码外泄数据
  • 防止 Codex 执行的命令访问不可预期的远程端点
  • 需要 npm install、pip install 等网络操作时,Codex 会自动请求审批

设置 true 后,沙箱内的所有进程均可自由访问网络。

exclude_tmpdir 详解

默认 false(即 $TMPDIR 和 /tmp 都可写)。某些安全策略要求收紧临时目录访问:

Toml
[sandbox_workspace_write]
exclude_tmpdir_env_var = true  # 排除 $TMPDIR
exclude_slash_tmp = true       # 排除 /tmp

收紧后,需要临时文件的工具可能会失败。建议仅在企业安全合规要求下启用。

4.4 Windows 沙箱

Toml
[windows]
sandbox = "elevated"    # elevated(推荐)| unelevated(无管理员权限时的后备)

elevated 使用管理员权限实现更强的进程隔离,是 Windows 原生沙箱的推荐模式。

五、Shell 环境策略深度解析

[shell_environment_policy] 控制 Codex 启动的每个子进程能看到哪些环境变量。核心目标:传递必要变量,同时不泄露密钥。

5.1 三种继承模式

模式行为适用场景
all继承所有环境变量,然后应用排除规则默认值,日常开发推荐
core仅继承核心变量(PATH、HOME 等),其余需显式包含安全敏感项目
none不继承任何变量,一切从零开始最高安全级别,CI/CD 环境

5.2 过滤管道

无论选择哪种继承模式,变量都经过以下过滤管道:

Text
原始环境变量集
  │
  ├─ inherit 决定起始集
  │
  ├─ 默认排除(名称含 KEY/SECRET/TOKEN,大小写不敏感)
  │   └─ ignore_default_excludes = true 可跳过此步
  │
  ├─ exclude 模式匹配排除(glob 格式,大小写不敏感)
  │
  ├─ include_only 白名单(非空时,仅保留匹配项)
  │
  └─ set 显式覆盖(始终胜出)
      │
      ▼
  最终传递给子进程的变量集

5.3 配置示例

场景 A:日常开发(默认推荐)

Toml
[shell_environment_policy]
inherit = "all"
ignore_default_excludes = false  # 保留自动过滤 KEY/SECRET/TOKEN
exclude = []                     # 不需要额外排除
set = {}                         # 不需要额外设置

场景 B:安全敏感项目

Toml
[shell_environment_policy]
inherit = "all"
ignore_default_excludes = false
exclude = ["AWS_*", "AZURE_*", "GCP_*", "DOCKER_*"]
set = { NODE_ENV = "development" }

场景 C:最高安全级别(CI/CD)

Toml
[shell_environment_policy]
inherit = "none"
set = { PATH = "/usr/bin:/usr/local/bin", HOME = "/tmp/codex", LANG = "en_US.UTF-8" }

场景 D:白名单模式

Toml
[shell_environment_policy]
inherit = "all"
include_only = ["PATH", "HOME", "LANG", "JAVA_HOME", "MAVEN_HOME"]
注意

exclude 的模式是 大小写不敏感的 glob 格式,支持 *、?、[A-Z]。例如 "AWS_*" 会匹配 AWS_ACCESS_KEY_ID、aws_secret_key 等所有变体。

5.4 实验性:Shell Profile 加载

Toml
[shell_environment_policy]
experimental_use_profile = false  # 实验性:通过用户 shell profile 运行

启用后,Codex 会通过用户的 shell profile(.bashrc/.zshrc)运行,确保别名和自定义函数可用。但这也意味着 profile 中的任何副作用都会影响 Codex 的子进程。

六、Feature Flags 全量解析

Feature Flags 是 Codex 的能力开关,分为 Stable(稳定)和 Experimental(实验性)两类。

Toml
[features]
# 在此显式设置为 true/false,未设置的保持默认值

6.1 Stable 功能

Feature默认说明
shell_tooltrue保持默认 shell 命令执行能力。关闭后 Codex 无法运行终端命令
shell_snapshottrue快照 Shell 环境加速重复命令执行。对频繁 build/test 的流程提速明显
multi_agenttrue启用子代理协作工具(spawn_agent 等),支持多代理并行工作
fast_modetrue启用 Fast 模式路径(service_tier = "fast"),简单任务快速响应
personalitytrue保持 /personality 命令和人格选择控件可用
undofalse基于 git ghost snapshot 的逐轮撤销。代码变更可随时回滚,安全网
unified_exectrue*使用统一 PTY-backed exec 工具。*Windows 上默认 false
enable_request_compressiontruezstd 压缩流式请求体,减少带宽消耗
skill_mcp_dependency_installtrue当 Skill 声明 MCP 依赖时,自动安装并连接
prevent_idle_sleepfalse防止系统在 Codex 运行长任务时休眠

6.2 Experimental 功能

Feature默认说明
appsfalseChatGPT Apps/Connectors 支持。稳定性未经验证,可能导致意外行为
smart_approvalsfalseGuardian 子代理审批路由:让一个专门的审查代理决定是否批准操作

6.3 Deprecated 功能

Feature说明
web_search遗留开关,已被顶层 web_search 设置取代
web_search_cached遗留开关,映射到 web_search = "cached"
web_search_request遗留开关,映射到 web_search = "live"

6.4 启用方式

Bash
# 在 config.toml 中设置
[features]
undo = true
prevent_idle_sleep = true
​
# 或通过 CLI 临时启用
codex --enable undo --enable prevent_idle_sleep
​
# CLI 仅支持启用,要禁用需在 config.toml 中设为 false

6.5 推荐配置

Toml
[features]
shell_snapshot = true           # Stable — 加速重复命令
multi_agent = true              # Stable — 子代理并行
fast_mode = true                # Stable — 简单任务快速响应
shell_tool = true               # Stable — 保持 shell 能力
personality = true              # Stable — 人格选择
undo = true                     # Stable — 启用撤销安全网
enable_request_compression = true  # Stable — 压缩请求
skill_mcp_dependency_install = true # Stable — Skill MCP 自动安装
# unified_exec = false          # Windows 用户设为 false
# apps = false                  # Experimental — 暂不启用
# smart_approvals = false       # Experimental — 暂不启用

七、TUI 终端界面配置

[tui] 表控制 Codex 的终端交互体验。

7.1 主题

Toml
[tui]
# 语法高亮主题(kebab-case)
theme = "catppuccin-mocha"
  • 使用 /theme 命令在 TUI 中实时预览和保存主题
  • 可将自定义 .tmTheme 文件放入 $CODEX_HOME/themes 目录
  • 常用主题:catppuccin-mocha、one-dark、github-dark、solarized-dark

7.2 通知

Codex 有两套通知机制:

内置 TUI 通知:

Toml
[tui]
# 桌面通知:布尔值或事件类型过滤列表
notifications = true
# 精细控制:仅在特定事件时通知
# notifications = ["agent-turn-complete", "approval-requested"]
​
# 通知方式:auto | osc9 | bel
notification_method = "auto"
  • auto:优先使用 OSC 9 通知(终端转义序列),回退到 BEL(\x07)
  • osc9:强制使用 OSC 9 终端通知
  • bel:强制使用 BEL 声音通知

外部通知程序(高级,顶层配置):

Toml
# 外部通知程序(argv 数组)
notify = ["python3", "/path/to/notify.py"]

外部通知程序接收 JSON 参数,包含 type、thread-id、turn-id、cwd、input-messages、last-assistant-message 等字段。适用于 Webhook、桌面通知器、CI 更新等场景。

7.3 动画与提示

Toml
[tui]
# 欢迎屏、加载动画等
animations = true
​
# 新手提示(深度用户可关闭)
show_tooltips = false
​
# 交替屏幕控制(auto 在 Zellij 中跳过以保留滚动历史)
# alternate_screen = "auto"

7.4 状态栏定制

Toml
[tui]
# 底部状态栏显示项(有序列表)
# 默认:["model-with-reasoning", "context-remaining", "current-dir"]
status_line = ["model", "context-remaining", "git-branch"]
​
# 设为空数组隐藏状态栏
# status_line = []

八、历史记录管理

Toml
[history]
# 持久化模式:save-all | none
persistence = "save-all"
​
# 历史文件最大字节数
max_bytes = 104857600  # 100 MiB

8.1 持久化行为

  • save-all:Codex 将完整会话记录保存到 $CODEX_HOME/history.jsonl
  • none:不保存任何历史,会话结束即丢失

8.2 容量控制

当 history.jsonl 超过 max_bytes 上限时,Codex 自动执行:

  1. 删除最旧的条目
  2. 压缩文件
  3. 保留最新的记录

推荐设置 100 MiB(104857600),足够保留大量历史的同时避免磁盘膨胀。

8.3 会话恢复

历史持久化支持 codex resume 恢复上一次会话,在长时间任务中断时非常有用。

九、Web 搜索配置

Toml
# 搜索模式:disabled | cached | live
web_search = "cached"
模式行为安全性
disabled关闭 Web 搜索工具最安全,无外部信息注入
cached使用 OpenAI 维护的预索引缓存推荐,降低 prompt injection 风险
live实时抓取最新网页数据数据最新但有注入风险,等同 --search

注意:使用 --yolo 或 danger-full-access 沙箱时,Web 搜索自动切换为 live。

十、子代理配置

Toml
[agents]
# 最大并发代理线程数(默认 6)
max_threads = 6
​
# 最大嵌套深度(根会话 = 0,默认 1)
max_depth = 1
​
# CSV 批量任务的每个 worker 超时时间(默认 1800 秒)
# job_max_runtime_seconds = 1800

角色定义

可以在 [agents] 下定义具名角色,让不同代理使用不同的配置:

Toml
[agents.reviewer]
description = "Find correctness, security, and test risks in code."
config_file = "./agents/reviewer.toml"
nickname_candidates = ["Athena", "Ada"]

十一、Team Config 与 requirements.toml

11.1 Team Config

Team Config 让团队在仓库中标准化 Codex 配置,无需每人手动设置。将配置文件签入仓库的 .codex 目录:

类型路径用途
基础配置.codex/config.toml设置团队默认的沙箱模式、审批策略、模型、推理力度等
规则.codex/rules/控制 Codex 可以在沙箱外运行哪些命令
技能.codex/skills/团队共享的 Skills

建议从最高流量的仓库开始部署 Team Config,确保团队在最常使用 Codex 的地方获得一致的行为。

11.2 requirements.toml(管理员强制策略)

requirements.toml 是企业管理员通过 Codex Policies 页面部署的强制约束。它使用与 config.toml 相同的格式,但层级更高 — 用户无法覆盖。

核心功能

  • 限制允许的配置值:例如只允许 on-request 审批策略
  • 限制沙箱模式:禁止 danger-full-access
  • 限制 Web 搜索:只允许 cached 或 disabled
  • 规则强制:要求特定命令必须经过审批

示例

Toml
# requirements.toml — 企业标准策略
allowed_web_search_modes = ["disabled", "cached"]
allowed_sandbox_modes = ["workspace-write"]
allowed_approval_policies = ["on-request"]
​
[rules]
prefix_rules = [
  { pattern = [{ token = "git" }, { any_of = ["push", "commit"] }],
    decision = "prompt",
    justification = "Require review before mutating remote history." },
]

部署模式

  • 管理员在 ChatGPT Enterprise 的 Codex Policies 页面创建策略
  • 将策略分配给特定用户组
  • 配置默认回退策略(未匹配到用户组时生效)
  • 如果用户匹配多个组,第一个匹配的规则生效

11.3 完整配置层级总览

Text
requirements.toml(管理员强制,不可覆盖)
  │
  ▼
CLI flags / --config(单次运行覆盖)
  │
  ▼
Profile(命名配置档案)
  │
  ▼
.codex/config.toml(项目级,CWD → 项目根,就近优先)
  │
  ▼
~/.codex/config.toml(用户级)
  │
  ▼
/etc/codex/config.toml(系统级)
  │
  ▼
内置默认值

十二、自定义模型提供方

Toml
# 指向自定义提供方
model_provider = "proxy"
​
[model_providers.proxy]
name = "OpenAI using LLM proxy"
base_url = "http://proxy.example.com"
env_key = "OPENAI_API_KEY"
​
[model_providers.ollama]
name = "Ollama"
base_url = "http://localhost:11434/v1"
​
[model_providers.azure]
name = "Azure"
base_url = "https://YOUR_PROJECT.openai.azure.com/openai"
env_key = "AZURE_OPENAI_API_KEY"
query_params = { api-version = "2025-04-01-preview" }
wire_api = "responses"

简化方式:仅改 base URL

如果只需要将内置 OpenAI 提供方指向代理或数据驻留端点:

Toml
# 不需要定义新的 provider,直接覆盖 base URL
openai_base_url = "https://us.api.openai.com/v1"

OSS 模式(本地模型)

Toml
# 默认本地提供方
oss_provider = "ollama"  # 或 "lmstudio"

使用 codex --oss 启动时自动选择该提供方。

提供方调优

Toml
[model_providers.openai]
request_max_retries = 4        # API 请求最大重试次数(默认 4,上限 100)
stream_max_retries = 10        # 流式连接最大重试次数(默认 5,上限 100)
stream_idle_timeout_ms = 300000  # 流式空闲超时(默认 300000 = 5 分钟)

十三、可观测性与遥测

13.1 OpenTelemetry 导出

Toml
[otel]
environment = "staging"       # 环境标签(默认 "dev")
exporter = "none"             # none | otlp-http | otlp-grpc
log_user_prompt = false       # 是否记录用户提示词(默认隐藏)

HTTP 导出

Toml
[otel]
exporter = { otlp-http = {
  endpoint = "https://otel.example.com/v1/logs",
  protocol = "binary",
  headers = { "x-otlp-api-key" = "${OTLP_TOKEN}" }
}}

gRPC 导出

Toml
[otel]
exporter = { otlp-grpc = {
  endpoint = "https://otel.example.com:4317",
  headers = { "x-otlp-meta" = "abc123" }
}}

13.2 匿名指标

Toml
[analytics]
enabled = true   # 匿名使用数据(帮助改进 Codex,无 PII)
​
[feedback]
enabled = true   # /feedback 命令

十四、其他实用配置

14.1 引用链接

Toml
# URI scheme:vscode | vscode-insiders | windsurf | cursor | none
file_opener = "vscode"

14.2 指令覆盖

Toml
# 额外用户指令(注入在 AGENTS.md 之前)
# developer_instructions = ""
​
# 覆盖内置基础指令
# model_instructions_file = "/path/to/instructions.txt"
​
# 覆盖 git co-author 标记
# commit_attribution = "Codex <codex@openai.com>"

14.3 AGENTS.md 控制

Toml
# AGENTS.md 最大读取字节数(默认 32KB)
project_doc_max_bytes = 32768
​
# AGENTS.md 缺失时的回退文件名
project_doc_fallback_filenames = []

14.4 推理显示

Toml
# 隐藏内部推理事件(CI 日志中有用)
hide_agent_reasoning = false
​
# 显示原始推理内容
show_raw_agent_reasoning = false

十五、配置论证:生产力全开最佳实践

本配置的设计目标:彻底释放 GPT-5.4 Codex 的全部潜力,解放双手。

15.1 核心理念

四大原则驱动每一个配置决策:

  • 零审批中断:approval_policy = "never" 消除所有确认弹窗
  • 最大上下文:1M token 窗口 + 86% 阈值压缩,最大化上下文利用
  • 最强推理:xhigh 推理力度,释放模型全部思考能力
  • 网络自由:沙箱内直接访问网络,包管理操作无需逐次审批

15.2 模型选择:gpt-5.4 + 中转代理

gpt-5.4 是当前最强 Codex 模型,原生 1M 上下文。通过 codex 中转代理(codex.ai02.cn)加速国内访问,Responses API 协议确保完整功能。gpt-5.4-mini 仅适合轻量查询,全栈工程需要完整模型。

15.3 推理力度:xhigh + high

  • 日常编码(model_reasoning_effort = "xhigh"):全栈开发涉及前后端联调、数据库设计、CI/CD、性能分析等复杂任务,xhigh 确保模型投入最大推理资源
  • 架构规划(plan_mode_reasoning_effort = "high"):Plan 模式单独配置,深度分析项目结构的同时控制延迟

15.4 上下文窗口:1M 全开

  • model_context_window = 1050000:显式声明 ≈1M,确保不被自动检测截断
  • model_auto_compact_token_limit = 700000:在消耗 67% 窗口容量后触发压缩(最佳临界点)
  • 效果:比默认多 33% 有效上下文,同时避免长上下文幻觉和 xhigh 余量不足

15.5 审批策略:never + Profile 分层

顶层 never 实现全自动执行。通过 Profile 分层管理风险:

  • auto-max(默认激活):无审批 + workspace-write 沙箱,日常开发的最佳平衡
  • review:需审批 + workspace-write,Code Review 等需人工确认的场景
  • 切换方式:codex --profile review

15.6 沙箱策略:顶层全开 + Profile 收紧

顶层 danger-full-access 确保无限制能力。默认 Profile auto-max 将沙箱收紧为 workspace-write,解放双手的同时保留基本文件保护(.git/ 和 .codex/ 始终只读)。network_access = true 确保包管理操作无需逐次审批。

15.7 Feature Flags:新旧融合

保留原有稳定功能(shell_snapshot、multi_agent、undo 等),引入新实验性能力:

  • plan_tool:复杂任务自动分解为子步骤
  • apply_patch_freeform:更灵活的代码修改
  • view_image_tool:支持截图分析和 UI 审查
  • rmcp_client:远程 MCP 服务器连接
  • enable_request_compression = false:关闭 zstd 压缩以确保中转代理兼容性

15.8 Web 搜索与沟通风格

  • Web 搜索:cached 预索引缓存降低 prompt injection 风险。需要实时数据时 --search 临时切换为 live
  • 沟通风格:pragmatic 务实简洁,直击技术要点,减少冗余话术

十六、最终定版配置

Toml
#:schema https://developers.openai.com/codex/config-schema.json
# ============================================================================
# Codex 配置文件 — 全栈开发者 · 生产力全开版
# 位置:~/.codex/config.toml
# 目标:解放双手,彻底释放 GPT-5.4 的 1M 上下文与全部推理能力
# 文档:https://developers.openai.com/codex/config-basic
# ============================================================================
​
# ─────────────────────────── 核心模型选择 ─────────────────────────────────────
​
# model — 主模型名称
# 可选值:gpt-5.4 | gpt-5.4-mini | gpt-5-pro | gpt-4.1 | 或其他兼容模型
# 默认值:gpt-5.4-mini
# 推荐值:gpt-5.4(全量推理能力,支持 1M 上下文)
model = "gpt-5.4"
​
# model_provider — 模型服务提供方
# 可选值:openai | codex | ollama | lmstudio | 自定义 provider 名称
# 默认值:openai
# 推荐值:codex(使用中转代理,加速国内访问)
model_provider = "codex"
​
# profile — 默认激活的配置档案
# 可选值:任意 [profiles.*] 中定义的名称
# 默认值:(无,使用顶层配置)
# 推荐值:auto-max(自动化最大化档案)
profile = "auto-max"
​
# ─────────────────────────── 推理与输出控制 ───────────────────────────────────
​
# model_reasoning_effort — 模型推理力度
# 可选值:minimal | low | medium | high | xhigh
# 默认值:medium
# 推荐值:xhigh(释放 GPT-5.4 全部推理能力,适合复杂工程任务)
model_reasoning_effort = "xhigh"
​
# plan_mode_reasoning_effort — Plan 模式专用推理力度
# 可选值:minimal | low | medium | high | xhigh
# 默认值:(继承 model_reasoning_effort)
# 推荐值:high(架构规划深度推理,同时控制延迟)
plan_mode_reasoning_effort = "high"
​
# model_reasoning_summary — 推理过程摘要模式
# 可选值:auto | concise | detailed | none
# 默认值:auto
# 推荐值:auto(自动判断是否展示推理摘要)
model_reasoning_summary = "auto"
​
# model_verbosity — 输出详细度(仅 Responses API 生效)
# 可选值:low | medium | high
# 默认值:medium
# 推荐值:medium(平衡信息密度与可读性)
model_verbosity = "medium"
​
# ─────────────────────────── 上下文窗口 ──────────────────────────────────────
​
# model_context_window — 手动设置上下文窗口大小(token 数)
# 可选值:任意正整数(受模型实际限制)
# 默认值:自动检测(GPT-5.4 原生 1,048,576)
# 推荐值:1050000(显式声明 ≈1M,确保不被截断)
model_context_window = 1050000
​
# model_auto_compact_token_limit — 自动压缩触发阈值(token 数)
# 可选值:任意正整数(应 < model_context_window)
# 默认值:约为上下文窗口的 50%(~525k)
# 推荐值:700000(~67% 窗口 — 最佳临界点,详见 Section 三.3 证据链)
# 注意:900k(86%)经实测会导致 xhigh 推理余量不足 + 长上下文幻觉加深
model_auto_compact_token_limit = 700000
​
# ─────────────────────────── 沟通风格 ────────────────────────────────────────
​
# personality — 人格风格
# 可选值:friendly | pragmatic | none
# 默认值:friendly
# 推荐值:pragmatic(务实简洁,直击技术要点)
personality = "pragmatic"
​
# ─────────────────────────── 审批与沙箱 ──────────────────────────────────────
​
# approval_policy — 审批策略
# 可选值:untrusted | on-request | never | { granular = {...} }
# 默认值:on-request
# 推荐值:never(彻底解放双手,无需反复确认)
approval_policy = "never"
​
# allow_login_shell — 允许使用 login shell 语义
# 可选值:true | false
# 默认值:false
# 推荐值:true(确保 shell profile 中的环境变量和别名可用)
allow_login_shell = true
​
# sandbox_mode — 沙箱隔离级别(顶层全开,Profile 按需收紧)
# 可选值:read-only | workspace-write | danger-full-access
# 默认值:workspace-write
# 推荐值:danger-full-access(配合 Profile 分层使用)
sandbox_mode = "danger-full-access"
​
# ─────────────────────────── Web 搜索 ────────────────────────────────────────
​
# web_search — Web 搜索模式
# 可选值:disabled | cached | live
# 默认值:cached
# 推荐值:cached(预索引缓存,降低 prompt injection 风险)
web_search = "cached"
​
# ─────────────────────────── 文件与 UI ───────────────────────────────────────
​
# file_opener — 引用链接打开方式
# 可选值:vscode | vscode-insiders | windsurf | cursor | none
# 默认值:none
# 推荐值:vscode(点击引用直接跳转 VS Code)
file_opener = "vscode"
​
# hide_agent_reasoning — 隐藏内部推理事件
# 可选值:true | false
# 默认值:false
# 推荐值:false(保持可见,便于理解 Codex 决策过程)
hide_agent_reasoning = false
​
# check_for_update_on_startup — 启动时检查更新
# 可选值:true | false
# 默认值:true
# 推荐值:true(及时获取新功能和安全修复)
check_for_update_on_startup = true
​
# project_doc_max_bytes — AGENTS.md 最大读取字节数
# 可选值:任意正整数
# 默认值:32768(32 KB)
# 推荐值:32768(默认即可)
project_doc_max_bytes = 32768
​
# ─────────────────────────── 隐私与兼容性 ────────────────────────────────────
​
# disable_response_storage — 禁止 OpenAI 存储响应数据
# 可选值:true | false
# 默认值:false
# 推荐值:true(保护代码隐私,不参与训练)
disable_response_storage = true
​
# windows_wsl_setup_acknowledged — 确认 WSL 环境已配置
# 可选值:true | false
# 默认值:false
# 推荐值:true(Windows 用户跳过 WSL 设置提示)
windows_wsl_setup_acknowledged = true
​
# suppress_unstable_features_warning — 抑制实验性功能警告
# 可选值:true | false
# 默认值:false
# 推荐值:true(减少干扰,配合 never 策略使用)
suppress_unstable_features_warning = true
​
# ─────────────────────────── workspace-write 沙箱细节 ─────────────────────────
​
[sandbox_workspace_write]
# writable_roots — 额外可写路径(除工作区外)
# 可选值:路径字符串数组
# 默认值:[]
# 推荐值:[](按需添加,如 pyenv/npm 全局路径)
writable_roots = []
​
# network_access — 沙箱内进程是否可访问网络
# 可选值:true | false
# 默认值:false
# 推荐值:true(允许 npm install / pip install 等网络操作,免审批)
network_access = true
​
# exclude_tmpdir_env_var — 是否将 $TMPDIR 排除出可写范围
# 可选值:true | false
# 默认值:false
# 推荐值:false(保持临时目录可写)
exclude_tmpdir_env_var = false
​
# exclude_slash_tmp — 是否将 /tmp 排除出可写范围
# 可选值:true | false
# 默认值:false
# 推荐值:false(保持 /tmp 可写)
exclude_slash_tmp = false
​
# ─────────────────────────── Shell 环境策略 ───────────────────────────────────
​
[shell_environment_policy]
# inherit — 环境变量继承模式
# 可选值:all | core | none
# 默认值:all
# 推荐值:all(继承所有变量,依赖排除规则过滤敏感信息)
inherit = "all"
​
# ignore_default_excludes — 是否跳过默认排除规则(KEY/SECRET/TOKEN)
# 可选值:true | false
# 默认值:false
# 推荐值:false(保留自动过滤,防止密钥泄露)
ignore_default_excludes = false
​
# exclude — 额外排除模式(glob 格式,大小写不敏感)
# 可选值:字符串数组,支持 * ? [A-Z] 通配符
# 默认值:[]
# 推荐值:[](默认排除已足够,按需添加云厂商变量如 "AWS_*")
exclude = []
​
# set — 显式设置的环境变量(始终优先)
# 可选值:键值对对象
# 默认值:{}
# 推荐值:{}(按需设置 NODE_ENV 等)
set = {}
​
# ─────────────────────────── Feature Flags ───────────────────────────────────
​
[features]
# plan_tool — 启用规划工具(任务分解与多步骤规划)
# 可选值:true | false  |  默认值:false  |  推荐值:true
plan_tool = true
​
# apply_patch_freeform — 自由格式补丁应用
# 可选值:true | false  |  默认值:false  |  推荐值:true
apply_patch_freeform = true
​
# view_image_tool — 图片查看工具(截图分析、UI 审查)
# 可选值:true | false  |  默认值:false  |  推荐值:true
view_image_tool = true
​
# shell_snapshot — Shell 环境快照加速重复命令
# 可选值:true | false  |  默认值:true  |  推荐值:true
shell_snapshot = true
​
# multi_agent — 子代理协作(spawn_agent 等多代理并行)
# 可选值:true | false  |  默认值:true  |  推荐值:true
multi_agent = true
​
# fast_mode — Fast 模式路径(简单任务快速响应)
# 可选值:true | false  |  默认值:true  |  推荐值:true
fast_mode = true
​
# shell_tool — Shell 命令执行能力(核心功能)
# 可选值:true | false  |  默认值:true  |  推荐值:true
shell_tool = true
​
# personality — 人格选择控件(/personality 命令)
# 可选值:true | false  |  默认值:true  |  推荐值:true
personality = true
​
# undo — 基于 git ghost snapshot 的逐轮撤销(安全网)
# 可选值:true | false  |  默认值:false  |  推荐值:true
undo = true
​
# skill_mcp_dependency_install — Skill MCP 依赖自动安装
# 可选值:true | false  |  默认值:true  |  推荐值:true
skill_mcp_dependency_install = true
​
# rmcp_client — 远程 MCP 客户端支持
# 可选值:true | false  |  默认值:false  |  推荐值:true
rmcp_client = true
​
# elevated_windows_sandbox — Windows 提升权限沙箱
# 可选值:true | false  |  默认值:false  |  推荐值:true
elevated_windows_sandbox = true
​
# unified_exec — 统一 PTY-backed exec 工具
# 可选值:true | false  |  默认值:true(Windows 默认 false)
# 推荐值:false(自定义中转时关闭以提升兼容性)
unified_exec = false
​
# streamable_shell — 流式 Shell 输出(实验性)
# 可选值:true | false  |  默认值:false  |  推荐值:false
streamable_shell = false
​
# enable_request_compression — zstd 压缩流式请求体
# 可选值:true | false  |  默认值:true
# 推荐值:false(自定义中转可能不支持 zstd,关闭确保兼容)
enable_request_compression = false
​
# ─────────────────────────── 配置档案(Profiles)─────────────────────────────
​
# auto-max:自动化最大化档案(默认激活)
# 无审批 + workspace-write 沙箱:日常开发的最佳平衡
[profiles.auto-max]
approval_policy = "never"
sandbox_mode = "workspace-write"
​
# review:代码审查档案
# 需要审批确认,适合 Code Review 场景
[profiles.review]
approval_policy = "on-request"
sandbox_mode = "workspace-write"
​
# ─────────────────────────── 历史记录 ────────────────────────────────────────
​
[history]
# persistence — 会话历史持久化模式
# 可选值:save-all | none  |  默认值:save-all  |  推荐值:save-all
persistence = "save-all"
​
# max_bytes — 历史文件最大字节数
# 可选值:任意正整数  |  默认值:104857600(100 MiB)  |  推荐值:104857600
max_bytes = 104857600
​
# ─────────────────────────── TUI 终端界面 ────────────────────────────────────
​
[tui]
# notifications — 桌面通知
# 可选值:true | false | 事件类型数组  |  默认值:true  |  推荐值:true
notifications = true
​
# animations — 欢迎屏与加载动画
# 可选值:true | false  |  默认值:true  |  推荐值:true
animations = true
​
# show_tooltips — 新手提示
# 可选值:true | false  |  默认值:true  |  推荐值:false(熟练用户关闭)
show_tooltips = false
​
# ─────────────────────────── 匿名数据 ────────────────────────────────────────
​
[analytics]
# enabled — 匿名使用统计
# 可选值:true | false  |  默认值:true  |  推荐值:true
enabled = true
​
[feedback]
# enabled — /feedback 命令
# 可选值:true | false  |  默认值:true  |  推荐值:true
enabled = true
​
# ─────────────────────────── 通知抑制 ────────────────────────────────────────
​
[notice]
# hide_gpt5_1_migration_prompt — 隐藏 GPT-5.1 迁移提示
# 可选值:true | false  |  默认值:false
# 推荐值:true(已选择 GPT-5.4,无需迁移提醒)
hide_gpt5_1_migration_prompt = true
​
# ─────────────────────────── Windows 沙箱 ────────────────────────────────────
​
[windows]
# sandbox — Windows 沙箱模式
# 可选值:elevated | unelevated  |  默认值:elevated  |  推荐值:elevated
sandbox = "elevated"
​
# ─────────────────────────── MCP 服务器 ──────────────────────────────────────
​
[mcp_servers]
# MCP 配置见下一章节
​
# ─────────────────────────── 模型提供方 ──────────────────────────────────────
​
[model_providers.codex]
# name — 提供方显示名称
name = "codex"
# base_url — API 端点(中转代理,加速国内访问)
base_url = "https://codex.ai02.cn"
# wire_api — API 协议类型(responses | chat)
wire_api = "responses"
# requires_openai_auth — 是否需要 OpenAI 认证
requires_openai_auth = true

参考文档

  • Config Basics — Codex
  • Advanced Configuration — Codex
  • Configuration Reference — Codex
  • Sample Configuration — Codex
  • Admin Setup (Team Config) — Codex
← 上一篇
下一篇 →
一、多层配置覆盖体系1.1 项目配置的信任机制1.2 项目根检测1.3 单次运行覆盖二、Profiles(配置档案)2.1 定义与使用2.2 多项目多模型切换策略2.3 Profile 可覆盖的字段三、核心模型与推理配置3.1 模型选择3.2 推理控制3.3 上下文窗口与压缩3.4 沟通风格四、审批策略与沙箱深度配置4.1 审批策略4.2 沙箱模式4.3 workspace-write 沙箱细节4.4 Windows 沙箱五、Shell 环境策略深度解析5.1 三种继承模式5.2 过滤管道5.3 配置示例5.4 实验性:Shell Profile 加载六、Feature Flags 全量解析6.1 Stable 功能6.2 Experimental 功能6.3 Deprecated 功能6.4 启用方式6.5 推荐配置七、TUI 终端界面配置7.1 主题7.2 通知7.3 动画与提示7.4 状态栏定制八、历史记录管理8.1 持久化行为8.2 容量控制8.3 会话恢复九、Web 搜索配置十、子代理配置角色定义十一、Team Config 与 requirements.toml11.1 Team Config11.2 requirements.toml(管理员强制策略)11.3 完整配置层级总览十二、自定义模型提供方十三、可观测性与遥测13.1 OpenTelemetry 导出13.2 匿名指标十四、其他实用配置14.1 引用链接14.2 指令覆盖14.3 AGENTS.md 控制14.4 推理显示十五、配置论证:生产力全开最佳实践15.1 核心理念15.2 模型选择:gpt-5.4 + 中转代理15.3 推理力度:xhigh + high15.4 上下文窗口:1M 全开15.5 审批策略:never + Profile 分层15.6 沙箱策略:顶层全开 + Profile 收紧15.7 Feature Flags:新旧融合15.8 Web 搜索与沟通风格十六、最终定版配置参考文档