Agent Development Kit(ADK)とは?複雑なAIエージェントをシンプルに作るGoogleの新フレームワーク

Agent Development Kit(ADK)とは?複雑なAIエージェントをシンプルに作るGoogleの新フレームワーク

AIエージェントのPoCは通ったものの、本番環境への移行で壁にぶつかる——開発・評価・デプロイそれぞれに別のツールが必要で、品質基準も属人的になりがちです。

Googleが公開したAgent Development Kit(ADK)は、こうした課題に対して、エージェントの構築から評価・デプロイまでを一つのフレームワーク内で一貫して進められるオープンソースの開発基盤です。

本記事では、ADKの基本概念からコード例・他フレームワークとの比較・実際の活用シーンまでを、公式ドキュメントに基づいて解説します。

Agent Development Kit(ADK)とは

ADKは、2025年4月のGoogle Cloud Next で発表されたオープンソースフレームワークです。公式サイトでは「a flexible and modular framework for developing and deploying AI agents」、GitHubリポジトリでは「An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control」と紹介されています。

「コードファースト」を設計思想としており、エージェントの定義・ツールの登録・ワークフローの構成をすべてコードで記述します。ノーコード/ローコードツールとは異なり、ソフトウェア開発の標準的なプラクティス(バージョン管理、テスト、CI/CD)をそのまま適用できる点が特徴です。

対応言語は現時点ではPython実装が先行しており、TypeScript、Go、Javaでの開発にも対応しています。

ADKの主要なコンポーネント

ADKは複数のコンポーネントで構成されていますが、中でも基本となるのは「エージェント」「ツール」「セッション&メモリ」の3つです。

エージェント(Agent) は、タスクを実行する基本単位です。LLMを使って自律的に判断する「LLMエージェント」、決まった順序や条件で処理を制御する「ワークフローエージェント」(SequentialAgent、ParallelAgent、LoopAgent)、独自ロジックを実装する「カスタムエージェント」の3種類があります。

ツール(Tool) は、エージェントに外部機能を提供する仕組みです。Google検索やコード実行といった組み込みツールのほか、通常のPython関数をそのままツールとして登録できます。また、MCP(Model Context Protocol:外部のツールやデータソースを標準的な方法で接続するためのプロトコル)サーバーとの接続にも対応しています。

セッション&メモリは、会話の文脈を管理する仕組みです。セッション(Session)が1つの会話スレッドの状態と履歴を保持し、メモリ(Memory)がセッションをまたいだ長期的な記憶を担います。

このほか、エージェントの実行を管理するRunner、通信の基本単位であるEvent、挙動をカスタマイズするCallbacks、ファイルを管理するArtifactsといったコンポーネントもあります。詳細は公式ドキュメント(Technical Overview)を参照してください。

LangChainやCrewAIとの違いはどこか

エージェント開発フレームワークとしては、LangChainやCrewAIも広く使われています。それぞれ強みが異なるため、自社の技術スタックや要件に合わせて選定することが重要です。

ADKは、Google CloudやGeminiとの公式連携が充実しており、エージェントの構築・評価(adk eval)・デプロイ(adk deploy)までを一貫したCLIで管理しやすい設計です。コードファーストのアプローチで、ソフトウェアエンジニアリングの文脈に馴染みやすいフレームワークです。

LangChainは、対応するLLMやツールの数が非常に多く、エコシステムの広さが強みです。さまざまなモデルやデータソースを組み合わせたいケースに向いています。

CrewAIは、エージェントに「役割」を割り当てるロールベースの設計が特徴で、マルチエージェント構成を直感的に定義できます。

ADKはLangChainのツールを取り込んで利用することも可能なため、既存のLangChain資産を活かしながらADKへ段階的に移行するアプローチもとれます。Google Cloudを中心とした技術スタックで開発している場合や、評価・デプロイまで一貫した開発体験を求める場合にADKが適しています。

ADKの主要な機能と特徴

ADKには、マルチエージェント構成への対応、GeminiをはじめとするLLMとの連携、Google Cloudとの統合という3つの特徴があります。

マルチエージェント構成に対応した柔軟な設計

ADKでは複数のエージェントを階層的に組み合わせることができます。親エージェント(ルートエージェント)がタスク全体を管理し、専門化された子エージェント(サブエージェント)に処理を委譲する構成が可能です。

エージェント間の実行制御には、順次処理(SequentialAgent)、並列処理(ParallelAgent)、ループ処理(LoopAgent)の3つのワークフローエージェントが用意されています。

たとえば、カスタマーサポートの自動化では、問い合わせ内容を分類するエージェント、回答を生成するエージェント、エスカレーション判断を行うエージェントをSequentialAgentで順次実行し、各ステップを独立してテスト・改善できる構成が考えられます。

Geminiとの連携で何が変わるのか

ADKはGeminiモデルとの連携を前提に設計されており、テキストに加えて画像や音声などを扱うマルチモーダルなエージェントを構築できます。双方向リアルタイムストリーミング(Gemini Live API Toolkit)にも対応しており、音声対話型のエージェントも実現可能です。

Geminiはfunction callingを得意とするモデルファミリーであり、エージェントがツールを適切に選択する精度の面で恩恵があります。

一方で、ADKはGeminiに限定されたフレームワークではありません。AnthropicのClaudeはADKから直接利用できるほか、LiteLLM経由でOpenAI等の外部モデルにも対応しています。OllamaやvLLMを使ったローカルモデルの実行も可能です。詳細は公式のモデル一覧ページを参照してください。

Google Cloudとのシームレスな統合

ADKはGoogle CloudのVertex AI Agent Engineと統合されており、ローカルで開発したエージェントをそのままクラウド環境にデプロイできます。デプロイ先としてはCloud RunやGKEも選択可能で、CLIから adk deploy cloud_run のようにワンステップでデプロイを実行できます。

インフラの構築や管理をGoogle Cloud側に委ねることで、開発者はエージェントのロジック設計に集中できます。また、ADKにはBigQuery、Spanner、Pub/Subをはじめとした Google Cloudサービスとの公式インテグレーションが多数用意されており(2026年3月時点で50件以上、最新の一覧は公式カタログを参照)、企業の既存システムにエージェントを組み込む際の連携工数を減らしやすくなっています。

PoC段階ではローカル環境で開発・検証し、準備ができたらCloud RunやAgent Engineへデプロイするという段階的な移行が可能です。

ADKの環境構築と初期設定手順

ADKはPython環境さえ整っていれば、数ステップで動作確認まで完了できます。ここではローカル環境でADKエージェントを起動するまでの手順を解説します。

Pythonの仮想環境とADKのインストール方法

まずPython 3.10以上がインストールされていることを確認します。次に仮想環境を作成し、ADKをインストールします。

python -m venv .venv
source .venv/bin/activate  # Windowsの場合: .venv\Scripts\activate
pip install google-adk

インストール完了後、以下のコマンドでバージョンを確認できます。

adk --version

APIキーの設定と動作確認の進め方

ADKでGeminiを利用するには、Google AI StudioでAPIキーを取得する必要があります。取得したAPIキーはプロジェクトのルートディレクトリに.envファイルを作成して設定します。

GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_api_key_here

Google Cloud環境を使用する場合は、Vertex AI経由での認証に切り替えることも可能です。その場合はGOOGLE_GENAI_USE_VERTEXAIをTRUEに設定し、GOOGLE_CLOUD_PROJECTとGOOGLE_CLOUD_LOCATIONを指定した上で、Application Default Credentialsで認証します。

ローカル環境でエージェントを起動するまでの流れ

エージェントのコードを配置したら、以下のコマンドでADKの開発用UIを起動します。

adk web .

ブラウザでhttp://localhost:8000にアクセスすると、チャット形式でエージェントの動作を確認できるWeb UIが表示されます。会話ログやツールの呼び出し状況をリアルタイムで確認できるため、エージェントの挙動を把握しやすくなっています。コマンドラインで実行したい場合はadk runコマンドも利用できます。

ADKで実装するエージェント作成実践例

Function callingとは、LLMにツールの仕様(名前・引数・説明)を事前に提供することで、LLMが「どのツールを、どの引数で呼び出すか」を自動的に判断し、アプリケーション側でツールを実行して結果を統合した最終回答を生成する仕組みです。

ADKでは、このFunction callingの実装が非常に簡潔です。通常のPython関数を定義してエージェントに渡すだけで、ADKが自動的にツールとして登録します。ここでは天気情報と服装アドバイスを返すエージェントを題材に、ADKでのFunction callingの実装を見ていきます。

天気エージェントで学ぶエージェントの基本構成

今回構築する天気エージェントのディレクトリ構成は以下の通りです。

weather-function-calling/
├── .env
└── weather_agent/
    ├── __init__.py
    ├── agent.py
    └── tools.py

__init__.py には from . import agent と記述します(ADKがエージェントを自動検出するために必要です)。agent.pyにエージェントの定義、tools.pyにツールの実装、.envにAPIキーなどの環境変数を記述します。

エージェントの本体となるagent.pyの実装は以下の通りです。

from google.adk.agents import Agent
from .tools import get_weather

root_agent = Agent(
    model="gemini-3-flash-preview",
    name="weather_agent",
    description="天気情報と服装アドバイスを提供するエージェント",
    instruction="""あなたは天気・服装アドバイザーです。
    (中略)
    簡潔で正確な天気情報と実用的な服装アドバイスを提供してください。""",
    tools=[get_weather]
)

Agentクラスに使用するモデル・エージェント名・指示(instruction)・ツール一覧を渡すだけでエージェントが定義できます。ツールとして渡したPython関数は、ADKが自動的にFunctionToolとしてラップします。確認ダイアログの表示(require_confirmation)など追加設定が必要な場合を除き、明示的なラップ処理は不要です。

Function callingでツールを自動選択させる仕組み

ツールの実装はtools.pyに記述します。ADKでは通常のPython関数に型ヒントとdocstringを付与するだけで、そのままツールとして登録できます。

from google.adk.tools import ToolContext

def get_weather(city: str, day: str, tool_context: ToolContext = None):
    """指定された都市の天気情報を取得します。

    Args:
        city: 天気情報を取得したい都市名
        day: 対象日 - "today"(今日)または "tomorrow"(明日)
    """
    # Open-Meteo APIで天気情報を取得する処理
    ...

Function Toolとして登録する関数には型ヒントが必須です。ADKは関数のシグネチャからJSON Schemaを自動生成し、LLMがツールの引数を推論する際の情報として利用します。docstring(Google形式推奨)は、LLMがツールの用途を正しく判断するために重要です。

LLMはユーザーの入力から「どのツールを・どの引数で呼び出すか」を自動で判断します。「東京の今日の天気は?」と入力した場合、LLMはget_weatherを選択し、引数としてcity: “Tokyo”・day: “today”を推論して実行します。ツールの呼び出し判断はすべてLLM側が行い、実際の外部API通信はアプリケーション側が担う点がFunction callingの核心です。

イベントログでFunction callingの動作を確認する方法

ADKのWeb UIでは、Function callingの一連の処理をイベントログとして可視化できます。「東京の今日の天気は?」と入力した場合、以下の順序でイベントが記録されます。

まずFunction Callイベントで LLMがget_weatherを選択し、推論した引数(city: “Tokyo”・day: “today”)が記録されます。次にFunction Responseイベントで外部APIから返却された天気データがJSON形式で記録されます。最後にLLMがそのJSON結果をもとに自然文の最終応答を生成します。

{
  "status": "success",
  "city": "Tokyo",
  "date": "3月24日(今日)",
  "weather": "曇り",
  "temperature": 15.2,
  "max_temp": 18.5,
  "min_temp": 10.3,
  "precipitation": 4
}

対象外の入力に対しては、ツールを呼び出さずにモデルが直接応答するよう設計することもできます。たとえば、対応対象を地球上の都市に限定した天気エージェントであれば、対象外の問い合わせに対して制約を案内する応答を返す実装が可能です。

このようにLLMがツールを使うかどうかの判断自体も自律的に行っている点が、Function callingの重要な特徴です。

ADKの活用シーンと実用例

ADKエージェントを実際のビジネス課題にどう適用できるかを、具体的なシナリオで見ていきます。

業務自動化への応用でできること

ADKエージェントは、これまで人手で対応していた定型業務を自律的に処理するシステムとして活用できます。

たとえば社内問い合わせ対応の自動化では、SequentialAgentを使って「問い合わせ内容の分類 → 回答候補の生成 → 回答品質のチェック」を順次実行する構成が考えられます。各ステップが独立したエージェントとして定義されるため、分類精度だけを改善したい場合は該当エージェントのinstructionやツールだけを変更すればよく、他のステップに影響を与えません。

前述の公式インテグレーション一覧には、BigQueryやSpannerといったデータベース連携のほか、GitHub、Stripe、Notion、Asanaなどの外部SaaSとの接続もMCPツールとして含まれており、接続のための実装コストを抑えやすくなっています。

データ分析エージェントの構築シナリオ

ADKエージェントはデータ分析の領域でも活用できます。

たとえばBigQueryと連携したデータ分析エージェントでは、自然言語での問い合わせをSQLに変換してデータを取得し、結果をグラフとして可視化するまでの一連の処理を自動化できます。ADKにはBigQuery公式インテグレーションが組み込まれており、接続設定をコードで書く手間を省けます。

ルートエージェントがタスク全体を管理し、SQL実行・グラフ描画・レポート生成といった専門処理をそれぞれのサブエージェントに委譲する構成により、データ分析ワークフローをエージェントだけで完結させることが可能です。

企業導入事例と最新機能から学ぶ活用のヒント

ADKは2025年4月のGoogle Cloud Nextで公開され、公開以降も継続的に機能が拡充されています。Google Cloudの公式発信では、KYC(本人確認)ワークフローのような業務シナリオへの活用例が紹介されています。

2026年3月時点の注目すべき最新機能として、以下が挙げられます。

Skills(スキル)は、エージェントが必要なときだけ読み込むモジュラーな機能単位です。指示・リソース・アセットをSKILL.mdファイルにまとめて定義し、SkillToolsetとしてエージェントに登録します。コンテキストウィンドウへの影響を最小限に抑えつつ、エージェントの機能を拡張できます(2026年3月時点ではExperimentalステータス)。詳細は公式ドキュメント(Skills)を参照してください。

A2A(Agent-to-Agent)プロトコルは、異なるフレームワークや組織間のエージェント同士が通信するための標準プロトコルです。ADKにネイティブ統合されており、自社のADKエージェントを外部に公開したり、外部のエージェントをサブエージェントとして利用したりできます。詳細は公式ドキュメント(A2A)を参照してください。

これらの事例と機能に共通するヒントは、最初から複雑なマルチエージェント構成を目指すのではなく、単一エージェントで小さく始めてツールを追加しながら段階的に拡張していく点です。ADKのモジュール構造はこの段階的な開発アプローチに適しています。

まとめ

本記事ではAgent Development Kit(ADK)について、基本概念からコンポーネント構成・コード例・他フレームワークとの比較・活用シーンまでを解説しました。

ADKの強みは、エージェントの構築・評価・デプロイを単一フレームワーク内で一貫して進められる点にあります。コードファーストの設計により、ソフトウェア開発の標準的なプラクティスをそのまま適用でき、Gemini向けに最適化されつつもClaudeやOpenAIなど他のLLMも利用可能な柔軟性を備えています。

Google Cloudを技術基盤としている組織であれば、Vertex AI Agent EngineやCloud Runへのワンステップデプロイ、BigQuery・Spannerなどとの公式インテグレーション、Geminiとのネイティブ連携といった恩恵をフルに受けられます。エージェント開発フレームワークの選定で迷っているなら、まずADKを第一候補に据えてよいでしょう。

SkillsやA2Aプロトコルといった機能の拡充も進んでおり、単一エージェントから始めて段階的にマルチエージェント構成へ拡張していくアプローチにも対応しやすい設計です。まずは公式ドキュメントに目を通し、Google AI StudioでAPIキーを取得して、手元の環境でエージェントを動かしてみてください。

※ 本記事の内容は2026年3月時点の情報に基づいています。ADKは活発に開発が進んでいるプロジェクトのため、機能・対応言語・インテグレーション数などの最新状況は公式ドキュメントをご確認ください。

渡辺 琉聖

渡辺 琉聖の画像

クラウドエース株式会社 第3開発部所属。2023年に入社し、主にGoogle Cloudのインフラ設計・構築からテクニカルサポートまでを担当。「Google Cloud Partner Top Engineer 2026」や「All Certification Holders 2025」にも選出。