Open-Source Brief DOC—SYM/01 · openai/symphony REV 2026.04 · a
— The Symphony Brief —

Symphony/不再監督 Agent

Compiled by 2026·04·28 STATUS · OPEN SOURCE
OPENAI · LAB openai/symphony — Apache 2.0 · Elixir reference impl · Linear-driven · "manage work, not the agent" · launched 2026·02
17.2k
★ Stars
1.4k
Forks
Apache 2.0
License
Elixir
Reference
figure 00 · thesis Manage
the work,
not the
orchestra.
Symphony 是 OpenAI 在 2026 年 2 月放出的開源 long-running daemon。 它把 coding agent 從「人類盯著看」變成「人類管 work、agent 自己跑」—— 持續輪詢 Linear 的 issue → 為每張票建立 deterministic 的 isolated workspace → 在裡面跑一個 Codex agent session → 把 PR、CI 狀態、review feedback、walkthrough 影片 一條龍交回來給人類驗收。 README 自己的話:這是 harness engineering 的下一步。
Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents. 把專案任務轉成「隔離、自主執行」的 run;團隊只管「要做什麼」,不再盯著 agent 怎麼做。 ——這句話是整個專案的整盤棋。
01/04
— Lifecycle of a Ticket
一張 Linear 票的旅程
從進到 active 狀態到 PR 落地,整條路徑由 Symphony 接管。 人類給的輸入是 issue,拿到的輸出是可審查的 PR、附上 proof-of-work。
// daemon-loop
T · 00 — Poll

輪詢 Tracker

Polling Linear on cadence

Orchestrator 以固定週期打 Linear API,篩出 active states 的 issue,依 priority 與 concurrency cap 排程。

T · 01 — Spawn

建立 Workspace

Per-issue isolated dir

Workspace Manager 為這張票開一個 deterministic 路徑(可重啟可重用);hooks 跑 git clone / setup。Agent 命令只能在這個資料夾動。

T · 02 — Run

跑 Agent Session

Codex app-server stream

Agent Runner 用 WORKFLOW.md 的 prompt template 渲染輸入,啟動 Codex session,串流 turn / tool call / token usage 回 orchestrator。

T · 03 — Land

Proof & Handoff

PR + CI + walkthrough

Agent 自己改 ticket state、附上 PR 連結、CI 結果、複雜度分析、walkthrough 影片。終點可能是 Done,也可能是 Human Review——由 workflow 決定。

02/04
— System Anatomy
8 個核心元件
SPEC.md 把整個系統拆成 8 個各司其職的模組。 Loader 讀 contract、Orchestrator 主時鐘、Runner 餵 agent,邊界清楚。
// components
C1

Workflow Loader

Reads WORKFLOW.md

解析 YAML front matter 與 prompt body,把「這個 repo 的 agent 工作流」當作 contract 載入。

C2

Config Layer

Typed Getters

提供 typed 配置存取、預設值、env 變數展開。Dispatch 前的 preflight 驗證也走這層。

C3

Tracker Client

Linear Adapter

抓 candidate issue、查指定 ID 狀態、收尾時撈 terminal-state,並把 Linear payload 標準化。

C4

Orchestrator

The Heartbeat

主時鐘。決定誰要 dispatch / retry / stop / release,掌握 in-memory runtime state、retry queue、metrics。

C5

Workspace Manager

Per-Issue Filesystem

把 issue ID 對應到固定 workspace 路徑,跑 lifecycle hooks,terminal 狀態時清理掉。

C6

Agent Runner

Codex App-Server

建立 workspace、組 prompt、啟動 Codex client、串流 turn / event / token usage 回主時鐘。

C7

Status Surface

Operator UI · Optional

給人類看的 runtime 狀態——可以是 terminal 視窗、儀表板,或任何 operator-facing view。SPEC 不規定形式。

C8

Logging

Structured Sinks

結構化 log 輸出到一個或多個 sink。多 agent 並行時,這是除錯的唯一可信來源。

03/04
— Abstraction Layers
六層抽象 · 從 Repo 到 Agent
SPEC 建議實作時保持這六層分離—— 每一層只關心自己這層的事,移植到其他語言(Python / Rust / Go)只要替換對應層即可。
// porting-layers
L1
Policy Layer
政策層
WORKFLOW.md 的 prompt body 與團隊規則。跟 codebase 同個 git——agent 行為跟程式一起 version control。
REPO · OWNED
L2
Configuration Layer
配置層
把 front matter 解析成 typed 設定,處理預設值、env token、路徑標準化。
TYPED · GETTERS
L3
Coordination Layer
協調層
輪詢迴圈、issue 資格、concurrency、retry、reconciliation——整個 daemon 的大腦。
ORCHESTRATOR
L4
Execution Layer
執行層
filesystem 生命週期、workspace 準備、coding-agent 子程序協議。Agent 真正動手的地方。
WORKSPACE · AGENT
L5
Integration Layer
整合層
Linear adapter——API 呼叫與 tracker 資料標準化。換 Jira / GitHub Issues 就替換這層。
TRACKER · ADAPTER
L6
Observability Layer
觀測層
Log + 可選的 status surface。多 agent 並行時,operator 唯一能掌握全局的窗口。
LOGS · STATUS
04/04
— Why It Matters
四個值得抄走的設計
Symphony 不是「最強 agent 框架」,它是 OpenAI 對「agent 該怎麼被組織化」的一份示範。 這四個決策值得每個自己搭 harness 的團隊參考。
// design-takeaways
01

Workflow as Code

Prompt in repo

WORKFLOW.md 跟程式同個 repo、同個 PR review、同個 git history。Agent 的行為改一行都留痕跡。

02

Workspace 隔離

Per-issue Filesystem

每張票一個獨立資料夾,agent 命令只能在裡面動。即使行為失準,blast radius 也鎖在那一張票。

03

Tracker as Contract

Linear is the UI

不發明新介面——Linear 既是工程師看的看板,也是 agent 的工作清單。人 ↔ agent 共用同一個 source of truth

04

無資料庫狀態

Tracker + FS = Source

沒有 persistent DB——重啟時靠 tracker 與 filesystem 重建狀態。少一個元件,少一個故障點,多一份簡單。

— The Paradigm Shift —

Supervise Manage

過去一年,所有人都在問「怎麼讓 coding agent 更聰明」—— Symphony 的答案是把問題換成「怎麼讓 agent 更可被管理」。 不是讓 agent 自己決定要做什麼,而是讓 agent 的「做什麼 / 在哪做 / 結果交到哪」 都被一份 repo 內的 contract 管住。人類把心力從「監督每一步」收回, 去做更重要的事——定義 issue、審 PR、決定產品走向。 這才是 OpenAI 想用 17,197 顆星告訴你的東西: agent 的下一個瓶頸不是模型,是組織化

Further Reading 延伸閱讀