AI エージェント開発の分野を追いかけているなら、LangChain、CrewAI、AutoGen といった名前を必ず耳にしたことがあるでしょう。しかし、2025 年に Google がオープンソース化した ADK(Agent Development Kit) がゲームのルールを変えようとしています——MCP プロトコルのネイティブサポート、グラフ実行エンジン、Gemini との深い統合を 1 つのフレームワークで実現した最初の存在です。
これは表面的な機能紹介ではありません。実践的な深層レビューです。MCP ツール統合、ワークフローオーケストレーション、動的ルーティングという 3 つの中核機能に焦点を当て、実際のコードで Google ADK が既存のエージェントフレームワークを本当に置き換えられるのかを検証します。
1. Google ADK とは?なぜ注目すべきか?
Google ADK 2.0 は、Google がオープンソース化したコードファーストの AI エージェント開発フレームワークで、純粋な Python でエージェントの動作、ツール呼び出し、マルチエージェントオーケストレーションロジックを定義します。
LangChain / CrewAI / AutoGen との本質的な違い
| 観点 | Google ADK 2.0 | LangChain | CrewAI | AutoGen |
|---|---|---|---|---|
| 設計思想 | コードファースト + グラフ実行エンジン | チェーン呼び出し + YAML 設定 | ロールプレイ + タスク委任 | マルチエージェント対話 |
| MCP サポート | ✅ ネイティブ内蔵 | ⚠️ サードパーティプラグインが必要 | ❌ なし | ❌ なし |
| ワークフローオーケストレーション | ✅ グラフ構造(順次/並列/ループ/条件分岐) | ⚠️ LangGraph を別途使用 | ⚠️ 順次実行が中心 | ⚠️ 対話駆動 |
| モデルバインディング | Gemini ファースト、任意のモデルをサポート | モデル非依存 | モデル非依存 | モデル非依存 |
| Google エコシステム | ✅ Vertex AI / Cloud Run / BigQuery ネイティブ | ❌ | ❌ | ❌ |
| 型安全性 | ✅ 完全な Python 型ヒント | ⚠️ 部分的 | ⚠️ 弱い | ⚠️ 弱い |
| 学習曲線 | 中程度(グラフ実行モデルの理解が必要) | 急峻 | 低い | 中程度 |
一言で言えば:すでに Gemini を主力モデルと決めている、あるいは MCP プロトコルで外部ツールと接続する必要があるなら、Google ADK が現在最もスムーズな選択です。モデル非依存の柔軟性が必要なら、LangChain の方がまだ成熟した選択肢です。
2. コア機能の深層解析
2.1 MCP プロトコルのネイティブサポート——糊コードとおさらば
MCP(Model Context Protocol)は Anthropic が提唱したオープンプロトコルで、AI モデルが標準化された方法で外部ツールやデータソースを呼び出せるようにします。Google ADK は、ネイティブ内蔵の MCP クライアントを持つ最初の主流フレームワークです。
従来の方法(LangChain など)では、自分で MCP クライアントを書き、プロトコルのハンドシェイクやシリアライズ/デシリアライズを処理する必要があります:
# ❌ 従来の方法:MCP の手動統合(疑似コード)
from mcp_client import MCPClient
client = MCPClient("http://localhost:3000")
tools = await client.list_tools()
# 各 MCP ツールを手動で LangChain Tool としてラップ
langchain_tools = []
for tool in tools:
langchain_tools.append(
StructuredTool.from_function(
func=lambda **kwargs: client.call_tool(tool.name, kwargs),
name=tool.name,
description=tool.description,
)
)
Google ADK の方法——1 行のコードで任意の MCP サーバーに接続:
from google.adk.tools.mcp_tools import MCPToolset
from google.adk import Agent
# ✅ ADK の方法:1 行で MCP サーバーに接続
mcp_tools = MCPToolset.from_url("http://localhost:3000")
agent = Agent(
name="mcp_agent",
model="gemini-2.5-flash",
instruction="あなたは外部ツールを使用できるアシスタントです。",
tools=[mcp_tools],
)
これは、コミュニティにある数千の既存 MCP サーバー——ファイルシステム、データベース、API ゲートウェイ、ブラウザ自動化——に、アダプターコードを書くことなく直接接続できることを意味します。
2.2 ワークフローオーケストレーション——グラフ実行エンジン
ADK 2.0 の最も強力な機能は Workflow クラス——グラフ構造に基づく実行エンジンで、4 つのオーケストレーションモードをサポートします:
順次実行
from google.adk import Agent, Workflow
# 3 つの専門エージェント
researcher = Agent(
name="researcher",
model="gemini-2.5-flash",
instruction="ユーザーの質問に関する情報を収集し、重要な事実を返してください。",
)
writer = Agent(
name="writer",
model="gemini-2.5-flash",
instruction="提供された事実に基づいて簡潔な記事を書いてください。",
)
reviewer = Agent(
name="reviewer",
model="gemini-2.5-flash",
instruction="記事の品質をレビューし、誤りを修正し、表現を最適化してください。",
)
# 順次パイプライン:調査 → 執筆 → レビュー
pipeline = Workflow(
name="content_pipeline",
edges=[("START", researcher, writer, reviewer)],
)
並列実行(Fan-out / Fan-in)
# 複数の次元を並列に分析し、最後に集約
sentiment_agent = Agent(name="sentiment", instruction="感情傾向を分析してください。")
topic_agent = Agent(name="topic", instruction="中心となるトピックを抽出してください。")
entity_agent = Agent(name="entity", instruction="重要なエンティティを識別してください。")
summary_agent = Agent(name="summary", instruction="上記の分析結果を集約してください。")
parallel_workflow = Workflow(
name="parallel_analysis",
edges=[
("START", sentiment_agent, topic_agent, entity_agent), # ファンアウト
(sentiment_agent, topic_agent, entity_agent, summary_agent), # ファンイン
],
)
条件ルーティング
from google.adk import Agent, Workflow
def route_by_category(ctx):
"""分類結果に基づいて異なる処理エージェントにルーティング"""
category = ctx.state.get("category", "general")
if category == "technical":
return "tech_expert"
elif category == "billing":
return "billing_expert"
return "general_expert"
tech = Agent(name="tech_expert", instruction="技術的な問題を処理します。")
billing = Agent(name="billing_expert", instruction="請求問題を処理します。")
general = Agent(name="general_expert", instruction="一般的な問題を処理します。")
routed_workflow = Workflow(
name="smart_router",
edges=[
("START", "classifier"), # まず分類
("classifier", route_by_category, [tech, billing, general]),
],
)
ループ実行
# 反復改善:生成 → 評価 → 不満なら再生成
generator = Agent(name="generator", instruction="回答を生成してください。")
evaluator = Agent(
name="evaluator",
instruction="回答の品質を評価し、1-10 でスコアリングしてください。7 点未満なら再生成を要求します。",
)
loop_workflow = Workflow(
name="iterative_refinement",
edges=[
("START", generator, evaluator),
(evaluator, "retry_check", [generator, "END"]), # 条件ループ
],
max_iterations=3, # 最大 3 回反復
)
2.3 LLM 駆動の動的ルーティング
ハードコードされた条件ルーティングに加え、ADK は LLM 自身に次のエージェント呼び出しを決定させることもサポートしています:
from google.adk import Agent
# コーディネーターエージェントが動的に委任先を決定
coordinator = Agent(
name="coordinator",
model="gemini-2.5-flash",
instruction="""あなたはタスクコーディネーターです。ユーザーのニーズに基づいて、適切な専門家にタスクを委任してください:
- データ分析の質問 → data_analyst
- コード関連の質問 → code_expert
- ドキュメント作成のニーズ → writer
委任先とその理由を直接出力してください。""",
sub_agents=[data_analyst, code_expert, writer],
)
このハイブリッドモード——決定論的ワークフロー + LLM 動的意思決定——は ADK の最もユニークな設計です。重要なパスではグラフ構造で予測可能性を保証し、柔軟性が必要なノードでは LLM に判断を任せることができます。
3. クイックスタートチュートリアル
3.1 インストール
# 仮想環境を作成
python3 -m venv adk-env && source adk-env/bin/activate
# ADK をインストール(CLI ツール含む)
pip install "google-adk[cli]"
# Gemini API キーを設定
export GEMINI_API_KEY="your-key-here"
3.2 最初の MCP エージェント
# my_agent/__init__.py
from google.adk import Agent
from google.adk.tools.mcp_tools import MCPToolset
# ファイルシステム MCP サーバーに接続
fs_tools = MCPToolset.from_command(
command=["npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
)
root_agent = Agent(
name="file_assistant",
model="gemini-2.5-flash",
instruction="ユーザーのファイル管理を支援します。ファイルの一覧表示、読み取り、作成ができます。",
tools=[fs_tools],
)
# インタラクティブテストを開始
adk run my_agent
# または Web UI を起動
adk web my_agent
3.3 実践:マルチステップワークフローエージェントの構築
以下は完全な「研究レポート生成」ワークフローです——情報検索からレポート生成まで、完全に自動化されます:
from google.adk import Agent, Workflow
from google.adk.tools.mcp_tools import MCPToolset
# MCP ツール:検索エンジンに接続
search_tools = MCPToolset.from_url("http://localhost:3001")
# ステップ 1:情報収集
collector = Agent(
name="collector",
model="gemini-2.5-flash",
instruction="ユーザーのトピックに基づいて 3-5 の重要な情報ポイントを検索し、JSON リストとして返してください。",
tools=[search_tools],
)
# ステップ 2:深層分析
analyst = Agent(
name="analyst",
model="gemini-2.5-flash",
instruction="収集した情報を分析し、重要な洞察とトレンドを抽出してください。",
)
# ステップ 3:レポート作成
writer = Agent(
name="writer",
model="gemini-2.5-flash",
instruction="分析結果を要約、本文、結論を含む構造化されたレポートに整理してください。",
)
# ステップ 4:品質レビュー
reviewer = Agent(
name="reviewer",
model="gemini-2.5-flash",
instruction="レポートをレビューしてください:事実の正確さ、論理的一貫性、言語品質をチェックします。修正提案を提供してください。",
)
# ワークフローを組み立て
root_agent = Workflow(
name="research_pipeline",
edges=[
("START", collector, analyst, writer, reviewer),
],
)
動作の流れ:ユーザーがトピックを入力 → 自動検索 → 分析 → レポート作成 → レビュー → 最終結果を出力。全体のプロセスで人の介入は不要で、各ステップの出力が自動的に次のステップの入力となります。
4. 競合との詳細比較
4.1 vs LangChain + LangGraph
LangGraph は LangChain エコシステムのワークフローソリューションで、機能的には ADK Workflow と似ています。核心的な違い:
- ADK:1 つのフレームワークで Agent + ツール + ワークフロー + MCP を完結
- LangChain + LangGraph:複数のパッケージを組み合わせる必要があり、設定はより複雑だが、エコシステムはより豊富
すでに LangChain エコシステムを深く使っているなら、ADK への移行コストは低くありません。しかし新規プロジェクトなら、ADK の「オールインワン」体験は明らかにスムーズです。
4.2 vs CrewAI
CrewAI は「ロールプレイ」型のマルチエージェント協力が得意で、非常に使い始めやすいです。しかし以下のシナリオでは ADK に劣ります:
- 決定論的な実行フローが必要な場合(CrewAI の実行順序は LLM によって決まり、予測不可能)
- MCP ツール統合が必要な場合(CrewAI はサポートしていない)
- 条件分岐やループが必要な場合(CrewAI は順次実行のみサポート)
4.3 vs AutoGen
AutoGen の核心はマルチエージェント対話モードで、「議論型」の意思決定が必要なシナリオに適しています。ADK は「パイプライン型」のタスク処理により適しています。両者は設計思想が異なり、絶対的な優劣はありません。
5. 適切なユースケースと限界
最も適したシナリオ
- Google Cloud 技術スタック:すでに Vertex AI、Cloud Run、BigQuery を使っているなら、ADK のネイティブ統合で多くのアダプター作業を節約できます
- MCP ツールエコシステム:多くの外部ツールを接続し、標準化されたプロトコルで管理したい場合
- 予測可能なワークフロー:カスタマーサービスパイプライン、データ処理パイプライン、コンテンツ生成チェーン——決定論的な実行順序が必要なシナリオ
- ハイブリッドオーケストレーション:一部のステップは決定論的(グラフ構造)で、一部のステップは柔軟(LLM ルーティング)である必要がある場合
現在の限界
- Gemini バインディングの傾向:他のモデルもサポートしていますが、最高の体験には 여전히 Gemini API が必要です
- コミュニティエコシステムはまだ成長段階:LangChain の数千の統合と比較すると、ADK のサードパーティツールはまだ少ない
- ドキュメントが十分ではない:一部の高度な機能(カスタムミドルウェア、プラグインシステム)のドキュメントはまだ整備中
- Python / Java / Go のみ:JavaScript/TypeScript バージョンは始まったばかりで、フロントエンド統合は不便
6. FAQ
Q1: Google ADK は無料ですか?
A: ADK フレームワーク自体は完全に無料でオープンソース(Apache 2.0 ライセンス)です。ただし、Gemini モデルの使用には Google AI API 料金が必要で、無料枠が利用可能です。他のモデルを接続して費用を避けることもできます。
Q2: ADK はどの LLM モデルをサポートしていますか?
A: Gemini 2.5 シリーズ(Flash / Pro)にネイティブ最適化されています。カスタム Model Provider を通じて、OpenAI GPT-4o、Anthropic Claude、ローカル Ollama モデルなども接続可能です。ただし、一部の高度な機能(ツール呼び出しの構造化出力など)は Gemini で最も良く動作します。
Q3: MCP ツールはどこで見つかりますか?
A: MCP プロトコルにはすでに数千のコミュニティ貢献によるサーバー実装があります。MCP Servers GitHub で公式リポジトリを見つけることができ、ファイルシステム、データベース、ブラウザ自動化、Slack、GitHub などの一般的なシナリオをカバーしています。
Q4: ADK ワークフローと LangGraph の違いは何ですか?
A: 機能的には似ており、どちらもグラフ構造の実行エンジンです。違いは、ADK は組み込み機能(設定ゼロ)であるのに対し、LangGraph は追加のインストールと設定が必要な点です。ADK の API はよりシンプルで、LangGraph の可視化デバッグツールはより成熟しています。
Q5: 本番環境のデプロイにはどんなアプローチが推奨されますか?
A: 最もシンプルな方法は Docker + Cloud Run です。ADK は HTTP サービスを起動する組み込みの Runner.serve() メソッドを提供しており、Dockerfile と組み合わせてコンテナ化デプロイが可能です。大規模シナリオでは Vertex AI Agent Engine が推奨され、スケーリングとモニタリングを自動処理します。
7. 総評
Google ADK 2.0 は現在、MCP プロトコルサポートが最も優れているエージェントフレームワークであり、他に類を見ません。そのワークフローオーケストレーション能力——順次、並列、ループ、条件ルーティング——は、複雑なエージェントパイプラインを予測可能でテスト可能なものにします。
推奨指数:⭐⭐⭐⭐(4/5)
減点項目:Gemini 以外のモデルのサポートはまだスムーズではなく、コミュニティエコシステムは LangChain に比べてまだ差距があります。
一言推薦:Gemini を使い + MCP が必要 + 決定論的ワークフローが必要なら、ADK が現在の最適解です。そうでなければ、LangChain がより汎用的な選択肢です。
関連リソース:
さらに読む: