Agent Development Kit 1.8.0 で追加された AgentのA2A ASGI Application化
こんにちは、サントリーこと大橋です。
今日(2025/07/24)Agent Development Kit 1.8.0がリリースされました。
主な更新内容は
- AgentのA2A ASGI Application化する機能追加 (今回の記事で紹介します。)
- Agent Card Builderの追加 (※本記事で紹介する機能と関連がありそうです)
- Vertex AI Model Optimizerサポート
- ComputeUseToolsetの追加 (ただし、まだ実装クラスが存在しないため、現時点では利用できないようです)
- ブラウザやコンピュータの操作を行うためのツールを提供する機能のようです
- まだ試験的な(Experimental)段階
今回はこの内の「AgentのA2A ASGI Application化する機能追加」について解説していきます。
これまでのADKにおけるA2Aの課題
これまでADKでA2Aサーバーを構築するには、大まかに2つの手段がありました。
- 自前でA2A SDKを利用してADKを接続する
- 1.6.2で追加された
adk api_server --a2aを利用してA2Aサーバーを立てる
1.の方法はサンプルがあるものの、手間がかかる、2.の方法は手軽なものの、adk api_serverの各種エンドポイントが利用可能な状態になってしまい、純粋なA2Aサーバではありませんでした。
1.8.0で追加されたto_a2a
今回リリースされた ADK 1.8.0で追加された google.adk.a2a.utils.agent_to_a2a.to_a2aはこの課題を解決する機能と思われましたが、コードを確認したところ、まだ完全な解決には至っていないようです。
利用方法自体は以下の様にADKで定義したagentとhostやportを渡すだけです。
from google.adk.agents import Agent
root_agent = Agent(
model="gemini-2.5-flash",
name="good_agent",
description='A helpful agent for user questions.',
instruction='A helpful agent for user questions.',
)
a2a_app = to_a2a(root_agent)
あとはuvicornなどから呼び出せば簡単にa2aサーバーを起動できます。
uvicorn a2a:a2a_app --host localhost --port 8000
ADKのクライアント側でこのリモートエージェントを利用する場合は1.6.1で追加されたRemoteA2AAgentを利用します。
from a2a.utils.constants import AGENT_CARD_WELL_KNOWN_PATH
from google.adk.agents.remote_a2a_agent import RemoteA2aAgent
root_agent = RemoteA2aAgent(
name="good_agent",
description=(
"A helpful agent for user questions."
),
agent_card=f"http://localhost:8000/{AGENT_CARD_WELL_KNOWN_PATH}",
)
あとは クライアント側のAgentを起動すればA2Aを利用したAgentが作成できます。
adk web --host 8001
これだけ見ると
とても簡単にa2aサーバーが利用可能だということがわかります。
ただ...
現状の to_a2aの課題
現状この to_a2aではin-memoryサービスを使った、runnerを定義して利用します。
つまりちょっと本番環境では使えなさそうですね。。。。
このただto_a2aの実装自体は簡単ですし、上記のAgentCardBuilderも内部で利用しているので、参照実装として有用ですね。
card_builder = AgentCardBuilder(
agent=agent,
rpc_url=rpc_url,
))
今後 createRunner に相当する関数を渡せるようになるといいのですが...
まとめ
簡単ですが、 ADK 1.8.0 で追加された to_a2a について書きました。
まだちょっと本番環境では使えなそうですが、今後こういう方向性でAgentをA2A化できるのであれば、非常に楽しみですね。
お知らせ/宣伝
先日、ADKユーザー向けのイベント「ADK UG #0」が開催され、ADK開発者が集う日本語のDiscordコミュニティが誕生しました。ADKに関する情報交換や議論に興味がある方は、ぜひご参加ください!
また、ADKの最新のコミットログやリリースノートを分かりやすく解説するPodcastを、月・水・金に配信しています。ADKの動向を追いかけたい方は、ぜひ聴いてみてください。
Discussion