symphony 是什么?

Symphony 是 OpenAI 出的一个「把项目工作变成隔离、自主的实现运行」的编排服务规范与参考实现。它是一个长期运行的守护进程:持续从 issue tracker(当前规范以 Linear 为例)读取工作,为每个 issue 建独立工作区,并在其中拉起一个编码 agent(Codex)会话自主完成任务,agent 给出 CI 状态、PR 评审、复杂度分析、讲解视频等「工作证明」,被接受后安全合入 PR——让团队「管理工作」而非「盯着编码 agent」。值得注意的是,仓库的核心交付物是一份 2169 行的 SPEC.md 规范,鼓励你让自己的编码 agent 按规范实现;Elixir 版只是实验性参考实现。Apache-2.0,明确标注为「低调的工程预览」,仅供可信环境测试。

⭐ 25,892 Stars 🍴 2,622 Forks Elixir Apache-2.0 作者: openai 商业引流:低
来源:README/SPEC.md 第1节 Problem Statement;GitHub openai/symphony,desc 查看 GitHub 仓库 →

为什么值得关注

短时间内冲到 2.4 万星、2401 fork,最直接的原因是它出自 OpenAI 官方、且配了博客(open-source Codex orchestration),自带巨大关注度。更深一层,它代表了 OpenAI 推的「harness engineering → 管理工作而非监督 agent」这条叙事的下一步,并用一种少见的方式呈现:仓库主体是规范 + 让 agent 自己实现,而非一个现成产品。这种「spec 优先」的姿态本身就是话题,加上 Codex 自主跑 Linear 工单的演示,传播力很强。

来源:GitHub 24,418 stars / 2,401 forks,created 2026-02-26;README harness engineering 链接/demo

核心功能

工单驱动的自主实现守护进程

按固定节奏轮询 issue tracker,挑选活跃状态的工单,以有界并发分派;为每个 issue 建确定性的独立工作区并跨运行保留,在其中跑编码 agent 自主实现,工单状态变得不合格时停止对应运行。

来源:SPEC 1/2 Goals、8 Polling/Scheduling;README demo
WORKFLOW.md 仓库内策略契约

把运行策略(agent 提示词、运行时设置、工单处理与交接规则)放进仓库的 WORKFLOW.md,随代码版本化;Workflow Loader 解析其 YAML front matter + 提示词模板,Config 层做带默认值与环境变量间接引用的类型化校验。

来源:SPEC 5 Workflow Specification、6 Configuration
编排状态机 + 恢复与对账

orchestrator 持有单一权威运行时状态,管理 issue 编排状态、run attempt 生命周期、转移触发、幂等与恢复规则;含指数退避重试、活跃运行对账、启动时终态工作区清理,可在无持久数据库下靠 tracker/文件系统驱动重启恢复。

来源:SPEC 7 State Machine、8.4/8.5 Retry/Reconciliation
工作区安全隔离 + Agent Runner 协议

Workspace Manager 把 issue 映射到工作区路径、保证 agent 命令只在 per-issue 目录内执行、跑生命周期 hook;Agent Runner 定义启动契约、会话启动职责、流式回合处理、上行运行时事件、审批/工具调用/用户输入策略与超时错误映射,是接入编码 agent 的标准接口。

来源:SPEC 9 Workspace Management、10 Agent Runner Protocol
规范优先、可移植到任意语言

Symphony 把系统分成策略/配置/协调/执行/集成/可观测六层以便移植;仓库提供完整 SPEC.md,可直接让编码 agent「按此规范实现」,也提供 Elixir 实验参考实现,二者解耦。

来源:SPEC 3.2 Abstraction Levels;README Option 1/2

技术架构

Symphony 的真正核心是规范而非代码:SPEC.md 定义了八大组件——Workflow Loader、Config Layer、Issue Tracker Client(Linear 适配)、Orchestrator(轮询/分派/重试/对账)、Workspace Manager(工作区生命周期与安全不变量)、Agent Runner(编码 agent 接入协议)、可选 Status Surface、Logging——并刻意把边界划清:Symphony 只是「调度器/运行器 + tracker 读取器」,工单写入(状态流转、评论、PR 链接)由编码 agent 用其工具完成;成功运行可停在工作流定义的交接态(如 Human Review)而非必须 Done。架构按六层(策略/配置/协调/执行/集成/可观测)组织以利移植。参考实现用 Elixir 写:基于 Phoenix/LiveView + Bandit(Web/状态面)、req(HTTP)、yaml_elixir 解析 WORKFLOW.md、solid 渲染提示词模板、ecto 建模,编译为 escript CLI;这套技术栈天然契合「长期运行、并发、容错」的守护进程定位。它不要求持久数据库,运行时状态主要在内存,靠 tracker + 文件系统恢复。

来源:SPEC 3 System Overview/边界说明;elixir/mix.exs deps(phoenix/bandit/req/yaml_elixir/solid/ecto)

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) bandit (HTTP server)bandit phoenix / phoenix_live_viewphoenix / phoe… req (HTTP client)req yaml_elixir (解析 WORKFLOW.md)yaml_elixir solid (Liquid 提示词模板)solid 工单驱动的自主实现守护进程工单驱动的自主实现守护… WORKFLOW.md 仓库内策略契约WORKFLOW.md 仓库内策… 编排状态机 + 恢复与对账 工作区安全隔离 + Agent Runner 协议工作区安全隔离 + Agen… 规范优先、可移植到任意语言规范优先、可移植到任意… symphony 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言规范无关;参考实现用 Elixir框架Elixir + Phoenix / LiveView(参考实现)
bandit (HTTP server)phoenix / phoenix_live_viewreq (HTTP client)yaml_elixir (解析 WORKFLOW.md)solid (Liquid 提示词模板)ectoescript CLI
长期运行守护进程;依赖 issue tracker API(Linear)+ 编码 agent(Codex app-server);无需持久数据库,靠 tracker/文件系统恢复;per-issue 工作区隔离
来源:elixir/mix.exs deps/aliases/escript;SPEC 3.3 External Dependencies

快速上手

两条路径。方式一(自建):直接把规范丢给你的编码 agent——「Implement Symphony according to the spec: https://github.com/openai/symphony/blob/main/SPEC.md」,让它用你选的语言实现。方式二(参考实现):按 elixir/README.md 配置环境运行 Elixir 版(mix setup 拉依赖、escript.build 构建 CLI),也可让 agent 按该 README 帮你接到自己的仓库。前提:你的代码库最好已采用 OpenAI 的 harness engineering 实践;并需准备 Linear 等 tracker 接入与 Codex 运行环境。注意它是工程预览,建议只在可信环境测试。
来源:README Running Symphony(Option 1/2);elixir/mix.exs aliases

使用场景

适合:①已经在做 harness engineering、希望把「盯 agent 干活」升级为「管理工单流」的工程团队;②想要把 Linear 工单自动派给 Codex 自主实现、并以 CI/PR 评审/复杂度/讲解视频作为验收证据的团队;③想研究 OpenAI 对「spec 优先 + agent 自实现」这套方法论的人,或想按规范用自己喜欢的语言移植一套编排器的开发者。不适合:想要开箱即用产品、富 Web 控制台或多租户控制面的人(明确是 Non-Goal),以及不接受在可信环境跑自主 agent、对沙箱/审批要求严格却期望框架内建强管控的团队。

来源:SPEC 2.2 Non-Goals/README Requirements,结合定位推断

优势与局限

优势

  • 出自 OpenAI 且方法论清晰:把「管理工作而非监督 agent」落成可执行的编排服务定义,方向有分量
  • 规范优先的形态很有价值:2169 行 SPEC.md 把状态机、并发、对账、工作区安全、agent 接入协议讲得很细,可移植、可学习
  • 边界划得克制而准确:只做调度/运行/读 tracker,把写工单/PR 的业务逻辑留给 agent 与 WORKFLOW.md,职责清晰
  • 工程考量到位:幂等恢复、退避重试、终态清理、无需持久数据库,契合长期运行守护进程
  • 参考实现选 Elixir/OTP 也合理——并发、容错、长运行正是其所长

局限

  • 明确是「低调的工程预览」,仅建议在可信环境测试,未到生产就绪
  • 对自主 agent 的安全管控刻意不强制:不规定统一的沙箱/审批策略,安全姿态需实现者自己负责,可信环境外风险高
  • 前置门槛高:依赖团队已采用 harness engineering、接入 Linear 与 Codex,且参考实现仅 Elixir,多数团队需自行移植
  • 当前规范只覆盖 Linear 一种 tracker,其他系统需自行适配
  • 「让 agent 按 spec 自实现」很新颖,但实现质量与一致性高度依赖所用模型,不同实现行为可能有差异
来源:README WARNING/Requirements;SPEC 1/2.2 边界与 Non-Goals;mix.exs

最新版本

仓库无正式 GitHub Release,以规范 + 参考实现的形式持续维护,主分支活跃(最近 push 2026-05-20)。整体定位为工程预览(engineering preview),规范版本当前以 Linear 作为 tracker 示例。

来源:GitHub 无 releases;pushed_at 2026-05-20;README/SPEC 版本说明

总结评价

Symphony 与其说是一个工具,不如说是 OpenAI 对「agent 时代如何组织工程工作」的一份观点声明:把开发从「监督 agent」抬升到「管理工单流」,并用一份相当严谨的规范把编排器该有的状态机、并发、安全和 agent 接入协议讲清楚,再大方地说「你让 agent 照着实现就行」。作为方法论与规范,它很有学习和移植价值;但作为可用系统,它仍是工程预览、前置门槛高、安全管控靠自负、参考实现只有 Elixir 且只接 Linear。适合走在 harness engineering 前沿、用 Codex 的团队认真研究和小范围试验,普通团队短期内更可能从它的 SPEC 思路而非现成代码中获益。

来源:综合 README/SPEC 定位与边界、elixir 实现、发布状态的事实判断

常见问题

symphony 是什么?

Symphony 是 OpenAI 出的一个「把项目工作变成隔离、自主的实现运行」的编排服务规范与参考实现。它是一个长期运行的守护进程:持续从 issue tracker(当前规范以 Linear 为例)读取工作,为每个 issue 建独立工作区,并在其中拉起一个编码 agent(Codex)会话自主完成任务,agent 给出 CI 状态、PR 评审、复杂度分析、讲解视频等「工作证明」,被接受后安全合入…

symphony 有哪些核心功能?

symphony 的核心功能包括:工单驱动的自主实现守护进程、WORKFLOW.md 仓库内策略契约、编排状态机 + 恢复与对账、工作区安全隔离 + Agent Runner 协议、规范优先、可移植到任意语言。

symphony 为什么最近很受关注?

短时间内冲到 2.4 万星、2401 fork,最直接的原因是它出自 OpenAI 官方、且配了博客(open-source Codex orchestration),自带巨大关注度。更深一层,它代表了 OpenAI 推的「harness engineering → 管理工作而非监督 agent」这条叙事的下一步,并用一种少见的方式呈现:仓库主体是规范 + 让 agent 自己实现,而非一个现成产品。

symphony 适合哪些使用场景?

适合:①已经在做 harness engineering、希望把「盯 agent 干活」升级为「管理工单流」的工程团队;②想要把 Linear 工单自动派给 Codex 自主实现、并以 CI/PR 评审/复杂度/讲解视频作为验收证据的团队;③想研究 OpenAI 对「spec 优先 + agent 自实现」这套方法论的人,或想按规范用自己喜欢的语言移植一套编排器的开发者。

透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-05-22 17:57. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件