SymphonyエージェントがGitHub Issueを自律解決するための設定方法
9. Mai 2026
0
Computing/SoftwareRelated Video
6:20OpenAIが「Symphony」を開発し、無料で公開した理由
Better Stack
Comments (0)
Log in to leave a comment
No posts yet
6:20Better Stack
Log in to leave a comment
No posts yet
イシュートラッカーに溜まったチケットをエージェントに直接処理させるには、まずプロジェクトルートに WORKFLOW.md を投入する必要があります。シンフォニー(Symphony)は、プロジェクト管理ボードの状態変化を検知して、隔離されたワークスペースを割り当てる構造になっています。実際にOpenAIの内部チームがこの方式を導入した際、最終的にマージされたプルリクエスト数が3週間で500%も急増しました。数値が少し大げさに見えるかもしれませんが、エージェントが環境設定や割り当て作業を自動で処理するため、開発者はコードだけに集中できるという意味です。
まずYAML設定にGitHubのリポジトリパスと、ai-fix のようなトリガーラベルを記述してください。次にRustで書かれた broomva/symphony やGoバージョンの itervox/symphony-go デーモンを起動し、30秒ごとにIssueを監視させます。このように設定しておけば、誰にこの仕事を任せるか悩みながらメッセンジャーを漁る時間から解放されます。
エージェントに仕事を任せると、時としてとんでもないコードを書いて堂々と提出してくることがあります。セキュリティキーを露出させたり、チームのコンベンションを無視したりといった具合です。Symphonyの hooks.after_run は、エージェントが作成した成果物をリポジトリに記録する直前に稼働する検問所です。ここで実行されたスクリプトがエラーを吐くと、Symphonyは即座に作業を中断し、質の低いコードが混入するのを防ぎます。
after_run 段階に、たった3行だけ追加してください。npx prettier --write で書式を整え、npx eslint --fix で構文を修正し、さらに npx tsc --noEmit で型チェックまで終わらせる必要があります。この自動検証ループを回せば、エージェントが書いたコードを人間が修正する手間が半分に減ります。エージェントの後始末に時間を費やす状況を避けたいのであれば、これは必須の設定です。
複数のエージェントを同時に動かしていると、ローカルマシンが悲鳴を上げることがあります。CPUを占有されてマウスが止まったり、ファイルシステムが競合してコードが上書きされる事故が発生します。Symphonyのオーケストレーターは内部的に filepath.EvalSymlinks 関数を使ってパスを分析するため、ディレクトリトラバーサル(脱出)の試みは防いでくれますが、リソースの分配は自分で設定する必要があります。
安定して5つ以上のセッションを動かすには、Dockerコンテナをスロットのように活用してください。--memory="2g" と --cpu-shares=100 オプションでリソースを制限し、--network=none で外部通信を遮断するのが安全です。エージェントがネットワークのどこかへデータを送信したり、システムを麻痺させたりするのを見たくないのであれば、これくらいの隔離は当然の措置です。
エージェントにメインブランチへ直接コミットさせるのは自殺行為です。いくらAIの性能が向上したとはいえ、人間の最終承認なしに一行たりともマージしてはいけません。作業結果は必ず staging/ai-patch- といった接頭辞がついた一時ブランチにプッシュさせるべきです。
パイプラインの最後にGitHub CLI(gh)コマンドを組み込んでください。gh pr create を非対話モードで実行して自分をレビュアーに指定し、Slackで通知を飛ばすようにします。コードをチェックして問題がない場合のみ、gh pr merge --squash でマージすれば完了です。機械が下書きを作成し、人間が承認印を押す構造が、最も速く、かつ安全です。