[ADK] What's new in 1.20.0
こんにちは、サントリーこと大橋です。
本記事は ADK Advent Calendar 2025 の 2025/12/05 の記事です。
ADK Advent Calendar 2025 はまだまだ参加者を募集中ですので、興味のある方はぜひ参加してください!
昨日の記事は kubotakaさんの 「【Google ADK】検索品質を求めて「Deep Research」を自作してみた話」でした。
独自で Deep Research を実装して、検索品質を高める方法を説明していました。自分で作ると理解度が上がるし、より細かな調整ができていいですね。
さて、2025/12/04 に Agent Development Kit (ADK) 1.20.0 がリリースされました。
今回は 1.20.0 のリリースノートを元に、以下のアップデートについてピックアップして説明します。
- Add validation for unique sub-agent names
- Create APIRegistryToolset to add tools from Cloud API registry to agent
- Enable multi-provider support for Claude and LiteLLM
リリースノートはこちらです。
対象
- ADK を触ったことがある Python ユーザー
- Google Cloudの新しいサービスを知りたいユーザー
なお本記事中では ADK の Agent をAgent、それ以外の AI エージェントをエージェントと表記します。
What's new in 1.20.0
まずは 1.20.0 のリリースノートを見てみましょう。
リリースノート全文(原文と和訳)を見る
Features
[Core]
- Add enum constraint to
agent_namefortransfer_to_agent
transfer_to_agentで指定するagent_nameに Enum 制約を追加しました。- Add validation for unique sub-agent names
- サブエージェントの名前が一意であることを検証する機能を追加しました。
- Support streaming function call arguments in progressive SSE streaming feature
- Progressive SSE Streaming 機能において、関数呼び出しの引数のストリーミングをサポートしました。
[Models]
- Enable multi-provider support for Claude and LiteLLM
- Claude と LiteLLM のマルチプロバイダーサポートを有効にしました。
[Tools]
- Create APIRegistryToolset to add tools from Cloud API registry to agent
- Cloud API Registry からツールを Agent に追加するための
APIRegistryToolsetを作成しました。- Add an option to disallow propagating runner plugins to AgentTool runner
- AgentTool ランナーへのランナープラグインの伝播を許可しないオプションを追加しました。
[Web]
- Added an endpoint to list apps with details
- アプリの詳細リストを取得するエンドポイントを追加しました。
Bug Fixes
- Allow image parts in user messages for Anthropic Claude
- Anthropic Claude でユーザーメッセージに画像パーツを含めることを許可しました。
- Mark the Content as non-empty if its first part contains text or inline_data or file_data or func call/response
- 最初のパーツにテキスト、インラインデータ、ファイルデータ、または関数呼び出し/応答が含まれている場合、コンテンツを空ではないとしてマークするようにしました。
- Fixes double response processing issue in
base_llm_flow.pywhere, in Bidi-streaming (live) mode, the multi-agent structure causes duplicated responses after tool calling.
- Bidi-streaming (live) モードにおいて、マルチエージェント構造がツール呼び出し後に重複した応答を引き起こす
base_llm_flow.pyの二重応答処理の問題を修正しました。- Fix out of bounds error in _run_async_impl
_run_async_implでの範囲外エラーを修正しました。- Fix paths for public docs
- 公開ドキュメントのパスを修正しました。
- Ensure request bodies without explicit names are named 'body'
- 明示的な名前のないリクエストボディが 'body' と命名されるようにしました。
- Optimize Stale Agent with GraphQL and Search API to resolve 429 Quota errors
- GraphQL と Search API を使用した Stale Agent を最適化し、429 Quota エラーを解決しました。
- Update AgentTool to use Agent's description when input_schema is provided in FunctionDeclaration
FunctionDeclarationでinput_schemaが提供されている場合、AgentToolが Agent の説明を使用するように更新しました。- Update LiteLLM system instruction role from "developer" to "system"
- LiteLLM のシステム指示の役割を "developer" から "system" に更新しました。
- Update session last update time when appending events
- イベントを追加する際にセッションの最終更新時間を更新するようにしました。
- Update the retry_on_closed_resource decorator to retry on all errors
retry_on_closed_resourceデコレータをすべてのエラーで再試行するように更新しました。- Windows Path Handling and Normalize Cross-Platform Path Resolution in AgentLoader
- AgentLoader における Windows パス処理とクロスプラットフォームパス解決の正規化を行いました。
Documentation
- Add Code Wiki badge to README
- README に Code Wiki バッジを追加しました。
Pick up Feature
1. Add validation for unique sub-agent names
Agent の sub_agents に設定する Agent 名に対して、重複チェックが追加されました。
サブエージェントに重複する名前を設定すると、ValueError が発生します。
これにより、サブエージェントの名前を重複して設定する可能性を低減することができます。
今まではエラーになっていなかったため、バージョンアップした際に急にエラーになってしまう可能性があるため、注意してください。
特に WorkflowAgent などでSequentialAgentを利用して、動的にsub agentを生成する際は、名前が重複しないよう特に注意してください。
2. Create APIRegistryToolset to add tools from Cloud API registry to agent
Google Cloud でこれからリリースされる予定の(?)、Cloud API Registry というサービスをサポートするための APIRegistryToolset が追加されました。
実装を見る限りだと、Google Cloud に MCP サーバーの URL を登録しておいて、利用できるようにするもの(?)のようです。
まだ Google Cloud 側にこのサービスが存在しないため、利用できません。※アナウンスもありません。
また現状 Google APIs Discovery Service (※ Google API のドキュメントを得るためのサービス) にも登録されていないため、詳細は不明です。
欲しがりさんのあなたは Cloud API Registry API Library にアクセスして API だけアクティブにしておくといいと思います。
サービス詳細を見る限りでは、現状 google.cloud.apiregistry.v1beta.CloudApiRegistry という API の下に GetMcpServer、GetMcpTool、ListMcpServers、ListMcpTools というメソッドが定義されています。
登録/更新/削除系のメソッドがまだ未定義のため、まだ現状は使えなさそうですね。

現状のCloud API Registry APIのAPI管理画面、取得系メソッドのみが表示されている
3. Enable multi-provider support for Claude and LiteLLM
Claude と LiteLLM 経由で利用する一部のモデルが、Gemini のようにモデル名だけ指定すれば利用可能になりました。
例えば今まで OpenAI のモデルを利用する場合には、以下のように LiteLlm モデル に openai/gpt-4oのようなモデル名を明示的に指定して利用していました。
weather_agent_gpt = Agent(
name="weather_agent_gpt",
model=LiteLlm(model="openai/gpt-4o"), # Use OpenAI's GPT model
description="Provides weather information using OpenAI's GPT.",
instruction="You are a helpful weather assistant powered by GPT-4o. "
"Use the 'get_weather' tool for city weather requests. "
"Present information clearly.",
tools=[get_weather],
)
今回の更新で openai/.*、groq/.*、anthropic/.* の正規表現にマッチするモデル名であれば、自動的に LiteLlm モデルが利用可能になりました。
weather_agent_gpt = Agent(
name="weather_agent_gpt",
model="openai/gpt-4o", # これでLiteLlm経由になる
description="Provides weather information using OpenAI's GPT.",
instruction="You are a helpful weather assistant powered by GPT-4o. "
"Use the 'get_weather' tool for city weather requests. "
"Present information clearly.",
tools=[get_weather],
)
また、claude-3-.*, claude-.*-4.* の正規表現にマッチするモデル名であれば、自動的に Claude モデルが利用されるようになりました。
weather_agent_claude = Agent(
name="weather_agent_claude",
model="claude-3-sonnet-20240620", # これでClaude経由になる
description="Provides weather information using Claude.",
instruction="You are a helpful weather assistant powered by Claude. "
"Use the 'get_weather' tool for city weather requests. "
"Present information clearly.",
tools=[get_weather],
)
まとめ
今回は ADK 1.20.0 のリリースについて紹介しました。
今回は大きな機能追加こそありませんでしたが、Cloud API Registry への対応は印象的です。
まだ Google Cloud 側にサービスが存在せず利用できない状態ではありますが、ADK が Google Cloud を強力にサポートするフレームワークであり、サービスリリースに先駆けてコードが準備されるという、ADKがGoogleのOSSであることを強く意識させられるアップデートとなりました。
お知らせ/宣伝
ADK 開発者が集う日本語の Discord コミュニティがあります。ADK に関する情報交換や議論に興味がある方は、ぜひご参加ください!
また、ADK の最新のコミットログやリリースノートを分かりやすく解説する Podcast を、月・水・金に配信しています。ADK の動向を追いかけたい方は、ぜひ聴いてみてください。クリスマス期間中は毎日配信しています。
Discussion