ADK(Agent Development Kit)は、GoogleがApache 2.0ライセンスで公開しているAIエージェント開発用のオープンソースフレームワークです。公式ドキュメントは「信頼性の高いAIエージェントを企業規模で構築・デバッグ・デプロイできる、オープンソースのエージェント開発フレームワーク」と定義しており、Python・TypeScript・Go・Java・Kotlinの5言語で使えます。この記事では2026年11月時点の各言語の最新版を前提に、ADKで作れるエージェントの種類、最小構成の動かし方、他社モデルとの接続、デプロイ先、他のフレームワークとの選び分けを整理します。
「ADK」で検索すると、広告会社のADKホールディングス(旧アサツー ディ・ケイ)や、Windowsのイメージ作成で使うMicrosoftの「Windows ADK(Windows Assessment and Deployment Kit)」も出てきます。どちらも本記事のADKとは別物です。
まとめ:ADKの要点
- ADKはGoogle製のエージェント開発フレームワークで、LLMにツールを持たせたエージェントや、複数エージェントの協調をコードで組み立てる
- 最新版はPython 2.13.0、TypeScript 2.4.0、Go 2.7.1、Java 1.14.0、Kotlin 1.5.0(2026年11月7日時点)。JavaとKotlinは1.x系
- Python版は2.12.0からPython 3.11以上が必要になった。3.10の環境には2.12.0以降を入れられない
- Python版2.13.0ではSequentialAgent・ParallelAgent・LoopAgentが非推奨で、グラフで処理順を書くWorkflowが後継
- OpenAIのモデルは google-adk[openai] で直接、Claudeは anthropic を入れて Claude クラスで、その他はLiteLLM経由で使える
- デプロイ先はAgent Runtime・Cloud Run・GKEが公式の3経路。コンテナで動くのでAWSのBedrock AgentCoreでも動かせる
以下のコード例とCLIの検証対象はPython版ADK 2.13.0です。
ADKの定義と5言語の最新版
ADKは「エージェント開発をソフトウェア開発に近づける」ことを狙ったコードファーストの枠組みです。プロンプトとツールの定義、複数エージェントの組み合わせ、セッション状態の管理、評価、デプロイまでを1つのライブラリとCLIで扱います。GoogleのGeminiとGoogle Cloudに最適化されていますが、モデルにもデプロイ先にも縛りはありません。
言語ごとのパッケージと版(2026年11月時点)
5言語のSDKは別々のリポジトリで開発されており、版番号も揃っていません。各レジストリで確認した最新版は次のとおりです。日付は各レジストリに登録された日(UTC)です。
| 言語 | パッケージ | 最新版 | 登録日 |
|---|---|---|---|
| Python | google-adk(PyPI) | 2.13.0 | 2026-10-23 |
| TypeScript | @google/adk(npm) | 2.4.0 | 2026-10-28 |
| Go | google.golang.org/adk/v2 | v2.7.1 | 2026-11-04 |
| Java | com.google.adk:google-adk | 1.14.0 | 2026-11-02 |
| Kotlin | com.google.adk:google-adk-kotlin-core | 1.5.0 | 2026-10-28 |
Pythonは2.0.0が2026年5月19日にGAとなり、Goは6月30日、TypeScriptは8月21日に2.0.0を出しました。Javaは2026年11月時点でも1.x系ですが、adk-javaのリリースを追うと、1.12.0(10月14日)で実験的機能としてWorkflow型、1.13.0でグラフの実行、1.14.0でユーザー入力待ちの停止と再開が入っています。Python版から移植する際は、版番号ではなく必要なAPIがJava版にあるかを確認してください。KotlinはJava版とは別リポジトリ(google/adk-kotlin)の独立したSDKで、2026年9月7日に1.0.0を出し、JVMとAndroidの両方を対象にしています。Pythonは1.x系の保守版も出ており(直近は2026年8月27日の1.39.1)、既存プロジェクトが1.x系のまま動いている場合があります。
Python版はほぼ毎週のように版が上がります。変更履歴によると、2.12.0(2026年10月13日)ではWorkflowのノード実行前に人の確認を挟む require_confirmation などが入り、2.13.0(10月22日)では12個の実験的機能が安定版に上がりました。2.13.0ではテレメトリの既定がOpenTelemetryのGenAI規約v2に変わり、call_llm のスパンが出なくなる破壊的変更もあります。旧形式のトレースに依存した監視を組んでいる場合は、環境変数 ADK_TELEMETRY_SCHEMA_VERSION_OPT_IN=otel_semconv_1_36 で従来の形式に戻せます。導入時は各レジストリで最新を確認してください(確認元:PyPI、npm、adk-goのリリース、adk-javaのリリース、adk-kotlinのリリース)。
Google Cloudの製品群の中での位置
ADKはライブラリで、実行基盤ではありません。ノーコード寄りの構築画面やマネージドな実行環境はVertex AI Agent Builderを統合した「Gemini Enterprise Agent Platform」側の製品で、ADKで書いたエージェントをその中のAgent Runtimeに載せる、という関係です。製品群の名前と範囲はVertex AI Agent Builderの現在の名称と全体像で整理しています。
ADKのエージェントの種類と役割
「ADK エージェント」で調べる人が最初に迷うのが、どのクラスを使えばよいかです。ADKのエージェントは、モデルが次の行動を決めるものと、コードが処理順を決めるものに分かれます。
LlmAgent:モデルが判断する本体
LlmAgent(短縮名Agent)は、LLMに推論・応答生成・ツール選択をさせる中核のクラスです。instructionで役割を、toolsで呼べる関数を渡します。Pythonでは型ヒントとdocstring付きの関数をそのままtoolsに渡すと、ADKが関数宣言に変換してモデルへ渡し、モデルが関数呼び出し(Function calling)を返すとADKが実行して結果をモデルへ戻します。output_keyを指定すると最終応答がセッション状態に保存され、別のエージェントのinstructionから {draft} のように参照できます。sub_agentsに子エージェントを渡せば、LlmAgent自身が状況に応じて処理を子へ委譲します。adk create で作るひな形のモデルは gemini-3.5-flash です。
ワークフロー型:SequentialAgentからWorkflowへの移行
処理順をコードで固定したい場合、1.x系ではSequentialAgent(順番に実行)、ParallelAgent(並列に実行)、LoopAgent(max_iterationsか停止指示まで繰り返す)を使っていました。Python 2.13.0でも3クラスは残っていますが、インスタンス化するとdeprecated in favor of Workflow and will be removed in a future version という警告が出ます。後継のWorkflowは、ノードを辺(edges)でつないだグラフとして処理順を書くクラスで、条件分岐や合流も同じ書き方で表せます。新規の処理フローはWorkflowを基本にします。ただし2.13.0の警告文自体が「WorkflowはまだLlmAgentのサブエージェントとして使えない」と書いているとおり、LlmAgentのsub_agentsにSequentialAgentを入れている構成は単純に置き換えられません。既存コードは親子構成を確認してから移行してください。グラフ実行エンジンへの移行で何が変わったかはADK 2.0のWorkflowと1.xからの移行手順で扱っています。
カスタムエージェント:BaseAgentの継承
既存のクラスで表せない制御(外部APIの結果で分岐する、特定条件でだけ子を呼ぶなど)は、BaseAgentを継承して実行メソッドを自分で書きます。子エージェントの呼び出し、状態の読み書き、イベントの発行を直接制御できる代わりに、テストも自前になります。2.x系ではBaseAgentがWorkflowのノード(BaseNode)の派生になったため、カスタムエージェントもWorkflowのノードとして組み込めます。
1つのエージェントで済む処理を複数に分けると、呼び出し回数と失敗点が増えます。分けるかどうかの判断基準はシングルエージェントとマルチエージェントの使い分けを参照してください。
Python 2.13.0で始める手順
Python 3.11以上が必要です。PyPIのメタデータ上、2.11.0までは3.10以上でしたが、2.12.0から3.11以上に上がりました。Python 3.10の仮想環境で pip install google-adk==2.13.0 を実行すると、依存関係を解決できずに失敗します。ここではPython 3.11の仮想環境に google-adk 2.13.0 を入れた状態の手順と生成物を示します。
インストールとadk createの生成物
python3.11 -m venv .venv
source .venv/bin/activate
pip install google-adk==2.13.0
adk create my_agent --model gemini-3.5-flash --api_key YOUR_API_KEY
adk create は次の4ファイルを作ります。
my_agent/
__init__.py # from . import agent
agent.py # root_agent の定義
.env # GOOGLE_GENAI_USE_ENTERPRISE=0 と GOOGLE_API_KEY
.gitignore # .env と .adk/ を除外
agent.py には root_agent という名前のAgentが1つ定義されます。CLIはこの変数名を探して起動するので、名前は変えないでください。.env の GOOGLE_GENAI_USE_ENTERPRISE は2.x系で生成される変数名で、0ならGoogle AI StudioのAPIキー、1ならGoogle Cloudのプロジェクト経由でGeminiを呼びます。従来の GOOGLE_GENAI_USE_VERTEXAI も読み込まれますが、両方が異なる値で設定されていると ENTERPRISE 側が優先されます。--model を省くと、作成時に gemini-3.5-flash・gemini-3.8-flash・他のモデル(あとで設定)の3択が対話で表示されます。
adk run・adk webでの動作確認
adk run my_agent # ターミナルで対話
adk run my_agent "こんにちは" # 1回だけ問い合わせ
adk web # http://127.0.0.1:8000 で開発用UI
adk web は、エージェント定義のフォルダが並ぶ親ディレクトリで実行します。ブラウザ上でイベントの流れ、ツール呼び出しの引数と結果、セッション状態を確認できます。公式ドキュメントは開発用UIを本番に使わないよう明記しており、本番は後述のデプロイ経路か adk api_server を使います。
コーディングエージェントに任せる経路:Agents CLI
2.13.0の adk create は、作成後の案内に uvx google-agents-cli setup を表示します。Agents CLIのクイックスタートによると、これはAntigravity・Claude Code・Codexなどのコーディングエージェントに、ADKエージェントの構築・評価・デプロイを担わせるための道具一式で、agents-cli コマンド、ADKのPythonパッケージ、コーディングエージェント用のADKスキルをまとめて入れます。前提はPython 3.11以上、uv、Node.js、コーディングエージェントで、Google Cloudへのデプロイまで任せるならGoogle Cloud CLIとTerraformも要ります。ADKの書き方を自分で覚える段階では、上の adk create から始めるほうが生成物を追いやすくなります。
ツールと2段の処理をWorkflowでつなぐ例
料金を返すツールを持つwriterと、writerの出力を読むreviewerを順に実行する例です。以下をmy_agentのagent.pyに保存し、親ディレクトリからadk run my_agentで起動します。get_priceは動作説明用のダミーで、どのプランにも20米ドルを返します。
from google.adk.agents import LlmAgent
from google.adk.workflow import Workflow, START
def get_price(plan: str) -> dict:
"""Return price of a plan."""
return {"plan": plan, "usd": 20}
writer = LlmAgent(
name="writer",
model="gemini-3.5-flash",
instruction="プランの料金をget_priceで調べ、紹介文を書く",
tools=[get_price],
output_key="draft",
)
reviewer = LlmAgent(
name="reviewer",
model="gemini-3.5-flash",
instruction="次の紹介文の誤りを指摘する: {draft}",
)
root_agent = Workflow(name="pipeline", edges=[(START, writer, reviewer)])
edges の (START, writer, reviewer) は「開始→writer→reviewer」の一本道を表します。2.13.0上でモデルを固定応答のスタブに差し替えて実行すると、イベントは writer の関数呼び出し、関数の結果、writer の本文、reviewer の本文の順に流れ、セッション状態には draft が残りました。同じ2体を SequentialAgent(sub_agents=[writer, reviewer]) で組んでも同じ順で動きますが、前述の非推奨警告が出ます。
Gemini以外のモデル・MCP・A2Aへの接続
ADKはGemini専用ではありません。ただしPython 2.x系は必須依存を絞っており(2.13.0の必須依存は24個)、他社モデル・MCP・A2Aはどれも追加の指定が要ります。基本パッケージだけでは、以下のimportは失敗します。
| 用途 | 主なクラス | 追加で入れるもの |
|---|---|---|
| OpenAIのモデル | OpenAILlm | google-adk[openai] |
| Claude | Claude | anthropic |
| その他の他社・ローカルモデル | LiteLlm | google-adk[extensions] |
| MCPサーバーのツール | McpToolset | google-adk[mcp] |
| A2Aでの公開・呼び出し | to_a2a / RemoteA2aAgent | google-adk[a2a] |
OpenAIのモデルは、以前はLiteLLM経由で使うのが一般的でしたが、2.10.0で google-adk[openai] が追加され、google.adk.integrations.openai の OpenAILlm(Chat Completions)と OpenAIResponsesLlm(Responses API)で直接呼べるようになりました。2.13.0で OpenAILlm(model="gpt-5.6", api_key="...") を作ると、追加パッケージ無しの環境では pip install "google-adk[openai]" を促すエラーになります。ClaudeはAnthropicのSDK(anthropic)を入れて google.adk.models.anthropic_llm の Claude クラスを使います。Ollama・Mistralなどは引き続きLiteLlmで model=LiteLlm(model="ollama_chat/gemma3") のように指定し、LiteLlmは google-adk[extensions] に含まれる litellm を使います。
MCPはADKがクライアントになってMCPサーバーのツールを使う構成と、ADKのツールをMCPサーバーとして公開する構成の両方があります。A2Aは別プロセスや別サービスで動くエージェント同士をつなぐプロトコルで、ADK側では to_a2a でエージェントを公開し、RemoteA2aAgent で呼び出します。adk web、adk deploy cloud_run、adk deploy docker には公開用の --a2a オプションもあります。A2Aの仕組みはA2A(Agent2Agent)プロトコルの仕組みと実装手順で解説しています。
デプロイ先の選び方
Python版ADKは、adk api_serverなどでFastAPIベースのAPIサーバーとして公開できます。コンテナ化して他の環境へ配置する場合は、配置先の実行仕様に合わせて認証やエントリポイントを設定します。公式が手順を用意しているのは次の3経路で、CLIの adk deploy に対応するサブコマンドがあります。
Google Cloudの3経路とローカルのDocker
| デプロイ先 | コマンド | 向く場面 |
|---|---|---|
| Agent Runtime | adk deploy agent_engine | セッション管理込みで任せたい |
| Cloud Run | adk deploy cloud_run | 既存のWeb基盤に合わせたい |
| GKE | adk deploy gke | クラスタを細かく制御したい |
| ローカルDocker | adk deploy docker | 手元で本番に近い形を試す |
Agent Runtimeは旧称Vertex AI Agent Engineで、CLIのサブコマンド名に旧称が残っています。2.12.0からは、Agent Runtimeへのデプロイで専用のサービスアカウントを指定できるようになりました。Cloud Runは adk deploy cloud_run のほか gcloud run deploy でも出せ、GKEはKubernetesのマニフェストを自分で書く方式も選べます。Agent Runtimeと他社のマネージド基盤との料金・上限の比較はAgentCore・Google Agent Runtime・Foundryの比較にまとめています。
AWSでの実行:Bedrock AgentCoreとの接続
ADKはAWSの製品ではありませんが、AWSで動かすことはできます。Amazon Bedrock AgentCoreの開発者ガイドは、他社フレームワークの例としてStrands Agents、LangGraphと並べてGoogle ADKを載せており、ADKのRunnerを BedrockAgentCoreApp のエントリポイントから呼ぶサンプルを公開しています。サンプルのモデルはGeminiのAPIキーを使う構成なので、AWS内で完結させたい場合はLiteLLM経由でBedrockのモデルに差し替える設計になります。AWS自身が出しているエージェント開発SDKはStrands Agentsで、AWSのサービスと深く連携させるならそちらが第一候補です。
ADKを選ぶ場面・見送る場面
ADKが向くのは、GeminiやGoogle Cloudを使う前提があり、複数エージェントの協調と評価をフレームワーク側に任せたい場合です。adk eval による評価セットの実行、開発用UIでのイベント確認、Agent Runtimeへのデプロイまでを1つのCLI(adk eval・adk web・adk deploy)で扱えます。
LangGraph・CrewAI・Genkitなどとの違い
同じ用途のフレームワークと比べると、ADKの特徴は対応言語の多さと、Google Cloudへのデプロイ経路がCLIに組み込まれている点です。各レジストリで2026年11月に確認した提供元と言語は次のとおりです。
| フレームワーク | 提供元 | 言語 | 第一候補になる場面 |
|---|---|---|---|
| ADK | Python・TS・Go・Java・Kotlin | Gemini・Google Cloud前提 | |
| LangGraph | LangChain | Python・TS | 状態遷移を厳密に管理 |
| CrewAI | CrewAI | Python | 役割分担型のチームを短く書く |
| OpenAI Agents SDK | OpenAI | Python・TS | OpenAIのモデル中心 |
| Strands Agents | AWS | Python・TS | AWS前提 |
| Genkit | Google(Firebase) | TS・Go・Python | アプリにAI機能を組み込む |
同じGoogle製のGenkitは、Webやモバイルのアプリの中に生成AIの機能を組み込むためのフレームワークで、複数エージェントの協調を主目的にするADKとは役割が違います。Go版の使い方はGenkit Goのフロー・構造化出力の実測で扱っています。
ADKを見送る場面
見送るべきなのは次の2つの場面です。1つは、JavaでWorkflowを本番の中核に据えたい場合です。Java版のWorkflowは1.12.0で実験的機能として入ったばかりで、APIが変わる前提で使うことになります。安定版のAPIだけで組みたいなら、Workflowを使わない構成にするか、Python版を選びます。もう1つは、状態遷移をグラフで厳密に管理する実装がすでにLangGraphで動いている場合です。ADKのWorkflowも同じ領域を扱いますが、既存のLangGraph実装が要件を満たし、ADK固有の機能を必要としないなら、状態管理・ツール連携・評価の移植と再検証に見合う利点は小さいと判断します。採用前に、必要なモデル機能への対応状況をSDKごとに確認してください。主要8種の比較と動作コードはAIエージェントフレームワークの比較と選定基準にあります。ADKでの業務エージェントの設計から運用までを外部に任せたい場合は、当社のAIエージェント開発でも相談を受けています。
ADKが提供する機能(長い会話の要約圧縮、停止と再開、ツール実行前の人間による確認)の使い方はADKのコンテキスト圧縮と停止・再開の使い方で解説しています。
よくある質問
ADKは無料で使えますか?
ADK自体はApache 2.0ライセンスのオープンソースで、ライセンス費用はかかりません。費用が発生するのは、呼び出すモデルのAPI利用料と、Agent RuntimeやCloud Runなどの実行基盤の料金です。
ADKのワークフローエージェントはまだ使えますか?
Python 2.13.0ではSequentialAgent・ParallelAgent・LoopAgentはまだ動きますが、非推奨の警告が出て、将来の版で削除予定です。新規の処理フローはWorkflowを基本にしてください。ただしWorkflowはまだLlmAgentのsub_agentsに指定できないため、その構成では従来クラスの利用も必要です。
ADKはGemini以外のモデルでも動きますか?
動きます。OpenAIのモデルは google-adk[openai] を入れて OpenAILlm で、Claudeは anthropic を入れて Claude クラスで、OllamaなどのローカルモデルはLiteLlmで指定できます。
ADKはPython 3.10で使えますか?
2.11.0までは使えますが、2.12.0以降はPython 3.11以上が必要です。新しく始めるならPython 3.11以上の環境を用意してください。
ADKはAWSでも使えますか?
使えます。Amazon Bedrock AgentCoreの開発者ガイドにGoogle ADKのサンプルがあり、コンテナとして動かすことも可能です。ただしAWS純正のSDKはStrands Agentsで、ADKはGoogleの製品です。