一文看懂 OpenAI 开源的 Codex 编排规范:Symphony
公众号名称:技术极简主义
作者名称:兔兔AGI
发布时间:2026-06-07 11:51
六个月前,OpenAI 内部做了一个很激进的实验:一个生产力工具项目里,不再由人手写代码,仓库里的每一行代码都必须由 Codex 生成。
为了让这件事真正跑起来,他们重新设计了工程流程:搭建更适合 agent 的仓库结构,补齐自动化测试和防护栏,把 Codex 当成一个真正的工程队友来对待。
这个方向跑通之后,一个新的问题出现了。
当 AI 已经能写代码时,真正卡住团队效率的,变成了人类如何管理这些 AI。
为什么需要 Symphony:AI 编程的瓶颈变了
今天的 coding agent 已经越来越强,无论是通过网页、CLI,还是接入 IDE,它们都可以承担越来越多具体开发任务。
但从使用方式上看,它们依然大多是交互式工具。工程师需要打开几个 Codex 会话,分别分配任务、检查输出、补充上下文、纠正方向,然后再等待结果。
OpenAI 团队发现,大多数工程师同时管理三到五个 session 之后,上下文切换成本就会明显上升。你要记住哪个 agent 在做什么,哪个任务卡住了,哪个 PR 需要 review,哪个测试失败需要重跑。
这时,agent 本身很快,但整个系统并没有真正变快。
他们相当于拥有了一批能力很强的初级工程师,却让高级工程师一直在旁边逐个盯进度。
这就是 Symphony 出现的背景。
它要解决的核心问题,是推动开发模式从「人盯着 session 干活」向「任务系统驱动 agent 干活」的范式跃迁,而非单纯让 Codex 多写几行代码。
过去我们习惯围绕代码会话和 PR 组织 AI 编程,但在真实软件工程里,团队其实是围绕任务、需求、工单、里程碑来工作的。
所以 OpenAI 换了一个视角:如果不再直接监督 agent session,而是让 agent 从任务管理系统里自动领取工作,会发生什么?
这个想法最终变成了 Symphony。
Symphony 是怎么工作的:把 Linear 变成 Agent 编排器
Symphony 的核心设计很简单:把 Linear 这样的任务管理系统,变成 coding agent 的控制平面。

在这个模式里,每一个打开的 Linear issue,都会映射到一个独立的 agent workspace。Symphony 持续监听任务看板,确保每个活跃任务都有一个 agent 在循环推进。
如果 agent 崩溃或卡住,Symphony 会重启它。如果新的任务出现,Symphony 会自动接管并开始组织工作。

这里最关键的变化,是 Linear 不再只是一个项目看板,而是变成了 agent 工作流的状态机。
任务从 open 到 in progress,再到 review、merging,每个状态都对应下一步动作。工程师不需要在多个终端窗口之间来回切换,只需要在任务系统里看工作流推进。
Symphony 的一句话原则是:每一个开放任务,都要保证有一个智能体在自己的工作区里持续推进。
这种抽象带来的好处非常明显。一个 issue 不一定只对应一个 PR,它可能跨多个仓库产生多个 PR;也可能只是调研、分析、整理方案,最后并不修改代码。
当任务被抽象到这个层面后,ticket 就可以承载更大的工作单元。
比如一个复杂功能,agent 可以先分析代码库、Slack 或 Notion,生成实施计划;计划确认后,再拆出一棵任务树,定义阶段和依赖关系。
如果某个任务被另一个任务阻塞,agent 就不会提前启动它。等前置任务完成后,后续任务再自动展开。这其实就是一个很自然的 DAG 并行执行过程。
OpenAI 在文章里举了一个例子:React 升级被标记为依赖 Vite 迁移。结果也符合预期,agent 会先完成 Vite 迁移,再开始推进 React 升级。
更有意思的是,agent 也可以自己创造新工作。
在实现或 review 过程中,它可能发现性能问题、重构机会,或者更好的架构方向。以前这些可能只是工程师脑子里的一个念头,现在 agent 可以直接创建 follow-up issue,交给团队后续评估和排期。
这样一来,团队启动探索性任务的心理成本会大幅下降。你可以很便宜地让 agent 去试一个想法、验证一个假设、跑一个原型,不满意就丢掉。
真正的启发:从管理代码会话,到管理智能体工作流
Symphony 带来的第一个直观变化,是产出增加。
OpenAI 提到,在一些团队里,采用 Symphony 后的前三周,最终合入的 PR 数量提升了 500%。这个数字很亮眼,但我觉得更值得关注的,其实是背后的工作方式变化。
当工程师不再把精力花在监督 Codex session 上,每一次代码变更的感知成本都会下降。
过去你可能会想:「这个重构值得开一个会话吗?我要不要自己盯着它跑完?」现在你只需要创建一个任务,让 agent 去探索,最后看结果是否值得保留。

这也让更多角色可以参与软件构建。
OpenAI 提到,他们的产品经理和设计师可以直接在 Symphony 中提交功能请求。他们不需要 checkout 仓库,也不需要管理 Codex session,只要描述想要的功能,最后拿到一个 review packet,里面甚至包含功能在真实产品中运行的视频演示。
在大型 monorepo 里,Symphony 还有另一个价值:处理 PR 合入前最后那段很烦的路。
它可以持续盯 CI,必要时 rebase,解决冲突,重试 flaky checks,把变更一路护送到 Merging 状态。等 ticket 进入 Merging,团队对它最终进入主干已经有较高信心。
当然,Symphony 并不适合所有任务。
有些问题高度模糊,需要很强的判断力和专家经验,这类任务仍然更适合工程师直接和 Codex 交互。换句话说,Symphony 更适合处理大量常规实现、迁移、修复、验证和探索工作,让工程师把注意力留给真正困难的问题。
OpenAI 后来还得到一个重要经验:不要把 agent 当成状态机里的死板节点。
早期他们只是让 Codex 实现任务,但很快发现这太限制模型能力了。Codex 可以创建多个 PR,也可以阅读 review feedback 并继续修改,还能借助 gh CLI、CI 日志读取技能等工具,完成远超「写代码」的工作。
所以 Symphony 后来更接近一种管理方式:给 agent 目标、工具和上下文,让它自己推理和推进。
这也是 Symphony 最有启发的地方。
打开 Symphony 仓库,你会发现它本质上只是一个 SPEC.md 文件:一份对问题和预期方案的定义。参考实现使用 Elixir,因为 Elixir 很适合并发编排和进程监督,但核心思想并不依赖 Elixir。
OpenAI 甚至让 Codex 用 TypeScript、Go、Rust、Java、Python 等多种语言实现 Symphony,通过这些实现反过来找出 spec 里的歧义,再继续简化系统。
最后沉淀下来的核心非常朴素:
For every open task, guarantee that an agent is running in its own workspace.
配套的开发流程,则被写进 WORKFLOW.md:如何领取 issue,如何 checkout repo,如何移动状态,如何创建 PR,如何进入 Review,如何附加视频证明。
很多团队过去默认靠经验和口口相传完成这些步骤,而 Symphony 把它们显式写下来,再让 agent 按照流程执行。
在技术底座上,Codex App Server 也很关键。它让 Codex 可以在 headless 模式下运行,并通过 JSON-RPC API 被程序化调用,比如启动 thread、响应 turn、接入外部系统。
OpenAI 还使用 dynamic tool calls 暴露 linear_graphql 这类能力,让子 agent 可以执行必要的 Linear 请求,同时避免直接暴露访问 token。
所以,Symphony 看起来是在讲 Linear 和 Codex 的集成,实际上讲的是 AI 编程进入规模化阶段后的新工程问题。
下一阶段的关键能力,已经从提升单个 Agent 的代码编写水平,升级为构建一组 Agent 围绕真实工程流程的稳定协作。
对普通团队而言,与其照搬 Symphony,不如先把自己的工作流文档化:任务如何进入开发、PR 如何评审、CI 如何处理、验收结果如何证明、失败后如何重试。
当这些流程能被写成清晰的规范,agent 才有机会真正接入团队日常工作,而不是停留在一个个临时打开的聊天窗口里。
参考资源:
-
• An open-source spec for Codex orchestration: Symphony[1]
-
• OpenAI Symphony[2]
引用链接
[1] An open-source spec for Codex orchestration: Symphony: https://openai.com/index/open-source-codex-orchestration-symphony/
[2] OpenAI Symphony: https://github.com/openai/symphony
既然看到这里了,如果觉得有启发,随手点个赞、推荐、转发三连吧,你的支持是我持续分享干货的动力。
推荐阅读:一文看懂三种 RAG 架构:Classic RAG、Graph RAG 与 Agentic RAG
内容效果不满意?点此反馈