GoogleがADKの5言語対応を紹介、A2Aで異なる言語のエージェント間の相互運用が可能
公開:
GoogleのAgent Development Kit(ADK)は、PythonやGo、TypeScript、Java、Kotlinの5言語に対応しています。各言語版がそれぞれの実行環境と型の仕組みに合わせて一から作られ、共通の設計とオープンなプロトコルで相互運用できるのが特徴です。[1]
この記事では、ADKの5言語でできることと、プロジェクトの生成手順を整理します。Gemini Enterprise Agent Runtimeへのデプロイ方法も解説します。[1][2]
5言語に対応したADKでできること
Googleは、多くのエージェントフレームワークがPythonだけの構成を前提にしているとしています。そのためチームは、専用のPythonサービスか、自社の言語でのオーケストレーションの自作を迫られるという見方です。[1]
全言語共通のプロトコル
ADKでは言語を選んでも設計は固定されず、全言語版がModel Context Protocol(MCP)のクライアントを含みます。MCPサーバーとして公開したカスタムツールを、どの言語版からもすぐに呼び出せるのが特徴です。
マルチエージェント構成では、ADKはAgent2Agent(A2A)プロトコルに対応しています。A2Aを使うと、エージェントがHTTP経由でリモートのエージェントと通信でき、異なる言語やフレームワークで書いたエージェント同士も相互運用できます。
言語ごとのツール定義
同じ天気ツールを各言語で定義し、設計が実行環境にどう合うかを見ると、5言語の違いが分かります。各言語の例は次の通りです。
Go版を除くコード例は、gemini-3.8-flashを使うweather_agentにツールを登録します。Java版はLlmAgent.builder()で、都市の天気の質問に答える指示を設定します。
ツールのスキーマの扱い
Python版ではデコレーターやスキーマビルダークラスが不要です。通常の関数をtoolsに渡すと、起動時にシグネチャや型ヒント、docstringからツール宣言とPydanticのパラメータスキーマを構築します。
Go版の例はget_weatherの名前と天気取得の説明でgetWeatherをfunctiontool.Newに渡します。functiontool.Newは構造体タグから入出力のスキーマを推論し、実行前にGoのコンパイラーが関数を検証する仕組みです。
TypeScript版は、z.object(...)のスキーマからexecuteコールバックの引数の型を推論します。実行時の入力検証やモデルへ送るJSON Schema、executeコールバック内のIDE補完は、1つの情報源から生まれます。
Kotlin版のKSPコンパイラープラグインは、ビルド時に@Toolと@Paramを読み取り、スキーマをバイトコードへ出力する仕組みです。シグネチャに未対応の型があるか、non-nullableの引数に既定値を宣言すると、Gradleのビルドがすぐ失敗します。
エージェント実行時の扱い
Go版では各goroutineが2KBのスタックで始まり、1インスタンスで数千の同時ストリーミング要求やツール呼び出しを多重化できます。A2AのサーバーハンドラーとOpenTelemetryのトレーシングも内蔵しているのが特徴です。
Java版では実行時にrunnerがRxJavaでエージェントのイベントをリアクティブにストリーミングします。ローカルテスト向けのMaven Dev UIプラグインも同梱されています。
ADKを使い始めるCLIコマンド
コーディングエージェント向けのスキルがプロジェクトの雛形を作り、MCPとA2Aが5言語の実行環境をつなぎます。初回はsetupコマンド、雛形の生成にはscaffoldコマンドを使います。[1]
setupコマンドの初回実行
セットアップのコマンドは次の通りです。
uvx google-agents-cli setup
公式資料からの抜粋:One Agent Development Kit, five languages(Starting agent-first)。対象版・範囲:google-agents-cli(版番号の指定なし)。
上記のコードでは、Google Cloudの認証確認やCLIのインストールを行います。続けてAntigravityやClaude Code、Codexなどのコーディングエージェントに、公式のADKスキルを設定します。
scaffoldコマンドの雛形生成
セットアップの後はscaffoldコマンドで、A2Aのエンドポイントやデプロイ設定を含む動作するプロジェクトを生成できます。デプロイ先はCloud RunやGemini Enterprise Agent Runtime、Google Kubernetes Engine(GKE)です。
# Scaffold an ADK project (use --agent adk for Python or --agent adk_go for Go)
agents-cli scaffold create my-go-agent \
--agent adk_go \
--deployment-target cloud_run \
--region us-central1
公式資料からの抜粋:One Agent Development Kit, five languages(Starting agent-first)。対象版・範囲:agents-cli scaffold(版番号の指定なし)。
上記のコードでは、--agent adk_goでGo版を、--deployment-target cloud_runでCloud Runを指定しています。Python版では--agent adkを指定します。
adk.dev/llms.txtは、5言語のAPIドキュメントをどのコーディングエージェントにも必要に応じて提供するリソースです。PythonとKotlinのADKリポジトリには、エージェントビルダーのスキルも含まれています。
言語版別に見るADKの対応状況
Kotlin版のJVMサーバー向けサポートは、Spring AIブリッジと、試験運用(experimental)のADK 2.0 graph workflowsを含みます。TypeScript版もADK 2.0 Graph Workflowエンジンで動きます。[1]
ADK 2.0のGo版ワークフロー
Go版はPython版に次いでADK 2.0 Graph Workflowのランタイムを提供しました。Go版のworkflow.Newは、エージェントやGoの関数を条件分岐や並列ステップを含む有向グラフにつなぎます。
コード例はworkflow.Newではなくworkflowagent.Newでorder_pipelineを作ります。接続先はStartからtriageNode、fulfillのルートでfulfillNode、そしてnotifyNodeという順です。
Agent Runtimeのデプロイ方法
Gemini Enterprise Agent Runtimeのサポートレベルでは、ADKは「完全な統合」に分類されています。デプロイに使うCLIは、Python版がadk CLI、Go版がadkgo CLIです。[2]
Agent Runtimeは、コンテナ化されてランタイム コントラクトに準拠したエージェントなら、言語やフレームワークを問わずデプロイに対応します。ビルド済みのコンテナイメージはArtifact Registryから、コンテナ化したソースはDockerfileを指定してデプロイできます。
目的に合わせたADKの言語の選び方
Googleは、ADKの全言語版がMCPやA2Aを扱えるため、組織全体で1つの実行環境に統一する必要はないとしています。システムの部品ごとに合う言語を選べます。[1]
ADK各言語版の得意分野
Python版はADKの参照実装で、Google Cloudとの連携やモデルアダプターが最も幅広い言語版です。Googleは、実験と評価はPython版が先行し、Go版は本番のバックエンド、特にCloud RunやGKEでの運用に強みがあるとしています。
TypeScript版はブラウザ用の単体バンドルを備え、WebMCPやChromeのオンデバイスPrompt APIでブラウザのタブ上でも動かせる言語版です。Java版はMavenやGradle、Spring Bootに標準化したチーム向けで、Spring AIやLangChain4jへの公式ブリッジを備えています。
Kotlin版のAndroidでの実行
Kotlin版の.generatedTools()は実行時リフレクションを使わないため、AndroidのR8による縮小後も使えます。この設計により、Android上でエージェントのループ全体をローカルで実行できるのが特徴です。
端末上では、LiteRT-LMでツール呼び出しを、ML Kit(Gemini Nano)でテキスト生成を行います。RoomとAppSearchはローカル状態に、Android AppFunctionsはOSレベルの操作に使われ、いずれもネットワーク接続を必要としません。
目的別に選ぶADKの言語版
編集部による目的別の選び方は、次の通りです。
Python版の評価ツールはadk evalやagents-cli eval runでエージェントの動作経路を正解データセットと照らしてCIで採点します。本番サービスが別の言語で動く場合も、システム全体をエンドツーエンドでテストできます。
出典
- ^ Google Cloud. 「One Agent Development Kit, five languages」. https://cloud.google.com/blog/topics/developers-practitioners/one-agent-development-kit-five-languages, (参照 26-10-13).
- ^ Google Cloud. 「Agent Runtime」. https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/runtime?hl=ja, (参照 26-10-14).
※本記事は公式の一次情報を基に編集しています。内容はAIで確認していますが、誤りや最新情報との差異がある場合は、以下フォームよりご報告ください。
修正・削除・掲載などの依頼はこちら

![Python:型ヒントとdocstring付きの関数をtools=[get_weather]へ/Go:agent.ContextとGetWeatherArgsから都市名入りReportを返す/TypeScript:z.objectでcityを定義したFunctionToolをtoolsへ/Java:@Schema付きcityを受け都市名入りreportのMapを返すgetWeather/Kotlin:@Tool付きsuspend関数をWeatherTools().generatedTools()で登録](https://cdn.shopify.com/s/files/1/0744/9290/3734/files/news-gcja-602d5c7b-l01-desktop-2d6483685dde.webp)

















