Codex 技能指南
运行任务
- 对于新会话(恢复时会继承之前的模型/推理力度——参见第 5 步),通过
AskUserQuestion以单个提示包含两个问题的形式,询问用户使用哪个模型以及哪个推理力度。如果用户没有偏好,默认使用gpt-6-astra和high。- 模型 —— 默认
gpt-6-astra:- GPT-6:
gpt-6-astra(前沿 / 能力最强 —— 默认) - GPT-5.6:
gpt-5.6-sol(可靠的代理工作马)、gpt-5.6-terra(平衡、日常使用)、gpt-5.6-luna(快速且经济) - 旧版(为兼容性保留):
gpt-5.5、gpt-5.4、gpt-5.4-mini、gpt-5.3-codex-spark、gpt-5.3-codex
- GPT-6:
- 推理力度 —— 默认
high:low、medium、high、xhigh、max、ultra。max/ultra需要 GPT-6 或 GPT-5.6 模型;ultra仅适用于astra/sol/terra(luna最高支持max);旧版模型最高支持xhigh。ultra= 最大推理并自动任务委派(最慢且最昂贵 —— 保留给最困难的任务)。- 如果选择的力度超过了所选模型的最高支持力度,则回退到该模型支持的最高力度,并告知用户。
- 模型 —— 默认
- 选择任务所需的沙盒模式;除非需要编辑或网络访问,否则默认使用
--sandbox read-only。 - 使用适当的选项组装命令:
-m, --model <MODEL>--config model_reasoning_effort="<low|medium|high|xhigh|max|ultra>"(max/ultra 仅适用于 GPT-6 / GPT-5.6 模型;ultra 仅适用于 astra/sol/terra —— 参见第 1 步)--sandbox <read-only|workspace-write|danger-full-access>--full-auto-C, --cd <DIR>--skip-git-repo-check"你的提示"(作为最终的位置参数)
- 始终使用 --skip-git-repo-check。
- 当继续之前的会话时,通过 stdin 使用
codex exec --skip-git-repo-check resume --last。恢复时不要使用任何配置标志,除非用户明确要求,例如指定模型或推理力度时。恢复语法:echo "你的提示" | codex exec --skip-git-repo-check resume --last 2>/dev/null。所有标志必须插入在 exec 和 resume 之间。 - 重要:默认情况下,在所有
codex exec命令后追加2>/dev/null以抑制思考令牌(stderr)。仅在用户明确要求查看思考令牌或需要调试时才显示 stderr。 - 重要(stdin):
codex exec始终读取 stdin 并将其与位置提示连接 —— 即使提示完全作为位置参数提供。如果 stdin 未关闭,codex 会永远阻塞。当从工具(后台任务、钩子、脚本,其中 stdin 不是 TTY 但也未关闭)调用时,明确重定向 stdin:在命令后追加</dev/null,例如codex exec ... "提示" </dev/null 2>/dev/null。错误症状:零字节 stdout、零 CPU 积累、进程看起来无限挂起。 - 运行命令,捕获 stdout/stderr(适当过滤),并向用户总结结果。
- 在 Codex 完成后,告知用户:“您可以随时通过说‘codex resume’或要求我继续进行额外分析或更改来恢复此 Codex 会话。”
快速参考
| 用例 | 沙盒模式 | 关键标志 |
|---|---|---|
| 只读审查或分析 | read-only | --sandbox read-only 2>/dev/null |
| 应用本地编辑 | workspace-write | --sandbox workspace-write --full-auto 2>/dev/null |
| 允许网络或完全访问 | danger-full-access | --sandbox danger-full-access --full-auto 2>/dev/null |
| 恢复最近的会话 | 继承原会话 | echo "提示" | codex exec --skip-git-repo-check resume --last 2>/dev/null(不允许标志) |
| 从其他目录运行 | 匹配任务需求 | -C <DIR> 加上其他标志 2>/dev/null |
执行超时
Codex 不产生中间输出 —— 它仅在完成时写入结果。如果在完成前进程被杀死,输出文件将静默为空(无错误)。
首选方法: 同步运行 —— 完全消除了超时风险,并且对话无论如何都会等待结果。
如果在后台运行,根据推理力度设置执行超时:
| 推理力度 | 超时 |
|---|---|
low | 150 秒 |
medium | 300 秒 |
high | 600 秒 |
xhigh | 1200 秒 |
max | 1800 秒 |
ultra | 1800 秒 |
跟进
- 在每个
codex命令之后,立即使用AskUserQuestion确认后续步骤、收集澄清,或决定是否使用codex exec resume --last恢复。 - 恢复时,通过 stdin 管道传递新提示:
echo "新提示" | codex exec resume --last 2>/dev/null。恢复的会话会自动使用原会话的相同模型、推理力度和沙盒模式。 - 在建议后续操作时,重新说明选择的模型、推理力度和沙盒模式。
对 Codex 输出的批判性评估
Codex 由 OpenAI 模型驱动,具有其自身的知识截止日期和局限性。将 Codex 视为同事,而非权威。
指南
- 在确信时信任自己的知识。如果 Codex 声称某些你知道不正确的内容,直接反驳。
- 在分歧处进行研究:在接受 Codex 的主张之前,使用 WebSearch 或文档进行研究。如有必要,通过恢复会话与 Codex 分享发现。
- 记住知识截止日期 —— Codex 可能不知道其训练数据之后发布的最新版本、API 或更改。
- 不要盲目遵从 —— Codex 可能出错。批判性地评估其建议,特别是关于:
- 模型名称和能力
- 最新的库版本或 API 更改
- 可能已经演变的最佳实践
当 Codex 出错时
- 向用户明确陈述你的不同意见
- 提供证据(你自己的知识、网络搜索、文档)
- 可选择恢复 Codex 会话以讨论分歧。将自己标识为 Claude,以便 Codex 知道这是同行 AI 讨论。使用你的实际模型名称(例如,你当前运行时的模型),而不是硬编码的名称:
echo "这是 Claude(<你当前的模型名称>)在跟进。我不同意 [X],因为 [证据]。你对此怎么看?" | codex exec --skip-git-repo-check resume --last 2>/dev/null - 将分歧描述为讨论,而非纠正 —— 两个 AI 都可能犯错
- 如果存在真正的歧义,让用户决定如何继续
错误处理
- 每当
codex --version或codex exec命令以非零状态退出时,停止并报告失败;在重试之前请求指示。 - 在使用高影响标志(
--full-auto、--sandbox danger-full-access、--skip-git-repo-check)之前,使用 AskUserQuestion 请求用户许可,除非已经获得许可。 - 当输出包含警告或部分结果时,总结它们并使用 AskUserQuestion 询问如何调整。