GoogleがADKの5言語対応を紹介

GoogleがADKの5言語対応を紹介、A2Aで異なる言語のエージェント間の相互運用が可能

公開:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座

GoogleのAgent Development Kit(ADK)は、PythonやGo、TypeScript、Java、Kotlinの5言語に対応しています。各言語版がそれぞれの実行環境と型の仕組みに合わせて一から作られ、共通の設計とオープンなプロトコルで相互運用できるのが特徴です。[1]

この記事では、ADKの5言語でできることと、プロジェクトの生成手順を整理します。Gemini Enterprise Agent Runtimeへのデプロイ方法も解説します。[1][2]

目次
  1. 5言語に対応したADKでできること
  2. ADKを使い始めるCLIコマンド
  3. 言語版別に見るADKの対応状況
  4. 目的に合わせたADKの言語の選び方

5言語に対応したADKでできること

Googleは、多くのエージェントフレームワークがPythonだけの構成を前提にしているとしています。そのためチームは、専用のPythonサービスか、自社の言語でのオーケストレーションの自作を迫られるという見方です。[1]

全言語共通のプロトコル

ADKでは言語を選んでも設計は固定されず、全言語版がModel Context Protocol(MCP)のクライアントを含みます。MCPサーバーとして公開したカスタムツールを、どの言語版からもすぐに呼び出せるのが特徴です。

ADKのエージェントがつながる先

図1 ADKのエージェントがつながる先

マルチエージェント構成では、ADKはAgent2Agent(A2A)プロトコルに対応しています。A2Aを使うと、エージェントがHTTP経由でリモートのエージェントと通信でき、異なる言語やフレームワークで書いたエージェント同士も相互運用できます。

言語ごとのツール定義

同じ天気ツールを各言語で定義し、設計が実行環境にどう合うかを見ると、5言語の違いが分かります。各言語の例は次の通りです。

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()で登録

Go版を除くコード例は、gemini-3.8-flashを使うweather_agentにツールを登録します。Java版はLlmAgent.builder()で、都市の天気の質問に答える指示を設定します。

ツールのスキーマの扱い

Python版ではデコレーターやスキーマビルダークラスが不要です。通常の関数をtoolsに渡すと、起動時にシグネチャや型ヒント、docstringからツール宣言とPydanticのパラメータスキーマを構築します。

Go版の例はget_weatherの名前と天気取得の説明でgetWeatherをfunctiontool.Newに渡します。functiontool.Newは構造体タグから入出力のスキーマを推論し、実行前にGoのコンパイラーが関数を検証する仕組みです。

ツールのスキーマの扱い

図2 ツールのスキーマの扱い

TypeScript版は、z.object(...)のスキーマからexecuteコールバックの引数の型を推論します。実行時の入力検証やモデルへ送るJSON Schema、executeコールバック内のIDE補完は、1つの情報源から生まれます。

Kotlin版のKSPコンパイラープラグインは、ビルド時に@Toolと@Paramを読み取り、スキーマをバイトコードへ出力する仕組みです。シグネチャに未対応の型があるか、non-nullableの引数に既定値を宣言すると、Gradleのビルドがすぐ失敗します。


Python研修一覧はこちら

目的に合うPython研修を一覧形式から探したい方は、ぜひご利用ください。

Python研修を比較する

Java研修一覧はこちら

目的に合うJava研修を一覧形式から探したい方は、ぜひご利用ください。

Java研修を比較する

PHP研修一覧はこちら

目的に合うPHP研修を一覧形式から探したい方は、ぜひご利用ください。

PHP研修を比較する

新入社員研修

目的に合う新入社員研修を一覧形式から探したい方は、ぜひご利用ください。

新入社員研修を比較する

全ての研修からも探したい方はこちら

エージェント実行時の扱い

Go版では各goroutineが2KBのスタックで始まり、1インスタンスで数千の同時ストリーミング要求やツール呼び出しを多重化できます。A2AのサーバーハンドラーとOpenTelemetryのトレーシングも内蔵しているのが特徴です。

Go版とJava版の実行時とテスト

図3 Go版とJava版の実行時とテスト

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スキルを設定します。

ADKの初回セットアップの流れ

図4 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を指定します。

scaffoldコマンドの例で指定する値

図5 scaffoldコマンドの例で指定する値

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]


Python基礎・実践(Django)

企業・法人向けのPython研修では、基礎から応用まで体系的に学べます。

Python研修の詳細

DX社員研修

企業・法人向けのDX研修では、実務に繋がるリスキリングでITレベルを向上させます。

DX研修の詳細

Javaエンジニア育成研修

企業・法人向けのJavaエンジニア育成研修では、Javaの基礎から応用まで確実に習得できます。

Java研修の詳細

新卒・新入社員向け研修

企業・法人に新入社員・新卒社員に向けたプログラミング研修を提供しています。

新入社員研修の詳細

コードキャンプのIT研修を全て見る

ADK 2.0のGo版ワークフロー

Go版はPython版に次いでADK 2.0 Graph Workflowのランタイムを提供しました。Go版のworkflow.Newは、エージェントやGoの関数を条件分岐や並列ステップを含む有向グラフにつなぎます。

ADK 2.0 Graph WorkflowのGo版

図6 ADK 2.0 Graph WorkflowのGo版

コード例はworkflow.Newではなくworkflowagent.Newでorder_pipelineを作ります。接続先はStartからtriageNode、fulfillのルートでfulfillNode、そしてnotifyNodeという順です。

Go版のorder_pipelineの例

図7 Go版のorder_pipelineの例

Agent Runtimeのデプロイ方法

Gemini Enterprise Agent Runtimeのサポートレベルでは、ADKは「完全な統合」に分類されています。デプロイに使うCLIは、Python版がadk CLI、Go版がadkgo CLIです。[2]

Agent Runtimeは、コンテナ化されてランタイム コントラクトに準拠したエージェントなら、言語やフレームワークを問わずデプロイに対応します。ビルド済みのコンテナイメージはArtifact Registryから、コンテナ化したソースはDockerfileを指定してデプロイできます。

Agent Runtimeへのデプロイ方法

図8 Agent Runtimeへのデプロイ方法

目的に合わせたADKの言語の選び方

Googleは、ADKの全言語版がMCPやA2Aを扱えるため、組織全体で1つの実行環境に統一する必要はないとしています。システムの部品ごとに合う言語を選べます。[1]

ADK各言語版の得意分野

Python版はADKの参照実装で、Google Cloudとの連携やモデルアダプターが最も幅広い言語版です。Googleは、実験と評価はPython版が先行し、Go版は本番のバックエンド、特にCloud RunやGKEでの運用に強みがあるとしています。

4言語版の特徴

図9 4言語版の特徴

TypeScript版はブラウザ用の単体バンドルを備え、WebMCPやChromeのオンデバイスPrompt APIでブラウザのタブ上でも動かせる言語版です。Java版はMavenやGradle、Spring Bootに標準化したチーム向けで、Spring AIやLangChain4jへの公式ブリッジを備えています。

Kotlin版のAndroidでの実行

Kotlin版の.generatedTools()は実行時リフレクションを使わないため、AndroidのR8による縮小後も使えます。この設計により、Android上でエージェントのループ全体をローカルで実行できるのが特徴です。

Kotlin版が端末上で使う技術

図10 Kotlin版が端末上で使う技術

端末上では、LiteRT-LMでツール呼び出しを、ML Kit(Gemini Nano)でテキスト生成を行います。RoomとAppSearchはローカル状態に、Android AppFunctionsはOSレベルの操作に使われ、いずれもネットワーク接続を必要としません。

目的別に選ぶADKの言語版

編集部による目的別の選び方は、次の通りです。

CIで評価:Python版の評価コマンドを確認/本番バックエンド:Cloud RunやGKEならGo版を確認/Maven、Gradle、Spring Bootに標準化したJVM環境:Java版を確認/TypeScript版、Java版、Kotlin版:Agent Runtimeではコンテナ化とコントラクト準拠を確認

Python版の評価ツールはadk evalやagents-cli eval runでエージェントの動作経路を正解データセットと照らしてCIで採点します。本番サービスが別の言語で動く場合も、システム全体をエンドツーエンドでテストできます。

出典

  1. ^ 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).
  2. ^ Google Cloud. 「Agent Runtime」. https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/runtime?hl=ja, (参照 26-10-14).

※本記事は公式の一次情報を基に編集しています。内容はAIで確認していますが、誤りや最新情報との差異がある場合は、以下フォームよりご報告ください。

修正・削除・掲載などの依頼はこちら
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

企業・法人向けのIT・プログラミング・生成AI研修を探す、比較する - IT・プログラミングを知って学べるコネクトメディア CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 3.5日の研修で、年間1,600時間の削減効果が見込まれる。東京きらぼしフィナンシャルグループのDX人材育成事例 - IT・プログラミングを知って学べるコネクトメディア 配属3ヶ月で30%の生産性向上を実現するいよぎんコンピュータサービスの新人研修に迫る - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

What's New

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する