🤖

AIエージェントのための「Google検索」はなぜ必要か? ADKで構築するA2A検索エンジン「Agentpedia」

に公開

https://www.youtube.com/watch?v=LfTi9Q_3lfc

はじめに

こんにちは!AIエージェントの開発にしている皆さん、こんなことを感じていませんか?

「作ったはいいけど、このエージェント、どうやって他のエージェントと連携させよう…?」
「特定の機能を持つエージェントを、必要な時に動的に見つけてきてくれたら最高なのに…」

2025年現在、大規模言語モデル(LLM)の進化により、自律的にタスクをこなすAIエージェントが次々と誕生しています。しかし、その多くは個々の能力に特化した「孤島」のような存在です。真の力を発揮するのは、これらのエージェントが互いに連携し、複雑なタスクを分担・協業するマルチエージェント・システムが実現された時でしょう。

しかし、そこには大きな壁が存在します。それが「エージェント・ディスカバリー問題」です。

この記事では、その問題を解決するため、GoogleのAgent Development Kit (ADK) を用いて開発したA2A(Agent-to-Agent)検索エンジン「Agentpedia」について、そのコンセプトからアーキテクチャ、そして未来の展望までを詳しくご紹介します。

プロジェクトが対象とするユーザー像と課題、ソリューション

まずは、このプロジェクトがどのような課題を解決しようとしているのか、その核心部分を説明します。

対象とするユーザー像

  • マルチエージェント・システムの開発者や研究者

  • 自作のAIエージェントに、外部の多様な能力を動的に組み込みたいと考えている開発者

  • 柔軟でスケーラブルな自律型AIワークフローの構築を目指す企業やチーム

ユーザーが抱える課題

現在のマルチエージェント開発における最大の課題は、エージェント間の連携が静的(Static)である点です。

例えば、「市場を分析し、その結果を要約して、プレゼン資料を生成する」というワークフローを考えます。この場合、開発者は「分析エージェント」「要約エージェント」「資料生成エージェント」のアドレスやAPI仕様を事前に把握し、コード内にハードコーディング(固定で記述)する必要があります。

これには、以下のような深刻な問題が伴います。

  1. 柔軟性の欠如: もっと高性能な「要約エージェントV2」が登場しても、自動でそちらに切り替えることができません。連携先の変更には、コードの修正と再デプロイが必要です。

  2. スケーラビリティの限界: 世の中に便利なエージェントが100種類、1000種類と増えていっても、その全てを事前に把握し、連携ロジックを組むことは不可能です。

  3. 自律性の阻害: エージェント自身が「このタスクには、あの能力が必要だ」と判断しても、自ら能力を持つ仲間を探しに行く手段がありません。

この「どうやって必要な能力を持つエージェントを見つけるのか?」という問題こそが、「エージェント・ディスカバリー問題」です。

課題へのソリューションと特徴:A2A検索エンジン「Agentpedia」

私たちはこの課題を解決するため、AIエージェントのためのGoogle検索のような存在、A2A検索エンジン Agentpediaを提案します。

Agentpediaは、それ自体が一つのAIエージェントとして振る舞い、世界中に存在する他のエージェントの能力をインデックス化し、他のエージェントからの問い合わせに応じて最適なエージェントを推薦(発見)する役割を担います。

現在の実装と特徴:

現在のバージョンは、まずこの問題の解決に向けた第一歩として、中央集権型のエージェントレジストリとして機能します。

  • 手動による事前登録: 現状では、開発者が自身の作成したエージェントのURLを、Firestoreに事前に登録します。これにより、まずは「信頼できるエージェントの一覧」を確実に構築します。

  • 単一の真実の源: このアプローチにより、開発者は様々なエージェントの情報をあちこちで管理する必要がなくなり、Agentpediaという「単一の真実の源(Single Source of Truth)」に問い合わせるだけで済むようになります。ハードコーディングから脱却する、現実的で重要な一歩です。

  • 自然言語による検索: 内部でVertex AI(Gemini)を活用しており、「日本語に翻訳できるエージェントはいる?」といった自然言語の曖昧なクエリを解釈し、Firestoreに登録されたエージェントの中から最適なものを検索します。

  • A2Aプロトコル準拠: Agentpedia自身がADKで構築されたエージェントであり、標準化されたプロトコルで他のエージェントと対話します。

この「まずは信頼できる情報を集約する」というアプローチにより、実用的で安定したディスカバリー機能を提供します。

システムアーキテクチャ

Agentpediaは、Google Cloudのマネージドサービスを最大限に活用して構築されています。

現在のバージョンでは、開発者による手動登録が起点となりますが、クライアント・エージェントからの検索フローは完全に自動化されています。

  1. cloud functionがfirestoreに格納されたAgentのURLを取得し、各URLの/.well-known/agent.jsonを取得し、firestoreにデータを格納
  2. Agentpediaはfirestoreからエージェントの情報を取得
  3. クライアントのエージェントがAgentpediaに問い合わせをすると、Agentpediaは取得したエージェントの情報の中から最適なものをクライアントに返します
  4. クライアントは取得したエージェントの情報を使って新しいエージェントと通信を開始します

今後の課題:自律的なエージェント発見のためのクローラー実装

中央集権的な登録簿は強力な第一歩ですが、Webが人間の手を離れて成長したように、真の自律的なエージェント・エコシステムのためには、Agentpedia自身が未知のエージェントを自動で発見するクローラーの実装が不可欠です。

しかし、エージェント・クローラーの実装には、従来のWebクローラーとは異なる、いくつかのユニークな課題が存在します。

課題1:探索対象ドメインの特定

Webページと違い、エージェントがどのドメインでホストされているかは自明ではありません。インターネット全体をスキャンするのは非現実的です。

  • 解決アプローチ:
  1. シードリストの活用: 既知のエージェント開発企業やコミュニティ、関連サービス(例: GitHubの特定トピック)のドメインを初期リスト(シードリスト)として利用する。

  2. ネットワークの活用: あるエージェントのagent.jsonに、連携先として別のエージェントのURLが記載されている場合、それを辿ってクロール対象を広げていく。

  3. 倫理的配慮: 無差別なスキャンは避け、明確なオプトイン(登録)やコミュニティからの情報提供を主軸とするアプローチを検討する。

課題2:効率的で丁寧なクローリング

無駄なリクエストは相手サーバーの負荷となり、また自身のコスト増にも繋がります。

  • 解決アプローチ:
  1. robots.txtの尊重: クローリングの基本的なマナーとして、robots.txtの指示に従う。

  2. 差分取得: HTTPのETagLast-Modifiedヘッダーを利用し、agent.jsonが更新されている場合のみデータを再取得する。

  3. 分散クロール: Cloud TasksやPub/Subを用いて、クロール対象のURLキューを管理し、複数のクローラーワーカーを並列で動作させる。

課題3:検証とセキュリティ

発見したagent.jsonが、本当に正しく、そして安全なものかを検証する必要があります。

  • 解決アプローチ:
  1. スキーマ検証: 取得したJSONデータが、事前に定義したagent.jsonのスキーマに準拠しているか検証する。

  2. 悪意のあるコンテンツの検知: JSON内に含まれるURLやスクリプトが、不正なサイトを指していないかチェックする。

  3. サンドボックス環境: 発見したエージェントのヘルスチェックなどを行う際は、隔離されたサンドボックス環境で実行し、安全を確保する。

今後の展望

Agentpediaは、まだその第一歩を踏み出したばかりです。将来的には、以下のような機能拡張を構想しています。

  • セマンティック検索の導入: 現在はGeminiのプロンプトにAgnetの一覧を含めることによって、最適なエージェントを割り出しているのですが、登録されているエージェントの数が膨大になるとこの手法では限界を迎えます。なので、Vertex AI Embeddingsを用いてクエリとエージェントの能力説明文をベクトル化し、意味的に類似したエージェントを検索できるようにします。(例:「絵を描いて」→generate_imageを発見)

  • エージェントの評価・評判システム: 検索結果に、他のエージェントからの評価や実行成功率などの評判(レピュテーション)情報を付与し、より信頼性の高いエージェントを選択できるようにします。また、エージェントの評価というのは、エージェント(あるいは人間)にしかできないと考えているのでAgentpediaのエージェントが実際に対話をすることによって、対象のエージェントを評価する仕組みを考えています。

  • 動的なチーム編成の自動化: より高度なオーケストレーター・エージェントがAgentpediaを活用し、複雑なタスクに応じて自律的にエージェントのチームを編成し、タスクを遂行する世界の実現を目指します。

おわりに

この記事では、マルチエージェント時代に不可欠となる「エージェント・ディスカバリー問題」と、その解決策として私たちが提案するA2A検索エンジン「Agentpedia」について、現在の実装と将来の課題を交えて解説しました。

まず「中央集権型レジストリ」という実用的な一歩から始めました。そして今、その先の「自律的な発見」という大きな挑戦を見据えています。この開発の道のり自体が、AIエージェント・エコシステムの進化の過程を映し出しているのかもしれません。

皆さんも、自分だけのエージェントを作り、この大きな変革の波に参加してみませんか?

最後までお読みいただき、ありがとうございました。

Discussion