技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

把“想”和“做”拆开:codex-with-chatgpt 的规划-执行分离实验

项目背景与痛点

2025 年流行的 coding agent 几乎都走同一条路:让一个模型既做规划又做执行,边想边改边跑测试。短任务尚可,任务一长问题就暴露——工具返回的大段 diff、编译日志、测试输出会持续进入上下文窗口,模型的推理能力被这些无关信息分散,于是开始偏离原计划:改到第五个文件时忘了第一步的验收标准,或者在细节里反复打转,丢失了整体架构意图。

另一边的现实是:ChatGPT(尤其带 thinking 的版本)作为纯推理端,长程规划、方案权衡、任务拆解的能力很强,但它没有执行权——进不了你的仓库,也跑不了命令。

这个仓库的切入点很直接:ChatGPT 当大脑,Codex 当手和脚,中间用一份“计划”作为交接约定。它不是再造一个 agent,而是做编排层。

核心技术揭秘

它的架构本质是典型的 planner–executor 分离,与编译器前后端分离思路一致:前端只负责生成中间表示,后端照着 IR 干活,两边通过格式化的接口解耦。

graph TD A[开发者意图与仓库上下文] --> B[ChatGPT 规划层] B --> C[计划契约 Plan Spec] C --> D{"计划是否可执行?"} D -->|"通过"| E[Codex 执行 Harness] D -->|"驳回"| F[追问与计划修订] F --> B E --> G[工具调用-检索与改文件] E --> H[工具调用-执行命令与测试] G --> I[变更产物与执行日志] H --> I I --> J[摘要压缩后回灌] J --> B

数据流的关键在三个地方:

一是明确约定计划的结构。 ChatGPT 的输出必须能被机器直接使用——任务清单、涉及文件、每步的验收标准、风险点。这一步做不好,整个系统就变成“复制一段散文给 Codex 猜”。所以项目实际把大量精力用在 prompt 模板和输出格式约束上,让规划结果能被切分成可逐步执行的单元。

二是压缩并回传上下文。 Codex 执行完会产出大量日志,直接全部回传给 ChatGPT 会严重超限。合理做法是只回传三样东西:改动摘要、失败的测试与报错片段、与计划的偏差。执行层负责降低信息量,只保留关键内容,规划层只看到信噪比高的部分。

三是形成处理失败分类的闭环。 环境缺失、语法错误、逻辑不符合验收标准,是三种不同的失败,回传给 ChatGPT 的追问也应不同。项目在这方面的价值,是迫使开发者把“什么算做完”明确写出来。

值得指出的是桥接方式:ChatGPT 没有本地工具调用能力,因此这类项目通常依赖会话导出、粘贴式搬运或 MCP 类通道。这也是它最脆弱的环节。

功能亮点与差异

与“一个模型包打天下”的 agent 相比,它最大的差异是把推理预算和执行预算分离。规划阶段用最强推理模型,慢一点没关系;执行阶段用更快、更便宜的 Codex harness,还能保留其审批策略和 diff review。

第二个亮点是计划本身成为可审计的工件。传统 agent 的“思考”是黑盒,出问题只能翻日志;这里计划是一份可以 review、可以版本化、可以贴进 PR 描述的文档,团队协作时价值明显。

第三个是复用 Codex harness,而不是重新实现。沙箱、命令白名单、补丁应用这些基础工作不重复实现,这在工程上很明智。

应用场景与落地建议

适合:跨文件重构、框架迁移、需要先出方案再动手的中长期任务,以及需要团队评审计划的场景。

不适合:单文件小改(两次搬运的额外开销比改代码还大)、强交互的低延迟场景,以及代码不能外传的合规环境。ChatGPT 侧的上传是硬性约束。

落地要注意几点:计划粒度控制在“一次能验证”的尺寸,太粗会偏离方向,太细则会淹没在协调成本里;每步验收标准必须可执行(能跑测试、能编译),否则回传的信号全是主观判断;在 CI 上设门禁,别让执行层的“我觉得改好了”直接进主干;给回传循环设重试上限,否则容易陷入“改—失败—再改”的死循环并消耗 token。

综合评价

优点:职责分离的思路是对的,也是长任务 agent 目前合理的演进方向;计划约定把黑盒推理变成可审计工件;复用 Codex harness,工程成本低;成本结构比全程使用最强模型更低。

缺点:桥接层依赖人工搬运,脆弱且不可自动化,这是架构上的先天缺陷;两个系统之间的上下文一致性完全取决于压缩策略的质量,做不好就会出现“计划一套、执行一套”;延迟高,不适合高频交互;高度依赖 ChatGPT 输出格式的稳定性,模型一换版本就可能失效。

一句话总结:这是一个架构方向正确、工程完成度待验证的实验性编排方案。如果你正在被长任务 agent 的上下文偏离困扰,这里的“计划即接口”思路值得借鉴;但要真正上生产,应先解决桥接和回传这两个问题,否则它只是一个更优雅的复制粘贴方案。