@nqounetです。
GitHub Copilotのエージェント機能が楽しくて、色々と実験しています。今回は「カスタムエージェント同士を連携させて記事を作れないか」という実験に挑戦してみました。
結論から言うと、思い描いていたオーケストレーションは実現できませんでしたが、実験自体は面白い発見がありました。
背景・きっかけ
以前、AIはコンテキストによって動作が変わるという話を書きました。ならば、全く意味不明なリポジトリ名ならどうなるのか?という素朴な疑問が湧きました。
そこで AAZe6Ev5fs2aCtcaginpy00jHimNhOmK という、完全にランダムな文字列のリポジトリを作成し、そこでカスタムエージェントの実験を行うことにしました。
また、以前AGENTS.mdを作成してもらった際に、「ガイドラインの中にカスタムエージェントを定義し、そのエージェントの使い方をワークフローで定義する」という構造を見かけました。それなら、そのエージェントを直接カスタムエージェントとして実装できるのでは?と考えたのです。
実際に行ったこと
リポジトリ作成時に、以下のプロンプトを指定しました。
|
|
「2つ以上の custom agents を利用して」と指定したのは、役割分担を期待してのことです。例えば:
- 調査担当エージェント:技術情報を収集する
- 執筆担当エージェント:記事を書く
- レビュー担当エージェント:品質をチェックする
このような分業ができれば、より質の高い記事が作れるのではないかと考えました。
結果と分析
生成されたREADME
生成されたREADMEを見た時は、正直なところ震えました。
Copilotは期待通り、複数のカスタムエージェントの定義と、それらを連携させるワークフローを提案してくれました。理論上は美しい設計でした。
しかし現実は
最初はVS Codeからは使えたものの、エージェントパネルからは使えない状態でした。
色々と指示して修正を重ねた結果、それっぽく使えるようにはなりました。しかし、最後に試したセッションのログを見ると、期待していた「オーケストレーション」は実現できていなさそうです。
私の力不足かもしれませんが、少なくとも今の時点では、複数のカスタムエージェントが自律的に連携するような動作は確認できませんでした。
この体験から学んだこと
1. 意味不明なリポジトリ名でも問題なく動作する
完全にランダムな文字列のリポジトリ名でも、Copilotは指示通りに動作しました。リポジトリ名からコンテキストを推測するようなことは(少なくとも目に見える形では)行われていないようです。
2. 設計と実装のギャップ
AIが「こうあるべき」と提案する設計と、実際に動作する実装との間にはギャップがあります。特にカスタムエージェントのような新しい機能では、そのギャップが大きくなりがちです。
3. オーケストレーションへの再考
冷静になって考えてみると、オーケストレーションしても全部AIなので、「全部まとめてしまえば良いのでは?」という疑問が湧きました。
役割を分けることで得られるメリット(専門性の向上、チェック体制の強化など)と、一つのエージェントにすべてを任せるシンプルさのどちらが良いのか。これは今後も考えていきたいテーマです。
まとめ
カスタムエージェントのオーケストレーションは、現時点では期待通りには動作しませんでした。しかし、この実験を通じていくつかの学びがありました。
- 意味不明なリポジトリ名でもAIは正常に動作する
- 理想的な設計と実際に動作する実装には差がある
- 複数エージェントの連携よりも、一つの優秀なエージェントの方が実用的かもしれない
実現したら夢が広がるなぁ、と思っていたオーケストレーションですが、今はまだ夢のままです。とはいえ、AIツールの進化は速いので、近い将来に実現する可能性は十分にあると思います。
引き続き実験を続けながら、新しい発見があれば共有していきたいと思います。