返回教程目录OpenAI 官方参考

CODEXGUIDE / 官方工具与集成 11

Codex 常用功能清单:把容易漏掉的能力补齐

很多人第一次用 Codex,会把所有事情都扔进同一个任务。

codx编辑组最后验证 2,3618 分钟

很多人第一次用 Codex,会把所有事情都扔进同一个任务。

先讨论方案,接着改文件,测试报错以后继续往里贴,最后还让它留在原任务里审查自己的修改。刚开始没什么感觉,任务一长,讨论过但放弃的方案、终端日志和最后确认的要求就混到了一起。

软件一直在工作,使用体验却越来越乱。

我现在看一套 Codex 配置是否顺手,主要看三个地方。复杂任务有没有足够的推理能力,讨论和执行有没有分开,任务结束后能不能把进度交给下一次对话。

下面这 8 项,我建议按这个顺序设置。它们有的是开关,有的是入口,还有两项只是很简单的文件习惯。全部用起来以后,Codex 才更像一个能长期合作的工作台。

01 先把 Luna 的最高推理强度放出来

Codex 能选 Luna,不等于已经用上了 Luna 的最高能力。推理强度需要在模型功能里手动开启。

进入设置,找到模型功能,在可用推理强度里勾选“最高”。开启后,模型选择器里才会出现对应档位。

Codex 操作步骤配图 01
Codex 操作步骤配图 01

普通任务用中档或高档就够了。跨文件重构、复杂排查、架构调整和回归风险较高的修改,我才会切到 Luna Max。它会把更多精力放在代码结构、修改范围和验证方法上。

Sol 和 Luna 也可以分工。Sol 负责规划、架构判断和关键选择,方案明确以后,再把边界清楚的执行工作交给 Luna Max。

可以直接这样发给你的AI。

先用 Sol 分析范围、风险和执行顺序。方案确定以后,把边界清楚的具体任务交给 Luna Max。

02 让 Quick Chat 接住临时冒出来的问题

长任务总有等待的空档。日志还在滚动,新的疑点已经冒出来了。可能是一个接口,也可能是刚想起的遗漏条件。

这些问题直接塞进主任务,很容易把正在执行的要求打断。我会把它们先放进 Quick Chat。

入口就在左上角“新对话”旁边的加号里。

Codex 操作步骤配图 02
Codex 操作步骤配图 02

从新对话旁边打开快速聊天

Quick Chat 里讨论清楚以后,点击右上角“添加到聊天”,结论就能回到当前任务。

Codex 操作步骤配图 03
Codex 操作步骤配图 03

把快速聊天里的结论添加回当前任务

这个顺序很好用。主任务继续执行,临时问题单独讨论,最后只把确认后的要求送回去。

03 把方案讨论移到 Side Chat

Quick Chat 适合临时问题,Side Chat 更适合围绕当前任务继续深挖。

比如一项重构已经开始执行,你想重新比较两个架构方向,又不希望整段讨论进入主任务。这时可以从当前内容旁边开一个 Side Chat,先把分歧聊清楚。

最直接的入口是在输入框发送 /side

Codex 操作步骤配图 04
Codex 操作步骤配图 04

在输入框使用 side 命令

看到某段内容需要单独展开时,也可以选中文字,点击“在侧边聊天中提问”。

Codex 操作步骤配图 05
Codex 操作步骤配图 05

选中文字后在侧边聊天中提问

任务顶部的更多菜单里还有“打开侧边聊天”。

Codex 操作步骤配图 06
Codex 操作步骤配图 06

从任务菜单打开侧边聊天

我会让 Side Chat 负责方案比较、风险讨论和执行指令整理。方向确定后,只把最终版本发回主任务。这样主任务看到的是决定,Side Chat 留下的是思考过程。

04 修改完成以后,单独开一次 Review

同一个任务刚写完代码,通常会沿着自己的实现思路继续检查。前面忽略掉的边界,到了最后仍有可能被忽略。

所以我会把 Review 单独拿出来。修改完成后,打开 Review 或 Changes,让它只看当前变更、风险和缺失测试,先别急着修。

检查当前未提交修改。只报告可以被代码或测试证明的问题,标明文件和位置。先不要修改任何内容。

先审查,再决定修什么。这样能保留问题出现时的原始证据,也不会让新一轮修改把旧问题盖住。

05 配一个只接具体任务的 Subagent

任务开始变大以后,我会再加一个 luna_worker

它不参与大方向讨论,只接范围明确的执行工作。搜索过程、测试输出和中间尝试留在它自己的上下文里,主任务只接收结果、证据和改动文件。

个人 Agent 放在 ~/.codex/agents/ ,项目专用 Agent 放在项目里的 .codex/agents/ 。创建 luna-worker.toml 后,可以写成下面这样。

name = "luna_worker" description = "处理父级委托的具体且边界清楚的任务" model = "gpt-5.6-luna" model_reasoning_effort = "max"

developer_instructions = """ 只处理父级委托的具体任务。 开始前明确范围、限制和完成标准。 不得扩大任务范围,也不要改动相邻文件。 默认先做只读调查。 只有委托明确授权修改时才能编辑文件。 保留用户已有的无关改动和配置。 根据风险大小验证结果。 完成后返回结果、验证证据、改动文件和剩余限制。 未经明确授权,不得提交、推送、发布、发送消息或执行破坏性操作。 """

不想手动建文件,也可以把这段配置要求直接交给 Codex,让它按指定路径创建。

Subagent 最适合边界清楚的工作,比如只查一个报错、只修改指定文件、只补一组测试。方向还没定,或者任务范围仍在变化时,先留在主任务里讨论。

06 用 @ 把旧任务里的结论找回来

多个项目一起推进时,重复解释背景很浪费精力。Codex 的 @ 引用可以直接搜索其他任务,把相关对话带进当前任务。

输入 @ 和关键词,找到之前讨论过的任务,再选择需要引用的内容。另一种方法是复制任务 ID,把它发给新的任务读取。

我通常会多加一句限制。

只读取这个任务里已经确认的方案和限制。当前状态仍以现场文件、Git 和运行结果为准。

旧对话适合提供来龙去脉,当前文件和运行结果负责说明现在做到哪里。两者分开以后,引用旧任务会稳很多。

07 长任务结束前写一份 HANDOFF

@ 引用适合找旧讨论, HANDOFF.md 更适合把一个进行中的任务交给下一次会话。

长任务准备结束时,我会让 Codex 把当前状态写进项目里的 HANDOFF.md

这个任务准备结束了,请把交接内容写入 HANDOFF.md。

写清当前目标、已经完成的内容、仍未解决的问题、下一步动作和已经踩过的坑。 分开记录本地完成、已经合并、已经部署和线上验证。 这份文件要让一个没有聊天上下文的新任务直接接手。

下一次打开任务,先让它读文件,再检查 Git 和现场状态。

先读 HANDOFF.md,再检查当前文件和 Git 状态,确认从哪里继续。

这份文件不用写成长报告。能够回答做到哪里、下一步做什么、哪些路别再走,已经够用。

08 把被纠正过的问题留下来

任务停在哪里,看 HANDOFF.md 。它为什么会走偏,看这一轮留下的纠正记录。

一次协作里,我可能纠正过范围、状态判断和验证方式。任务结束前,让 Codex 把这些纠正重新过一遍,只保留下次还可能发生的问题。

回顾这次协作中我纠正过的地方。

列出本次纠正、错误原因和下次开局指令。 只保留可能再次发生的问题,不要总结普通执行过程。

输出保留三列就够了。

本次纠正 | 错误原因 | 下次开局指令 ---|---|--- 把本地完成写成已经上线 | 状态判断过快 | 分开记录本地、合并、部署和线上验证 审查时顺手修改文件 | 忽略任务边界 | 本轮只审查,不进行修复 修改扩大到相邻模块 | 范围没有锁定 | 只触及明确列出的文件和功能

错题本要尽量保持短。同类错误合并到旧条目,已经进入固定审查要求的规则就从这里移走。留下来的每一条,都应该能在下次开局时直接使用。

最后

同一个模型,工作方式不同,结果会差很远。所有事情挤在一个任务里,Codex 会越做越乱。把推理、讨论、执行、审查和交接分开以后,它才会稳定下来。

如果只准备先改两处,我建议从 Luna Max 和 Side Chat 开始。一个负责把复杂任务想清楚,一个负责让主任务保持干净,变化最容易感受到。