コンテンツに移動
デベロッパー

Agent Development Kit は 5 つの言語に対応

2026年10月21日
https://storage.googleapis.com/gweb-cloudblog-publish/images/one-agent-development-kit-five-languages-h.max-2500x2500.jpg
Karl Weinmeister

Director, Developer Relations

※この投稿は米国時間 2026 年 10 月 14 日に、Google Cloud blog に投稿されたものの抄訳です。

エージェントといえば Python というイメージがありますが、実際は必ずしもそうではありません。現在の先進的なエコシステムでは、エージェントは Cloud Run 上で Go マイクロサービスとして大規模に同時実行されることもあれば、ブラウザタブ内で動作して Chrome のオンデバイス モデルを呼び出すこともあります。しかし、エージェント フレームワークの多くは Python のみのスタックを想定しています。そのため、エージェント ワークロードのためだけに Python サービスをスピンアップしたり、エージェント オーケストレーション ロジックを独自の言語でゼロから構築したりすることが必要になります。

Google の Agent Development Kit(ADK)は、Python、Go、TypeScript、Java、Kotlin をサポートしているため、このようなトレードオフは発生しません。ADK の各バージョンはそれぞれの言語のランタイムと型システムに合わせてゼロから構築されており、かつ、オープン プロトコルによる相互運用性を備えた統合アーキテクチャを共有しています。

共通の基盤

5 つの言語すべてが同じオープン プロトコルをサポートしているため、使用する言語によってアーキテクチャが固定されることはありません。すべての言語の ADK に Model Context Protocol クライアントが含まれており、MCP サーバーとして公開されたカスタムツールを、どの言語からでもすぐに呼び出すことができます。

マルチエージェント システムの場合、ADK は Agent2Agent(A2A)プロトコルをサポートしているため、エージェントは HTTP 経由でリモート エージェントと通信できます。エージェントが異なる言語やフレームワークで記述されていても、A2A を通じて相互運用することができます。

エージェント ファースト開発の第一歩

まず、1 回限りの設定コマンドを実行して Google Cloud 認証を確認し、CLI をインストールします。その後、Antigravity、Claude Code、Codex などのコーディング エージェントでファーストパーティの ADK スキルを設定します。

読み込んでいます...

次に scaffold コマンドを実行して、A2A エンドポイントと Cloud Run、Gemini Enterprise Agent Runtime、または Google Kubernetes Engine(GKE)のデプロイ構成を含む作業プロジェクトを生成します。

読み込んでいます...

ADK for Python リポジトリと ADK for Kotlin リポジトリの両方とも、ソースツリーにはエージェント ビルダーのスキルも含まれています。また、adk.dev/llms.txt リソースにより、5 つの言語すべてのコーディング エージェントでオンデマンドの API ドキュメントを利用できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/one-agent-development-kit-five-languages-a.max-1700x1700.jpg

コーディング エージェント スキルがプロジェクトの基盤を構築し、MCP と A2A が 5 つの言語ランタイムすべてを接続します。

各 ADK の実践的なサンプル

5 つの言語の違いを感じるには、各言語で同じ天気ツールを定義し、その設計とランタイムの連携方法を確認することが最もわかりやすいでしょう。

Python

ADK for Python では、デコレータやスキーマ ビルダー クラスは必要ありません。プレーンな Python 関数を tools パラメータに渡すと、ADK の起動時にシグネチャ、型ヒント、docstring が検査され、ツール宣言と Pydantic パラメータ スキーマが自動的に構築されます。

lang-py
読み込んでいます...

Python は迅速なプロトタイピングが可能であるだけでなく、ADK のリファレンス実装でもあり、最も幅広い Google Cloud の統合(BigQuery、Spanner、Bigtable)とモデル アダプタ(Gemini、Anthropic、OpenAI、LiteLLM)が提供されています。adk eval コマンドまたは agents-cli eval run コマンドと組み合わせて評価ツールを使用することで、継続的インテグレーション(CI)でゴールデン データセットを基準としてエージェントの軌跡をスコアリングし、本番環境サービスが別の言語で実行されている場合でも、システム全体をエンドツーエンドでテストできます。

Go

Python がテストと評価に優れている一方で、ADK for Go は本番環境のバックエンド エンジニアリングに最適です。

Go ツールの関数は、agent.Context 構成と厳密に型指定された入力構造体を受け取ります。functiontool.New 関数は、Go ジェネリクスを使用して、struct タグから入力スキーマと出力スキーマの両方を推測します。

読み込んでいます...

functiontool.New 関数はハンドラのシグネチャに対してジェネリクスを活用しているため、Go コンパイラは関数が想定されるコントラクトと一致することを確認してからバイナリを実行します。

Go は、Python の次に ADK 2.0 Graph Workflow ランタイムが提供された言語でもあります。LLM 推論と併せて決定的な制御フローを使用する必要がある場合は、workflow.New 関数を使用して、エージェントとプレーンな Go 関数を条件付きルーティングと並列ステップを持つ有向グラフに接続します。

読み込んでいます...

Go が真価を発揮するのは、本番環境でCloud Run および GKE と組み合わせて使用する場合です。コンパイルされた Go エージェントは、約 2 MiB の Google distroless 静的ベースイメージにパッケージ化され、言語 VM や重い依存関係ツリーはありません。静的な Go バイナリはコンテナが起動するとすぐにポートにバインドされ、動的言語のモジュール インポートや、JVM サービスの JAR の展開と JIT のウォームアップはスキップされます。

Go の同時実行モデルは、実行されたエージェントのワークロードと優れた適合性を発揮します。各 goroutine は 2 KB のスタックと最小限のスケジューリング オーバーヘッドで開始されるため、単一のインスタンスで数千の同時ストリーミング リクエストとツール呼び出しを多重化できます。ADK for Go には、組み込みの A2A サーバー ハンドラと OpenTelemetry トレースも含まれています。

TypeScript

TypeScript は JavaScript へのコンパイル時に型アノテーションが消去されるため、ランタイム リフレクションは使用できません。代わりに、ADK for TypeScript は Zod と連携します。z.object(...) スキーマを FunctionTool 関数に渡すと、TypeScript はその単一の宣言から execute コールバックのパラメータ型を静的に推測します。

読み込んでいます...

ランタイム入力の検証、モデルに送信される JSON スキーマ、execute コールバック内の IDE 予測入力はすべて、信頼できる唯一の情報源から取得されます。

TypeScript は ADK 2.0 Graph Workflow エンジンでも動作し、スタンドアロンのブラウザ バンドルが提供されています。Node.js サービス以外にも、ページレベルのツール用の WebMCP と Chrome のオンデバイス Prompt API を使用して、ブラウザタブで ADK エージェントを直接実行することができます。

Java

ADK for Java は、Maven、Gradle、Spring Boot で標準化している場合に最適です。メソッド パラメータに @Schema アノテーションを追加し、Fluent API である LlmAgent.builder() を使用してエージェントを組み立てます。

読み込んでいます...

実行時には、ランナーが RxJava を介してエージェント イベントをリアクティブにストリーミングします。ローカルテストと既存の JVM アプリ向けに、ADK for Java には Maven Dev UI プラグインと、Spring AI および LangChain4j 用のファーストパーティ ブリッジが提供されています。

Kotlin

ADK for Kotlin は、ビルド時の安全性を重視しています。Kotlin Symbol Processing(KSP)コンパイラ プラグインが、ビルド時に @Tool アノテーションと @Param アノテーションを読み取り、ツールスキーマをバイトコードに直接出力します。

読み込んでいます...

ツール シグネチャが、サポートされていない型を使用したり、null 非許容パラメータにデフォルト値を宣言したりした場合、本番環境で問題が発生するのではなく、Gradle ビルドがただちに失敗します。.generatedTools() 関数はランタイム リフレクションを使用しないため、Android R8 圧縮後も保持されます。

リフレクションを使用しないこの設計により、エージェント ループ全体を Android 上でローカルに実行できます。また、JVM サーバーをサポートしており、Spring AI ブリッジや試験運用版の ADK 2.0 グラフ ワークフローなどを使用できます。オンデバイスでは、ADK for Kotlin は LiteRT-LM(ツール呼び出し)および ML Kit(Gemini Nano、テキスト生成)と統合できます。さらに、Room および AppSearch と連携してローカル状態を管理したり、Android AppFunctions と連携して OS レベルのアクションを実行したりすることができ、このいずれにもネットワーク接続は必要ありません。

妥協のない選択

ADK は 5 つの言語にネイティブで対応しているため、組織全体で 1 つのランタイムに統一する必要がありません。すべてのバージョンが MCP と A2A に対応しており、システムの各コンポーネントで最適な言語を使用できます。

Google の ADK で、どの言語を使用してエージェントを構築しましたか?皆様がどのようなスタックを使用しているか、X、LinkedIn、Bluesky でぜひ教えてください。

- デベロッパーリレーションズ担当ディレクター、Karl Weinmeister

投稿先