🎃

マルチエージェントの検証日記

に公開

はじめに

最近、AIの進化が凄まじいことになっています。ホットな話題の一つにマルチエージェントという仕組みがあります。一つのAIだけでなく、複数のAIが協力課題を解決する仕組みです。私もこの仕組みには並々ならぬ関心をいだいています。今回は、自社サービスにマルチエージェントシステムを組み込むために行った検証の内容をご紹介します。

マルチエージェントシステムの概要と目的

私が作っているのは、不動産を買いたい・売りたいお客様との会話を通して、お客さんの希望や状況を整理し、スムーズな取引をサポートするAIシステムです。現時点では、一体のエージェントがお客様とやり取りをしています。ところが、一つのAIだけだと会話が単調になりがちです。新たな観点を提供したくて、話題を転換させるにしても、強引さが目立ってしまうこともあります。

そこで、違う役割や得意分野を持つ複数のAIが協力して会話を進めるという方法を試してみました。これは実際の商談で、専門分野の違う担当者がそれぞれの視点から話を進めていくような感じです。新しいアイデアを形にしていく過程は、思った以上に面白いものでした。(※この仕組みをマルチエージェントと言うのか?という疑問を持たれた方も多いと思います。至極真っ当な疑問です。あくまで今回は、マルチエージェントな仕組みを目指して構築した第一歩の取り組みとして生暖かく見守っていただけますと幸いです。)

今回実装した仕組み

基本構成

会話において、役割の異なる複数のエージェントが参加する仕組みを作りました。検証では、下のような役割をもたせました。

  1. メインエージェント: 本題に集中して、不動産取引の重要な部分を担当
  2. サブエージェント: 少し文脈からは逸れるが、お客さんが興味を持ちそうな情報を提供

実装のポイント

AIエージェント同士の区別をはっきりさせるために、いくつか工夫しました:

  • 性格と話し方の違い: 各AIには明確に性格は話し方に違いを持たせました。
  • 見た目の違い: アイコンではなく、画面上で吹き出しの色を変えるなど、話している相手が変わったことがすぐわかるようにしました。

今回作成した仕組みでは、非常に簡単なロジック(条件分岐レベル)でそれぞれのエージェントが会話を進める形にしています。ゲームマスターのように、それぞれのエージェントに司令を出すエージェントを設置することで、より高度に能動的に会話展開を作っていくことはできるのですが、課題もあります。

今の”賢い”言語モデルだと、そういった判断を挟むことで数秒のロスになります。オペレーターのようにタスクを遂行してくれるエージェントなら待機時間もストレスになりにくいですが、今回は会話です。会話となると、ストレスが無く待てる時間の要求も厳しくなります。

会話のテンポを大事にしたいので、今回は単純なロジックでの実装を試みました。

開発中の工夫

私は新人エンジニアで、サーバーサイドの開発しか経験が有りません。

この新しい仕組みを会社の人に見せて評価してもらう方法に悩みました。こういった新しい仕組みは動きを見てもらって、評価をしたうえで、アプリケーションサイドに組み込み依頼をしたいと考えています。(サーバーのロジックを作るよりも、アプリケーションに組み込む方が大変)

そこで、ClineというLLMエージェントが自律的に開発を進めてくれるツールを使って、最低限動作イメージが分かるプロトタイプアプリを作りました。フロントエンドの知識がほとんどない私でも、びっくりするほど簡単に試作品の構築が完了しました。

流石に製品の開発を(コードの仕組みを知らない人間が)エージェントに丸投げするのはハイリスクですが、試作品を作るうえではこれで十分なのではないかと思ってしまいます。(場合によっては資料を作るよりも早く作れます。)

LLMシステムを作るうえで意識をしていること

大切なのは、AIを単なるチャットボットとしてではなく、システム全体の一部として考えることです。最近のAIは、出力の形式を指定する機能が強化されています。AIを「曖昧な演算が可能な計算機」だと考えると、LLMシステムの設計はもっと自由になっていきます。エージェントをどの様に組み合わせれば、どんな素晴らしいことが実現できるのか、とワクワクしながら妄想と実装を進めている次第です。

これからやりたいこと

今はまだほんの初歩的な部分しか試していませんが、これからは次のような機能を追加したいと考えています:

  1. 外部サービスとの連携: 不動産データベースや地図サービスなどと繋げる
  2. 長期戦略を考えるAI: お客さんの将来的なニーズを分析して提案するAI
  3. AIどうしのもっと柔軟な連携: AI同士が情報を共有して、状況に合わせて最適なAIが答える仕組み

LLMはこれからも速く、賢く、安価になっていくでしょう。そうすればサービスの制約内で実現できることもどんどん増えていきます。それをただ待つのではなく、今からサービスの制約外で実証を重ね、タイミングが来たときにはいち早く、新しい仕組みをサービスに組み込めるよう準備をしておきたいと思っています。

マルチエージェント技術の可能性

複数のAIを連携させて動かす考え方は、より幅広い問題解決には欠かせません。AIにもそれぞれ得意分野や特色が出てきています。これからは特定の目的に特化したAIという考え方も広がるでしょう。それらをどうやってうまく組み合わせて、理想的なシステムを作るかが大切になります。新しい技術の可能性を探るのは、エンジニアとしてのワクワク感があります。

おわりに

単にチャットボットとしてAIを使う段階から、複数のAIを組み合わせたシステムとして使う段階に移りつつあります。そういったサービスを便利に使うのももちろん重要です。ただ、今は自分でそういうものを作れるツールも増えてきています。AIをうまく組み合わせて、どんな素晴らしいシステムを作れるか。そういう発想を育てていくことが、これからのAI時代には大切なのだと思います。

P.S.
この記事はClaude3.7と私のコラボレーションにより執筆しています。

Discussion