怎么设置合适的 Codex 配置文件?
官网文档
- OpenAI 官方 Codex config schema: https://developers.openai.com/codex/config-schema.json
- OpenAI 推理参数说明: https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries
第一优先级
按实用价值排,config.toml 里真正值得你自己配的,通常就这几类。基于当前官方 schema(2026-05-24)来看,大多数人配 6-10 个字段就够了。
model- 默认使用的主模型。
- 这是第一优先级配置,决定日常对话、改代码、执行任务默认使用哪个模型。
model_reasoning_effort- 控制推理强度,直接影响:
- 思考深度
- 响应速度
- 成本倾向
- 一般建议:
xhigh
- 控制推理强度,直接影响:
review_model- 这是一个正式有效的配置项,不是无效字段。
- 它只影响
/review路径,不影响普通对话和普通编码任务。 - 适合的场景:
- 平时任务用一个更省成本或更快的模型。
- 代码审查时单独切到更稳妥的模型。
- 如果
review_model和model配成同一个值,那么体感上就不会有区别,但它依然是有效配置。
approval_policy- 控制命令执行审批方式。
- 通常建议:
- 日常交互开发:
on-request。 - 需要高度自动化时:再考虑更激进策略。
- 日常交互开发:
sandbox_mode- 决定工具执行的权限边界。
- 通常建议:
- 默认优先:
workspace-write。 - 不建议默认就给过大的权限。
- 默认优先:
[sandbox_workspace_write].network_access- 这个参数非常关键。
- 它决定在
workspace-write模式下是否允许联网。 - 对于以下场景很重要:
npm install。- 拉依赖。
- 访问远程 API。
- 查询在线资源。
profiles/profile- 这是非常推荐使用的一组能力。
- 原因是你不需要频繁改主配置,而是可以预设多个工作模式。
- 常见示例:
fastdeepreview
第二优先级
这些配置不是每个人都必须配,但在常用场景下很值得。
service_tier- 官方 schema 当前可见值包括:
defaultpriorityflex
- 兼容旧值时,某些环境也可能看到
fast。 - 适合在你明确想区分服务层级时配置。
- 官方 schema 当前可见值包括:
web_search- 可选值通常包括:
disabledcachedlive
- 如果你经常查下面这些内容,这个参数很有价值:
- 最新文档。
- 版本信息。
- 新闻。
- 实时资料。
- 可选值通常包括:
[tools.web_search]- 如果你已经启用搜索,这里还可以继续控制搜索行为。
- 常见参数包括:
allowed_domainscontext_sizelocation
- 适合希望搜索结果更干净、更受控的场景。
tool_output_token_limit- 控制工具输出写入上下文的预算。
- 对于这些场景很有帮助:
- 大仓库。
- 长日志。
- 很多命令输出。
model_auto_compact_token_limit- 控制长会话里什么时候自动压缩上下文。
- 如果你经常长时间连续工作,这个参数很值得配置。
model_verbosity- 控制回答的冗长度。
- 如果你觉得输出太啰嗦,或者想明显压缩回答长度,这个参数有实际价值。
developer_instructions- 适合写长期稳定的工作规则。
- 常见示例:
- 先读代码再改代码。
- 默认跑测试。
- 输出中文。
- 先验证再汇报完成。
按需配置
model_provider- 决定走哪个 provider 配置块。
- 如果你有多个兼容 OpenAI 的入口,或者需要切换不同后端,这个值得配置。
[model_providers.<name>]- 这里通常包括:
base_urlwire_apirequires_openai_auth
- 如果你要接自定义网关、代理或兼容服务,这部分很重要。
- 这里通常包括:
model_context_window- 控制上下文窗口大小。
- 通常只有在你明确知道需要覆盖默认行为时才建议改。
default_permissions与[permissions]- 适合你想明确设计权限档位时使用。
- 常见思路:
- 安全模式。
- 项目写入模式。
- 带网络模式。
shell_environment_policy- 适合想严格控制 shell 继承哪些环境变量时配置。
[projects].trust_level- 如果你会使用项目级
.codex/config.toml,这个很重要。 - 它通常影响:
- 审批体验。
- 沙箱默认行为。
- 项目本地配置是否被更积极地采用。
- 如果你会使用项目级
通常不需要重点配置的参数
tui.*- 常见示例:
[tui.model_availability_nux]notifications
- 这些更偏:
- 界面状态。
- 本地提示状态。
- 使用体验细节。
- 它们不是核心模型能力配置。
- 常见示例:
notice.*- 这类一般更偏提示或客户端展示行为,不是模型核心能力。
desktop.*- 更偏桌面端行为控制,而不是模型本身。
不建议随便动的参数
model_instructions_file- 官方 schema 对这个参数有明确保留态度,不建议轻易使用。
- 原因是它可能覆盖内建模型指令,导致 Codex 原生行为被破坏。
experimental_*- 通常意味着:
- 行为可能变化。
- 文档不稳定。
- 不适合作为长期稳定配置。
- 除非你明确知道自己在试什么,否则不建议作为主配置长期使用。
- 通常意味着:
- 很多
[features]- 如果你不清楚具体开关作用,不建议随意打开。
一份实用的起步版配置
model = "gpt-5.4"
model_reasoning_effort = "high"
review_model = "gpt-5.4"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
web_search = "cached"
service_tier = "default"
[sandbox_workspace_write]
network_access = false
[profiles.fast]
model = "gpt-5.4-mini"
model_reasoning_effort = "low"
[profiles.deep]
model = "gpt-5.4"
model_reasoning_effort = "xhigh"
实际建议
如果只想抓最关键的部分,优先看这几个:
modelmodel_reasoning_effortreview_modelapproval_policysandbox_mode[sandbox_workspace_write].network_accessprofiles
配置文件优化
"节省 token 但体验还比较稳”的配置
- disable_on_external_context = true
- 线程如果用了外部上下文,比如 MCP 工具调用、web search、tool search,就不进入记忆生成。适合把“查资料/跑工具”的会
- 话排除掉,减少噪声记忆。默认是 false。
- min_rollout_idle_hours = 12
- 一个线程至少空闲 12 小时后,才会被考虑生成记忆。数值越大,生成越少、越保守。默认是 6。
- min_rate_limit_remaining_percent = 40
- 只有当 Codex 的剩余额度还高于 40% 时,才开始记忆生成。数值越大,越不容易在忙的时候触发后台记忆。默认是 25。
- max_rollouts_per_startup = 8
- 每次启动时,最多处理 8 个 rollout 候选做记忆。它限制的是“这次启动做多少”,不是永久总量。默认是 16。
- max_raw_memories_for_consolidation = 128
- 做全局 consolidation 时,只保留最近 128 条 raw memories 作为输入。数值越小,越省,但长期回忆能力也会更弱。
- 默认是 256。
[features]
memories = true
[memories]
use_memories = true
generate_memories = true
min_rollout_idle_hours = 12
min_rate_limit_remaining_percent = 40
max_rollouts_per_startup = 8
max_raw_memories_for_consolidation = 128
disable_on_external_context
官方文档
- Config basics (https://developers.openai.com/codex/config-basic)
- Memories (https://developers.openai.com/codex/memories)
- Config reference (https://developers.openai.com/codex/config-reference)
Codex CLI 会话的中断和恢复
Codex CLI 在被强制中断(如 Ctrl+C)时,确实不会在终端回显 Session ID。这并非故障,而是因为进程被立即终止,来不及打印"善后信息"。
为什么有时候不显示?
- 正常退出(
/exit)- CLI 会完整执行退出流程,通常会打印 Session ID 或提示"Session saved"。
- 强制中断(
Ctrl+C)- 进程收到 SIGINT 信号后立即终止,来不及打印任何输出。此时 Session 虽然已保存,但 ID 被"吞"掉了。
如何找回被“吞”掉的 Session?
即使没看到 ID,Session 文件依然保存在本地,你可以通过以下方式找回:
- 查看最近的文件(最快)
- 会话文件按时间戳命名,直接查看最新的文件即可:
ls -lt ~/.codex/sessions/$(date +%Y/%m/%d)/- 文件名格式为
rollout-2026-04-22T10-30-00-xxx.jsonl,其中的xxx部分通常包含 Session ID。
- 使用交互式选择器
- 运行以下命令,Codex 会列出所有可恢复的会话(包含 ID 和路径):
codex resume
- 直接恢复最近一次
- 如果你只是想继续刚才的工作,直接使用
--last参数,无需手动找 ID: codex resume --last
- 如果你只是想继续刚才的工作,直接使用