Symphony が Linear をコーディングエージェントの司令塔に変える!
やっほー、しぃちゃんだよ!今日はコーディングエージェントを何体もまとめて束ねる、新しいオープンソースの話にわくわくしてるの。
OpenAI News
なにが発表されたの?
OpenAI の News で、Symphony っていうエージェントのオーケストレーション用オープンソース仕様が発表されたよ!これは Linear みたいなプロジェクト管理ボードを、コーディングエージェントの「コントロールプレーン(司令塔)」に変えちゃう仕組みなの。しぃちゃんたちが普段タスクを並べてる課題ボードが、そのままエージェントを動かす管制塔になるって発想だよ。
Symphony は課題ボードをずっと見張っていて、開いてるタスクひとつひとつに必ずエージェントが張り付いて、終わるまでループで回し続けてくれるの。仕様の本体は Symphony の GitHub リポジトリ で公開されてるよ。
なぜ重要なの?
エージェントを何個も同時に動かすとき、いちばんの詰まりどころって実は「人間の注意力」なんだよね。エンジニアが Codex の対話セッションを何枚も開いて、あっち見てこっち見て…ってやってると、人間のほうがボトルネックになっちゃうの。
Symphony はそこを逆転させて、「課題ボードのほうが主役、人間はときどき覗くだけ」にするんだよ。OpenAI は自分たちの課題トラッカーそのものをコントロールプレーンにした、って説明してるの。
これで何が変わるの?
効果はけっこう強烈で、OpenAI の一部のチームではこんな数字が出たんだって。
Among some teams at OpenAI, we saw the number of landed PRs increase by 500% in the first three weeks.
最初の 3 週間でマージされた PR が 500% 増えたって!人間がエージェントを見張る係から解放されると、こんなに変わるんだね。
しかも「チェックアウトして、ステータス更新して、PR をひも付けて…」みたいな、これまで暗黙だった開発フローを WORKFLOW.md に書き出して明文化するから、どのエージェントが動いても同じ手順を再現できるようになるの。
深く潜ってみよう
Symphony の面白いところは、製品というより仕様そのものが主役なところ。本体は SPEC.md っていう 1 枚の Markdown ファイルで、ドメインモデル・ポーリング・ワークスペース管理・エージェントプロトコル・トラッカー連携まで、ぜんぶここに書いてあるんだよ。
仕組みをざっくり並べるとこんな感じ。
- 課題(Issue)は Unclaimed → Claimed → Running → RetryQueued → Released というステートマシンで管理される
- タスクごとに独立したワークスペースを作って、その中でエージェントを走らせる
- エージェントとの通信は Codex App Server を使って、stdio 経由の JSON-RPC でやり取りする
- Linear とは GraphQL アダプタでつながって、
linear_graphqlみたいなツール呼び出しで直接読み書きできる
ワークスペースの設定は WORKFLOW.md の YAML フロントマターに書くよ。ポーリング間隔や同時実行エージェント数、フックなんかを指定できるの。
tracker:
kind: linear
polling:
interval_ms: 30000
agent:
max_concurrent_agents: 10
リファレンス実装には Elixir が選ばれてるの。並行プロセスの監督・オーケストレーションが得意な言語だからなんだって。しかも仕様のあいまいさを洗い出すために、OpenAI は Codex に頼んで同じ仕様を TypeScript・Go・Rust・Java・Python でも実装させたらしいよ。「好きなコーディングエージェントに仕様を渡して、自分専用の Symphony を実装させる」っていう使い方もできるの。公開から 4 月 23 日時点で 15K 超の GitHub スターが付いてるんだって。
まとめ
- Symphony は Linear などの課題ボードをコーディングエージェントの司令塔に変える、オープンソースのオーケストレーション仕様だよ
- 本体は
SPEC.md1 枚で、リファレンス実装は Elixir、Codex App Server と JSON-RPC でつながる - 開いてるタスクに必ずエージェントを張り付けることで、一部チームでは最初の 3 週間で PR が 500% 増えたの
WORKFLOW.mdで開発フローを明文化して、どのエージェントでも同じ手順を再現できる
エージェントを何体も回して「人間の見張り」に疲れてる開発チームや、Codex ×課題管理をまるっと自動化したい人に刺さる仕様だと思うな!