リモート開発メインのソフトウェア開発企業のエンジニアブログです

OpenAI の Symphony から開発の未来を考えた

人目を惹こうと大げさなタイトルを付けてしまいました。

1ヶ月以上前ですが、とある方の Zenn の記事を読んで興味を持ちました。OpenAI が GitHub で公開した Symphony というツールについてです。

Symphony – OpenAIが発表したチケット駆動AI開発ツールについて

Symphony とは何か

プロジェクト管理ツールにチケットを作ると、Symphony がそれを検知して AI コーディングエージェント(Codex)に仕事を投げて、実装・PR 作成を勝手に作ってくれるというものです。

詳しくは先ほどの Zenn の記事か、Symphony のレポジトリを見てください。

openai/symphony: Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents.

ちなみにこれはリファレンス実装ということで Elixir で実装されています。

1ヶ月前の第一印象

生成 AI 時代のブログ記事らしく、ここでは自分の感想とかを前面に出していこうと思います。

プロジェクト管理ツールは Linear しか対応してないのか・・・

Symphony を使うには以下の選択肢があるそうです。

  • Option 1. Make your own
  • Option 2. Use our experimental reference implementation

2の OpenAI のリファレンス実装では、プロジェクト管理ツールは Linear にしか対応していません。浅学のため、Linear というプロジェクト管理ツールはこの時初めて知りました。

Linear – The system for product development

この時点で、

「もう少ししてからまたチェックしよう。その時には別のプロジェクト管理ツールにも対応しているかも。」

と考えて、一旦 Symphony のことは忘れました。

ちなみに、1の Make your own ですが、上記のレポジトリには SPEC.md というファイルがあり、それを元に自分の好きな言語で作ることも可能です。リファレンス実装もこのファイルから作成されているそうです。

本当に全自動で出来るのかな

Symphony というか元の Ralph-Loop の話ですが、そもそもそんなことが可能なのだろうか、という思いはありました。もちろん実現している人が存在する時点で「可能」なのですが、特殊な条件じゃないと成り立たないのでは、という直感はありました。

これについては後の方に書きます。

Moba Pro

今日再び調べた感想等

最初に見たときから1ヶ月以上経ったので、何か変わったかと思って少し調べてみました。

GitHub issues と Claude Code に対応しているバージョンがあった

Linear 以外に対応した実装を作った人はいないかなと思って検索したところ、以下の Reddit が見つかりました。

OpenAI’s “Symphony” using Claude subscription, no API key needed, connects to GitHub : r/ClaudeCode

レポジトリは以下です。

gherghett/ClaudeCodePSymphony: Symphony implementation that uses Claude code -p as the agent engine and GitHub as issuetracker

主な変更点は以下の通りです。

  • プロジェクト管理ツール: Linear -> GitHub issues
  • コーディングエージェント: Codex -> Claude Code

これは使えるかも、試してみようかな、と思って、先ほどの Zenn 記事を改めてじっくり読んでみました。

Symphony は要は Ralph-Loop の一つの「実装」

改めて Symphony が何かという話をすると、要は Ralph-Loop の一つの実装です。より正確に言うと、Ralph-Loop を誰でも実現できるように SPEC.md というファイルに仕様が記載してあるので、各自で「Make your own」しても良いですし、リファレンス実装を使っても良い、という形です。

冒頭の Zenn の記事では「言語非依存の仕様書として標準化」と書いてありますが、「標準化」というのは言い過ぎかなと思うため、あえて「実装」と書きました。これについては詳細は省略します。

ちなみに、同 Zenn 記事で紹介されている以下の note 記事でも Ralph-Loop の一つの実装が公開されています。こちらの方が簡潔なのと日本語なので、Ralph-Loop がどのようなものかを理解するには良いと思います。

ClaudeCode無限ループ(ralph-loop)による完全自律開発ワークフローで開発者のウェルビーイングを取り戻す!|Jun Ito

有効に機能する前提条件がまだまだ厳しい

冒頭の Zenn 記事では、

Symphonyは「チケットを投げればコードが出てくる」システムですが、それが機能するにはコードベース側の準備が必要です。OpenAIはこれをHarness Engineeringと呼んでいます。

と書いています。Harness Engineering としてやるべき事として具体的には以下を挙げています。

  • CI/CD
  • テスト
  • リンター・フォーマッター
  • オブザーバビリティ
  • ドキュメント・型定義

これらがある程度は整備されているプロジェクトも多いでしょうが、

  • E2E テストも AI エージェントから実行できる形で自動化されている
  • AI エージェントの実行内容のログ・メトリクスなどが取得されている

というプロジェクトは少ないように思えます。

また、先ほどの note 記事では、以下の前提条件での話ですよ、という注意書きがあります。

  • TypeScript + Next.js という LLM が得意な技術スタックであること
  • 1人で開発しているため、合意形成のコストが低いこと
  • 大まかに動けば有用で、バグの存在が致命的にならないタイプのプロダクトであること

3番目を満たすのがかなり厳しい、というか適用できる範囲が狭いなと思いました。

お金がかかりそう・・・

再び冒頭の Zenn 記事からの引用ですが、Elvis さんという方は

B2B SaaS(Medialyst.ai)をほぼ一人で運営し、自己申告で1日94コミット、30分で7PR、コスト月$190という脅威の生産性。

との事です。当然、ハーネスエンジニアリング(Harness Engineering)をかなりきちっと作り込んでの結果でしょう。

また、同記事では Symphony を使う場合の注意点として以下の記載があります。

エージェント並列数に応じてAPI費用が増加します。X上では10エージェント並列で月$5,000/人程度との試算も出ています

AI エージェントの作業速度は人間とは比較にならないほど速いので、上手く回れば日本でのシニアエンジニア1名程度の費用で10人分くらいの働きをしてくれる可能性はあります。ただ、前述の通りそれを実現するための前提条件が厳しいため、通常のプロジェクトだとエンジニア1名分くらいの生産性になってしまう可能性もあります。

採用に困っている会社とかであれば良いのかもしれませんが、魅力的かと言われると疑問です。

今後の開発はどうなるか

Harness Engineering が簡単になる

今はまだまだ職人芸的なところもある Harness Engineering ですが、今後はその辺が簡単に実現できるようなツール・サービスが出てくると考えています。そうすると AI エージェントに自律的に作業をさせる前提が整ってきます。

それによりソフト開発の速度は上がるが、価格が下がるので結局一緒

それによって

  • いよいよ初級〜中級レベルのエンジニアが AI によって淘汰される
  • 開発作業が楽になる

という事が実現するのでしょうか。

私は実現しないと思います。正確に言うと、現在半年かかっていたソフトウェア開発は例えば1ヶ月で終わるようになるので、そういう意味では楽になります。自分だけがその恩恵を受けているのであれば、週に1日だけ仕事をしても従来通りの生産性が出せ、同じ金額を稼げます。

ただ、実際にはみんな同じ条件なので、供給が増えた分ソフトウェアの価格が大幅に下落します。そうすると、今までと同じ金額を稼ぐには週5日働く必要があり、結局は楽にはなりません。

使われないソフトウェアが増える

今後ソフトウェアの供給が増えるはずですが、人間の時間には限りもありますし、ソフトウェアの需要は大きく変わりません。そうすると、多くの人に使われるソフト・サービスを作るというのが今まで以上に難しくなりますし、使われないソフトウェアというのも増えてきます。

企業としても、素早くリリースして様子を見て、ダメならすぐ諦めるというサイクルが加速すると思います。

自分はどうしているか

本題ではないので細かくは書きませんが、私の現時点での開発はもう少し人間のチェックが多く、以下のような流れです。

  1. 要件をチケットにまとめる
  2. AI に仕様を作成させる
  3. レビュー・承認する
  4. AI に実装させる
  5. レビュー・承認する

かかっている価格は ChatGPT (Codex) と Claude (Claude Code) のサブスクリプション費用くらいです。

前述の Zenn や note 記事なども参考にしつつ、もう少し自動化の割合を増やそうとはしていますが(特に E2E テスト)、基本的な流れはしばらくは変わらないんじゃないかと思います。

まとめ

OpenAI が1ヶ月以上前に公開した Symphony というツールは、プロジェクト管理ツール(Linear)のチケットを読み込んで、自動で開発を行ってくれる仕組みを簡単に実現できます。

GitHub で公開されているのは SPEC.md という仕様書とそれを元に生成された Elixir のリファレンス実装ですが、SPEC.md を使って他の言語の実装も比較的簡単に作成することができるようです。また、それを元に、GitHub issue をプロジェクト管理ツールとして使えるフォーク版もネット上にはありました。

ただ、全自動で開発を回すためには harness engineering をキッチリ行う必要があるのと、それ以外にも前提条件があるので、今後、チケットにやりたい事を書けば寝ている間に AI が作ってくれるという夢のような世界の実現にはもう少し時間がかかりそうです。

ただ、それに近いものはいずれ実現します。しかし、その時に1つのソフト作成にかかる時間は減りますがそれは自分以外もみんな同じ条件なので、結局仕事の量は減らないのではと考えています。

とはいえ、仕事のやり方は現在進行形で大きく変わっているので、取り入れられる部分は自分たちの仕事にも取り入れていこうと思いました。

← 前の投稿

is_null() で障害が発生した話 ── 先輩の教えには前提条件があった

次の投稿 →

コメントを残す