OpenAI 发布 Symphony 规范:用项目管理工具编排自主编码智能体
Symphony 是一款智能体编排框架,它借助项目管理工具(如问题追踪系统)充当控制平面,来协调多个编码智能体协同工作。开发者无需再管理那些交互式编码会话,Symphony 会自动将各类任务分配给专门的智能体,由它们自主完成工作,最终由人工审查结果。
OpenAI 工程师开发 Symphony 的初衷,是为了解决他们在使用传统工作流程时面临的「人类注意力」瓶颈:
每位工程师通常会开启多个 Codex 会话,分配任务、检查输出、引导智能体,然后周而复始。实际上,大多数人在同时管理三到五个会话后,就会因频繁切换上下文而疲惫不堪。
超过这个数量后,工程师很难记住每个会话的进展、监控卡住的智能体,也无法在脑海中清晰地理清所有进行中的工作。
基于此,Symphony 摒弃了围绕单个编码会话(每个会话的目标都是在人工明确监督下合并代码拉取请求)组织工作的方式,转而将项目中的问题、任务、工单与里程碑等核心交付物,作为构建工作流的基本单元。
Symphony 持续监控任务看板,确保每个进行中的任务都有对应的智能体持续运行直到完成。如果智能体崩溃或停滞,Symphony 会自动重启它。如果有新工作出现,Symphony 会接收并开始推进。
在这种模式下,智能体的工作不再与 PR 绑定。一个问题可以指示智能体分析代码库并生成实现方案,然后将其拆分为 Symphony 可跨智能体调度的任务树。同样,如果智能体发现可优化或重构的地方,它可以自主创建新问题。这两种场景中,仍需人工开发者审核生成的问题,审核通过后再由 Symphony 下发执行。
这种方案的主要优势在于,智能体犯错的代价大幅降低,因为主要工作变成了审查已完成的工作并决定是否驳回。
Symphony 的另一个显著特点是,它并非一个复杂的监督系统,而是一份 SPEC.md 文档,描述了问题及解决方案,各个组织都可以用它来构建自己的编排器。其参考实现采用 Elixir 开发,因为 Elixir「在编排与管控并发进程方面具备非常成熟的基础能力」。
需要特别指出的是,OpenAI 并未将 Symphony 作为独立产品推出,它只是一个参考实现,开发者可根据自身场景和代码库进行调整和定制。