Transcript
00:00:00これはOpenAIのSymphonyです。長期実行エージェントをオーケストレーションするオープンソースツールで、
00:00:05Linearのような既存の課題トラッカーを使用して、人間の監視なしにエージェントが
00:00:10自律的にタスクを完了するのを助けます。しかし、なぜ使用前にゼロから構築する必要がないのでしょう?
00:00:14Codex CLIのみの対応でしょうか?そして、これはOpenAIからのさらなる
00:00:18オープンソースツールの始まりなのでしょうか?チャンネル登録して、確かめてみましょう。
00:00:25Symphonyが誕生したのは、OpenAIが「人間の注意力のボトルネック」に直面したからです。つまり、
00:00:30コンテキストスイッチが生産性に悪影響を及ぼし始める前に、エンジニアが同時に監視できる
00:00:35Codexセッションは3〜5個が限界でした。当然、これでは拡張できません。では、OpenAIはこの
00:00:41「高速なエージェントと低速な人間マネージャー」の問題をどう解決したか?人間を排除したのです。ある意味では。
00:00:47Symphonyでは、人間がボードにタスクを置くと、そのタスク完了のために新しいエージェントが起動され、
00:00:52レビューが必要な場合のみ、エージェントが人間に介入を求めます。
00:00:55しかし、SymphonyはMulticaやConductorのような類似ツールと比べてどうでしょうか?
00:00:58デモを見れば一目瞭然です。始める前に、これだけは言わせてください。
00:01:03Symphonyのインストール手順は、私の人生で見た中で最も奇妙です。あるいは、
00:01:07最も天才的な方法かもしれません。これについては後ほど詳しく。
00:01:10まずは、基本的な例を見てみましょう。Symphonyを実行し、
00:01:14Linearのタスクをポーリングしています。Linearで新しいチケットを作成します。
00:01:18内容は、TypeScriptとBUNを使った「Hello World」アプリの構築です。
00:01:22現在、Symphonyはバックログを処理しない設定なので、ステータスを「To-Do」に変更し、
00:01:27チケットを作成します。タスクのID「SYN7」を覚えておいてください。
00:01:31しばらくすると、SymphonyがそのタスクIDを検出します。数秒後、
00:01:36GraphQLの検証エラーが出ますが、大したことではなく、Codexなら簡単に修正できます。
00:01:41その後、Codexが作業を完了し、チケットのステータスを
00:01:45「To-Do」から「Done」に変更し、Symphonyからコメントが残されました。つまり、
00:01:49Symphonyのワークスペース・ディレクトリ(詳細は後述)を確認すると、
00:01:53チケットと同じIDの新しいワークスペースができています。その中には、
00:01:58Hello World TypeScript Bunアプリ用に作成されたファイルの一覧があります。そしてsourceディレクトリに行くと、
00:02:04見ると、アプリのコードがここにあります。これがSymphonyの基本的な仕組みです。
00:02:08では、セットアップ方法を説明します。このリポジトリによると、
00:02:12インストール方法は2つあります。オプション2は、私たちが慣れている方法です。Elixirをセットアップし、
00:02:16リポジトリをクローンしてコードをビルドし、既存のワークフロー・ファイルで実行します。
00:02:20しかしオプション1は、おそらく最も奇妙で、あるいは最も先進的なインストール方法です。
00:02:25基本的にはコーディング・エージェントにこのプロンプトを与えるだけです。エージェントは2,000行以上の
00:02:30スペックファイルを読み込みます。これは、エージェントに対して
00:02:34Symphonyの構築方法を詳細に指示するものです。驚くべきことに、全員がこの方法をとれば、
00:02:39同じSymphonyは二つとして存在しなくなります。人によって異なる言語で、
00:02:43異なる機能を持つことになり、OpenAIの維持・サポートはカオスになるでしょう。
00:02:47しかし、ある意味では天才的です。自分専用のSymphonyを構築すれば、
00:02:51それに責任を感じるからです。バグを直し、機能を追加し、
00:02:55基本的には自分で維持管理することになります。SymphonyにLinearや
00:02:59Codexを使わせたくないなら、それも自由です。ある人はCharm CLIで動くGo版のSymphonyを、
00:03:04また別の人はClaude SDKで動くものを作りました。私はそこまで独創的ではないので、
00:03:09GPT 5.5 Low Effortを使ってCodexにデフォルトのプロンプトを入れたところ、Python版の
00:03:15Symphonyが生成されました。LLMはPythonが得意ですからね。構築が終わったら、
00:03:19Linearの個人用APIキーが必要です。「セキュリティとアクセス」から
00:03:23作成できます。次に、そのキーをワークプロフィールに追加します。
00:03:28これはSymphonyに仕事を教えるファイルで、YAMLフロントマターを含み、
00:03:32APIキー、エージェントがタスクに着手できるアクティブ状態の定義、
00:03:37ワークスペースのルート、そしてSymphonyがコーディング・エージェントを起動するために
00:03:42使用するシェルコマンドであるCodexコマンドが含まれています。その下には、
00:03:46各課題に対してエージェントに送信されるMarkdownプロンプトがあります。OpenAIのリポジトリで詳細を確認できます。
00:03:51しかし現時点では、このワークフローは実際のプロジェクトには不十分です。例えば、
00:03:56開発中のフィルムエミュレーション・アプリに変更を加えたいとします。「create-after」フックを追加する必要があります。
00:04:01これはワークスペース作成後に実行され、まずリポジトリをワークスペースに
00:04:06クローンし、新しいブランチをチェックアウトします。さらに「run-after」フックも
00:04:10追加しました。Codexが作業を終えた後に、ファイルをステージングし、
00:04:15コミットを作成してブランチをプッシュし、プルリクエストを作成します。
00:04:20では、OpenAIが買収した(これは別動画のネタですが)UVを使ってSymphonyを実行すると、
00:04:25新しい課題をポーリングし始めます。ここでREADMEを更新する新しい課題を作成しましょう。
00:04:30一括処理のセクションで、複数ファイルを表示する代わりにワイルドカードを使うよう指定し、
00:04:35ステータスを「To-Do」に変えて作成します。Symphonyが課題を
00:04:40ピックアップしました。ワークスペース・ディレクトリを見ると、課題IDに一致する
00:04:45新しいフォルダがあり、プロジェクトがクローンされています。作業が終わると、
00:04:49ステータスは「Done」になり、Linearチケットへのリンクと要求通りの変更を含む
00:04:54新しいプルリクエスト(PR)が作成されました。もちろん、Symphonyのコードを変更して
00:04:59PRの説明を改善したり、コメントにPRへのリンクを貼るのも、
00:05:04Codexなら簡単でしょう。以上がSymphonyの概要です。すでにLinearを
00:05:08使っている、または会社で導入しているなら、インターフェースに馴染みがあるはずです。Codexユーザーなら、
00:05:13手持ちのスキルやMCPツール、プラグインを活用できます。私は個人的に
00:05:18Codexを使いませんが、OpenAIがSymphonyで目指しているビジョンは理解できます。
00:05:22AIを使って同じプロジェクトに取り組む開発者チームを想像してください。各自が個別の
00:05:28ワークフローを持つのではなく、共通のスキル、ツール、ワークフロー、プラグインを持つ
00:05:33中央エージェントを置くのです。各開発者はタスクを与えることで対話し、
00:05:37他の人がどんなタスクをし、どんなプロンプトを使ったかを把握でき、自分の作業が
00:05:41他の機能にどう影響するかを一目で確認できます。誰かが触っているコードに
00:05:46干渉しない機能を作るのは難しいことですから。しかし、Symphonyはクールですが、
00:05:49個人的にはMulticaの方が優れていると思います。セットアップやエージェントの追加が簡単で、
00:05:54タスクのスケジュールも可能です。それでも、
00:05:59Symphonyの居場所はあるはずです。これはMulticaの骨組みバージョンのようなもので、
00:06:04既製品ではなく、欲しい機能を正確に追加できるからです。つまり、
00:06:08SymphonyはPi Harnessのようなもので、MulticaやConductorはClaude Codeのようなものです。
00:06:13Multicaについて詳しく知りたい方は、こちらの動画ですべて解説して
00:06:18いますので、ぜひご覧ください。