最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Codex CLI 如何设置自定义 Reasoning Effort 并在会话中切换?
时间:2026-09-13 14:38:02 编辑:袖梨 来源:一聚教程网
Codex CLI 可以通过 model_reasoning_effort 设置启动时的 Reasoning Effort,并在交互会话中使用 /reasoning 切换当前对话的推理强度。需要切换模型时,可用 /model,在模型支持的情况下同时选择相应推理档位。“自定义”指从当前模型支持的枚举值中选择,不是输入任意 Token 数或自定义数字。
三种设置方式
| 方式 | 作用范围 | 适合场景 |
|---|---|---|
config.toml | 后续新会话 | 设置长期默认值 |
-c 或 --config | 本次启动 | 一次性覆盖与测试 |
/reasoning | 当前会话 | 任务过程中切换档位 |
设置用户级默认值
用户配置文件位于:
~/.codex/config.toml
例如把日常默认设置为 medium:
model = "实际可用的模型标识"
model_reasoning_effort = "medium"
保存后重新启动 Codex CLI,使新会话读取该配置。
为项目单独设置
在受信任仓库的 .codex/config.toml 中可以写入项目级覆盖:
model_reasoning_effort = "high"
Codex 会从项目根目录向当前工作目录读取配置,距离当前目录最近的项目配置优先。未受信任项目不会加载项目范围的 .codex 配置。
启动时临时覆盖
只想对本次运行使用 high,可以执行:
codex --config 'model_reasoning_effort="high"'
简写形式为:
codex -c 'model_reasoning_effort="high"'
参数值按 TOML 解析,因此字符串引号很重要。命令行覆盖优先于项目、profile 和用户配置。
会话内使用 /reasoning
在 Codex CLI 的输入区键入:
/reasoning
从界面列出的选项中选择当前模型支持的推理档位。选择完成后,新设置应用于当前对话后续任务,不需要退出再重启。
菜单实际显示哪些选项取决于当前模型和客户端能力。不要假设每个模型都有完全相同的档位。
/model 与 /reasoning 有什么区别
/reasoning 只调整当前对话的推理投入,/model 用于切换当前模型。官方命令说明还指出,/model 在可用时可以一并选择 Reasoning Effort。
如果目标只是把同一模型从 medium 调到 high,优先使用 /reasoning;如果模型也要变化,则使用 /model 并重新确认档位。
如何检查当前状态
切换后输入:
/status
状态页用于核对当前会话、活动模型、权限和用量等信息。不同版本展示字段可能不同,还可以用 /statusline 配置底部状态栏,加入 model 或 model+reasoning 项。
不要根据回答长度或等待时间猜测是否切换成功,应查看客户端明确展示的状态。
自定义不等于任意数值
model_reasoning_effort 接收预定义字符串。Codex 配置参考常见值包括:
minimallowmediumhighxhigh
xhigh 是模型相关能力。不能填写 150、80% 或其他自定义数值来指定“推理预算”。
为什么不能直接控制推理 Token
Reasoning Effort 是相对推理投入提示,模型会根据问题复杂度自适应使用推理 Token。同一个档位下,简单任务和复杂任务的实际用量可能不同。
如果需要控制总体输出上限,那是其他参数的职责,不应与推理档位混为一谈。
一次会话中何时切到 low
当任务进入边界清楚、容易验证的执行阶段,可以切换到 low,例如:
- 根据明确计划修改固定配置。
- 运行测试并整理失败信息。
- 做结构化字段提取。
- 完成机械重命名或格式调整。
如果执行仍包含复杂判断,不要只因为已有计划就强行降档。
何时保持 medium
medium 适合大多数日常开发工作,包括常规功能实现、多文件修改、普通调试和测试补全。任务复杂度不确定时,可以先保持该档位。
何时切到 high
遇到下列情况时,可将当前会话切到 high:
- Bug 跨越多个模块或服务。
- 日志和测试提供了相互冲突的证据。
- 需要分析并发、事务或缓存一致性。
- 需要比较架构方案及回滚风险。
- 正在执行权限或安全审查。
切换前先确认信息完整。高档位无法弥补缺失的日志、代码和业务规则。
何时使用 xhigh
xhigh 适合模型明确支持、任务极难且不敏感于延迟的情况,例如长周期自治分析、复杂安全审计和能力上限评测。
如果 high 已能稳定通过验收,继续升档通常没有必要。
一个会话内的切换示例
- 以
medium启动,阅读需求和代码。 - 发现并发竞态,使用
/reasoning切换到high。 - 完成根因分析和修复方案。
- 进入已明确的机械修改阶段,评估是否切回
medium或low。 - 运行测试,并用
/status核对当前设置。
切换应由任务阶段变化驱动,而不是为了频繁尝试不同按钮。
会话内切换会修改 config.toml 吗
会话命令用于当前对话的运行状态,不应当作编辑长期默认配置的替代。若希望未来所有新会话都使用同一档位,应修改相应配置文件。
为了避免版本差异造成误解,切换后应以当前会话状态和文件实际内容分别核验临时值与持久值。
配置优先级与会话选择
启动时,Codex 先根据配置层确定初始值;进入会话后,交互选择可以改变当前对话状态。排查时要区分:
- 配置文件里保存的默认值。
- 本次启动的命令行覆盖。
- 当前会话通过菜单选择的值。
只查看 config.toml 不一定能说明当前会话正在使用什么。
为什么 /reasoning 没出现
可能原因包括:
- Codex CLI 版本较旧。
- 当前表面或运行模式不支持该命令。
- 模型目录没有提供可切换的推理档位。
- 组织策略限制了模型或配置选择。
先升级并检查官方命令列表,再使用启动参数或配置文件作为兼容方案。
为什么菜单中没有 xhigh
xhigh 是否可用取决于模型。如果当前模型不支持,菜单不显示或请求被拒绝都是合理结果。切换模型后应重新检查可选档位。
不要使用过时的 /effort 示例
一些旧博客或讨论可能使用 /effort 描述会话切换。当前官方 CLI 命令表列出的入口是 /reasoning。命令名称可能随产品版本变化,应以正在使用版本的帮助和官方文档为准。
profile 适合重复工作流
如果经常在固定场景间切换,可以创建独立 profile 文件。例如深度审查 profile:
# ~/.codex/deep-review.config.toml
model = "实际支持的模型标识"
model_reasoning_effort = "high"
启动时选择:
codex --profile deep-review
profile 适合可重复工作流,/reasoning 更适合会话进行中的临时调整。
无头模式如何处理
无头或自动化运行无法依赖交互菜单,应在配置文件、profile 或启动参数中提前指定:
codex exec --config 'model_reasoning_effort="high"' "执行任务"
自动化还应记录模型、档位、客户端版本和运行结果,以便复现问题。
切换档位不等于切换 Fast 模式
/reasoning 调整推理投入;/fast 切换模型目录提供的 Fast 服务层。二者控制不同维度,且 /fast 只会在当前模型支持时出现。
如何验证切换带来的收益
对代表性任务记录:
- 首次完成率。
- 测试和审查结果。
- 总完成时间。
- 推理和总 Token 用量。
- 人工纠正次数。
只有切换后带来可测量收益,才应将新档位保留为该类任务的默认选择。
安全边界不会随档位变化
提高 Reasoning Effort 不会自动修改沙箱、审批或网络权限。任何会话内切换都必须继续遵守原有安全边界,重要操作仍要有验证和回滚。
排错检查清单
- 确认当前 Codex CLI 版本支持
/reasoning。 - 确认活动模型支持目标档位。
- 用
/status查看当前会话信息。 - 检查是否同时切换了模型。
- 区分持久配置、启动覆盖和会话状态。
- 在无头模式中改用配置或命令行参数。
- 使用测试验证输出,而不是凭响应长度判断。
常见问题
可以在任务运行到一半时切换吗
可以在当前响应结束后,通过 /reasoning 为后续任务选择新档位。不要把菜单命令插入正在执行的工具调用。
/model 会保留当前推理强度吗
切换模型后应重新确认,因为新模型的支持档位和默认值可能不同。
能输入 high 和 xhigh 之间的数值吗
不能。使用模型和客户端提供的离散档位。
当前会话切换后,下次启动还有效吗
不要依赖会话选择作为长期默认。需要持久化时应修改用户、项目或 profile 配置。
总结
Codex CLI 的启动默认通过 model_reasoning_effort 设置,一次性启动可用 -c 或 --config,当前交互会话则使用 /reasoning 切换。需要同时换模型时使用 /model,切换后用 /status 或状态栏核验。自定义推理强度只能在模型支持的档位中选择,不能指定任意数值;无头任务应提前通过配置、profile 或启动参数固定设置。