Techsy
お問い合わせ
始める
ブログ一覧へ戻る
guides

Google ADKチュートリアル: AIエージェントをゼロから本番環境へ

著者: Mert Batur Gürbüz
Apr 4, 2026
2 分
目次
Google ADKチュートリアル: AIエージェントをゼロから本番環境へ

Google ADKチュートリアル: AIエージェントをゼロから本番環境へ

GoogleのAgent Development Kit (ADK) は、マルチエージェントシステムをようやく身近に感じられるようにしてくれるフレームワークです。LangChainやCrewAIを使ってAIエージェントを構築し、フレームワークと戦っているような感覚を持っていたなら、このGoogle ADKチュートリアルでは、最初のエージェントの作成からCloud Runへのデプロイまで、すべてを順を追って解説します。

Google ADKとは何か(そしてなぜ注目すべきか)

GoogleのAgent Development Kit (ADK)は、AIエージェントの構築、評価、デプロイのためのオープンソースPythonフレームワークです。2025年にリリースされ、Geminiに最適化されていますが、LiteLLM経由で100以上のモデルをサポートしています。ADKのキラー機能は、ネイティブなマルチエージェントオーケストレーションであり、接着剤のようなコードなしで他のエージェントにタスクを委任できるエージェントを実現します。

LangChain、CrewAI、そして現在はADKでエージェントを構築してきた経験から際立つのは、ADKが適切な場所で意見を持っている点です。プロジェクト構造、組み込みの開発用UI、デプロイコマンドを提供してくれます。基本的なエージェントを動かすために5つのライブラリをつなぎ合わせる必要はありません。

LangChainが多目的なスイスアーミーナイフだとすれば、ADKはマルチエージェントワークフローのためにGoogleが特別に設計したツールキットです。CrewAIは哲学的に近いものがあり、役割ベースのエージェントが協力しますが、ADKは組み込みの評価、ネイティブなGemini最適化、ワンコマンドでのCloud Runデプロイにより、さらに先を行っています。詳細な比較については、エージェントフレームワークの深掘り比較をご覧ください。

ADKは誰向けでしょうか?構造化されたマルチエージェントシステムを望むPython開発者。すでにGoogle CloudやGeminiを使用しているチーム。ボイラープレート的なオーケストレーションロジックを書くことに疲れた人すべてです。

フレームワークの概略は以下の通りです:

機能Google ADKLangGraphCrewAI
ネイティブなマルチエージェントはいグラフ経由はい
モデルサポートGemini + LiteLLM経由で100以上任意任意
組み込みUIはい (adk web)LangSmithなし
デプロイCloud Run, Vertex AIカスタムカスタム
学習曲線低〜中高低
オープンソースはい (Apache 2.0)はいはい

要約すると、「アイデア」から「デプロイされたマルチエージェントシステム」への最速パスを求めている場合、現時点ではADKに対抗するのは困難です。

前提条件とGoogle ADKのインストール

Google ADKを始めるには、Python 3.9以上、Gemini APIキー(Google AI Studioで無料 tier利用可能)、およびgoogle-adkパッケージが必要です。pip install google-adkでインストールし、APIキーを環境変数として設定すれば、5分以内に最初のエージェントを構築する準備が整います。

セットアップチェックリストは以下の通りです:

  • Python 3.9+ (完全な型ヒントサポートのため、3.10+を推奨)
  • Gemini APIキー、aistudio.google.comで無料で取得できます。無料 tier では1分あたり15リクエストが可能で、開発には十分です。
  • pip (または速度を重視するならuv、uv pip install google-adkも動作します)

パッケージをインストールし、キーを設定します:

bash
pip install google-adk

# Set your API key (add to .bashrc/.zshrc for persistence)
export GOOGLE_API_KEY="your-api-key-here"

ADKは特定のフォルダ構造を想定しています。各エージェントは独自のパッケージディレクトリ内に存在します:

text
my_agent/
  __init__.py    # Exports root_agent
  agent.py       # Agent definition
.env             # Optional: GOOGLE_API_KEY=your-key

フォルダ名がエージェントのパッケージ名になるため、説明的な名前を選んでください。testやagentといった名前は避けてください。Pythonのインポートシステムを混乱させることになります。

プロのヒント: uvを使用している場合は、まずuv venv && source .venv/bin/activateで仮想環境を作成してください。依存関係の解決において、通常のpipよりも noticeably 高速です。

最初のGoogle ADKエージェントを構築する

最初のADKエージェントに必要なものは3つだけです:名前、モデル(例:gemini-2.0-flash)、および指示文字列です。これをagent.pyで定義し、__init__.pyのあるフォルダ内に配置して、adk webを実行すると、ブラウザUIでチャットできます。全体のセットアップはPython約10行で完了します。

my_agentというフォルダを作成し、2つのファイルを追加します。まず、エージェントの定義です:

python
# my_agent/agent.py
from google.adk.agents import LlmAgent

root_agent = LlmAgent(
    name="my_assistant",
    model="gemini-2.0-flash",
    instruction="""You are a helpful coding assistant. 
    You explain concepts clearly and provide working code examples.
    Keep responses concise but thorough.""",
    description="A coding assistant that explains concepts and writes code"
)

次に、エージェントをエクスポートするinitファイルです:

python
# my_agent/__init__.py
from .agent import root_agent

この変数名は重要です。ADKは specifically root_agentを探します。これを忘れると、理由を説明しない「エージェントが見つかりません」というエラーが発生します。

さて、実行しましょう。選択肢は2つあります:

bash
# CLI mode -- chat in your terminal
adk run my_agent

# Web UI mode -- opens a browser interface
adk web my_agent

adk webインターフェースは genuinely 有用です。会話の全トレース、エージェントが呼び出したツール、モデルが受信したもの、および返したものを表示します。エージェント用のChrome DevToolsと考えてください。後でマルチエージェントシステムの構築を始めると、委任フローを理解するためにこれが不可欠になります。

動作の変化を確認するために指示を変更してみてください。海賊にしたり、俳句でのみ応答するようにしたりします。指示が動作を形成する方法を感じることは、このチュートリアルの他のすべての基礎となります。

Google ADKエージェントにカスタムツールを追加する

ADKエージェントにツールを与えると有用になります。明確なdocstringを持つPython関数を定義すると、ADKはそれをエージェントが呼び出せるツールに自動変換します。docstringはcriticalです。モデルにツールの用途と使用時期を伝えます。ADKには、Google検索やコード実行などの組み込みツールも付属しています。

ツールはエージェントの「手」です。それらがなければ、エージェントは話すことしかできません。それらがあれば、データベースの確認、APIの呼び出し、計算の実行、外部システムとの対話が可能です。内部での関数呼び出しの仕組みを理解したい場合は、別途深掘り記事があります。

カスタム関数ツール

実用的な例として、株価を検索するツールがあります:

python
# my_agent/agent.py
from google.adk.agents import LlmAgent

def get_stock_price(ticker: str) -> dict:
    """Get the current stock price for a given ticker symbol.
    
    Args:
        ticker: The stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
    
    Returns:
        A dictionary with the ticker and its current price.
    """
    # In production, you'd call a real API here
    mock_prices = {"AAPL": 198.50, "GOOGL": 175.20, "MSFT": 425.80}
    price = mock_prices.get(ticker.upper(), None)
    if price:
        return {"ticker": ticker.upper(), "price": price, "currency": "USD"}
    return {"error": f"Ticker {ticker} not found"}

root_agent = LlmAgent(
    name="finance_assistant",
    model="gemini-2.0-flash",
    instruction="You help users check stock prices. Use the get_stock_price tool when asked about any stock.",
    tools=[get_stock_price],
    description="A financial assistant that looks up stock prices"
)

型ヒントとdocstringに注目してください。これらはオプションの親切心ではなく、ADKはこれらを使用してモデルが表示するツールスキーマを生成します。docstringを省略すると、モデルはいつ関数を呼び出すべきか分かりません。型ヒントを省略すると、シグネチャエラーが発生します。

組み込みツール(Google検索、コード実行)

ADKには、コードを書かずにドロップインできるツールが付属しています:

python
from google.adk.agents import LlmAgent
from google.adk.tools import google_search, code_execution

root_agent = LlmAgent(
    name="research_agent",
    model="gemini-2.0-flash",
    instruction="You research topics using Google Search and can run Python code to analyze data.",
    tools=[google_search, code_execution],
    description="A research agent with search and code execution capabilities"
)

google_searchにより、エージェントはリアルタイムでWebを検索できます。code_executionにより、計算を実行するためのサンドボックス化されたPython環境が提供されます。これら2つだけで、驚くほど多くのユースケースをカバーします。

マルチエージェントシステム: Google ADKエージェントが仕事を委任する方法

ADKのマルチエージェントシステムは、タスクを専門的なサブエージェントに委任するルートエージェントを使用します。各サブエージェントは1つのドメイン(研究、執筆、コーディングなど)を処理します。ルートエージェントはユーザーのリクエストに基づいてどのサブエージェントを呼び出すか決定します。また、あるエージェントが別のエージェントを関数のように呼び出す「エージェント・アズ・ツール」パターンも使用できます。Googleのマルチエージェントシステムに関する公式ブログでは、アーキテクチャパターンについてさらに深く解説しています。

プロジェクトマネージャーが専門家に仕事を委任するようなものだと考えてください。ルートエージェントはユーザーのリクエストを読み、どの専門家が処理すべきかを判断し、適切にルーティングします。専門家同士は互いを認識しておらず、ただ自分の仕事をして報告するだけです。

ルートエージェント + サブエージェントパターン

以下は、研究エージェントと執筆エージェントに委任するルートエージェントを使用した動作例です:

python
from google.adk.agents import LlmAgent
from google.adk.tools import google_search

# Sub-agent 1: handles research
research_agent = LlmAgent(
    name="researcher",
    model="gemini-2.0-flash",
    instruction="You research topics thoroughly using Google Search. Return factual, well-sourced information.",
    tools=[google_search],
    description="Researches topics and returns factual information"
)

# Sub-agent 2: handles writing
writing_agent = LlmAgent(
    name="writer",
    model="gemini-2.0-flash",
    instruction="You write clear, engaging content based on provided information. Focus on readability and accuracy.",
    description="Writes polished content from research notes"
)

# Root agent: delegates to the right sub-agent
root_agent = LlmAgent(
    name="content_manager",
    model="gemini-2.0-flash",
    instruction="""You manage content creation. 
    - When the user wants information gathered, delegate to the researcher.
    - When the user wants content written or edited, delegate to the writer.
    - You can chain both: research first, then write.""",
    sub_agents=[research_agent, writing_agent],
    description="Manages content creation by delegating to research and writing specialists"
)

各サブエージェントのdescriptionフィールドは、ルートエージェントが彼らの能力を理解する方法です。明確な説明を書いてください。曖昧な説明は悪いルーティング判断につながります。

エージェント・アズ・ツールパターン

あるエージェントが別のエージェントをどのように呼び出すかについて、より多くの制御を望む場合があります。エージェント・アズ・ツールパターンは、サブエージェントを呼び出し可能なツールとしてラップします:

python
from google.adk.tools import agent_tool

research_tool = agent_tool.AgentTool(agent=research_agent)

root_agent = LlmAgent(
    name="writer_with_research",
    model="gemini-2.0-flash",
    instruction="You write articles. Use the research tool to gather facts before writing.",
    tools=[research_tool],
    description="A writer that can research topics on demand"
)

ルートエージェントに完全に制御を委任したい場合はサブエージェントを使用してください。呼び出し側エージェントが主導権を握り、サブエージェントの出力を入力として使用したい場合はエージェント・アズ・ツールを使用してください。エージェントが共有コンテキストを必要とするシステムを構築している場合は、エージェントメモリアーキテクチャの包括的ガイドを参照してください。

ワークフローエージェント: シーケンシャル、パラレル、ループ

LLM駆動の委任を超えて、ADKは決定論的オーケストレーションのための3つのワークフローエージェントタイプを提供します:SequentialAgentはサブエージェントを次々と実行し、ParallelAgentは同時に実行し、LoopAgentは条件が満たされるまでシーケンスを繰り返します。これらは、LLMに決定させるのではなく、予測可能な実行順序が必要な場合に役立ちます。

この区別は重要です。LLM駆動の委任(上記のsub_agentsパターン)はモデルに誰を呼び出すかを選択させます。ワークフローエージェントはプログラムによる制御を提供します。実行順序が事前にわかっている場合はワークフローエージェントを使用してください。

python
from google.adk.agents import SequentialAgent, ParallelAgent, LlmAgent

# Three agents that must run in order
research_agent = LlmAgent(name="researcher", model="gemini-2.0-flash",
    instruction="Research the given topic.", description="Researches topics")
    
draft_agent = LlmAgent(name="drafter", model="gemini-2.0-flash",
    instruction="Write a draft based on the research.", description="Writes drafts")
    
review_agent = LlmAgent(name="reviewer", model="gemini-2.0-flash",
    instruction="Review the draft for accuracy and clarity.", description="Reviews content")

# Pipeline: research -> draft -> review
content_pipeline = SequentialAgent(
    name="content_pipeline",
    sub_agents=[research_agent, draft_agent, review_agent],
    description="Runs a complete content creation pipeline"
)

同時に実行できる独立したタスクの場合、ParallelAgentは実際の時間を節約します:

python
# Three data fetchers that run concurrently
fetch_news = LlmAgent(name="news_fetcher", model="gemini-2.0-flash",
    instruction="Fetch latest tech news.", description="Fetches news")
    
fetch_stocks = LlmAgent(name="stock_fetcher", model="gemini-2.0-flash",
    instruction="Fetch stock market summary.", description="Fetches stocks")
    
fetch_weather = LlmAgent(name="weather_fetcher", model="gemini-2.0-flash",
    instruction="Fetch weather forecast.", description="Fetches weather")

morning_briefing = ParallelAgent(
    name="morning_briefing",
    sub_agents=[fetch_news, fetch_stocks, fetch_weather],
    description="Gathers morning briefing data in parallel"
)
パターンエージェントタイプユースケース例
パイプラインSequentialAgentステップは順序通りに発生しなければならない研究 -> 執筆 -> レビュー
ファンアウトParallelAgent独立したタスク3つのAPIから同時にデータを取得
反復LoopAgent品質が満たされるまで繰り返す下書き -> レビュー -> 修正(ループ)

状態とメモリの管理

ADKは2つのレベルでエージェントの状態を管理します:セッション状態(会話中のデータ、チャット途中で収集されたユーザー設定など)とメモリサービス(会話間で永続化するデータ)。セッション状態はcontext.state経由でアクセスされる単純なキーバリューストアです。メモリは本番環境用にInMemoryMemoryServiceやVertexAIMemoryBankServiceなどのサービスを使用します。

セッション状態の方がシンプルです。これは各会話に付随する辞書です:

python
from google.adk.agents import LlmAgent

def save_preference(key: str, value: str, context) -> str:
    """Save a user preference to session state.
    
    Args:
        key: The preference name (e.g., 'language', 'theme')
        value: The preference value
        context: The ADK context object
    
    Returns:
        Confirmation message
    """
    context.state[key] = value
    return f"Saved preference: {key} = {value}"

def get_preference(key: str, context) -> str:
    """Retrieve a user preference from session state.
    
    Args:
        key: The preference name to look up
        context: The ADK context object
    
    Returns:
        The preference value or a not-found message
    """
    value = context.state.get(key, "Not set")
    return f"{key} = {value}"

root_agent = LlmAgent(
    name="personalized_assistant",
    model="gemini-2.0-flash",
    instruction="You remember user preferences. Save them when told, recall them when asked.",
    tools=[save_preference, get_preference],
    description="An assistant that remembers user preferences"
)

会話横断的なメモリ、つまりエージェントが先週の火曜日のユーザーを記憶するような種類の場合は、メモリサービスが必要です:

python
from google.adk.memory import InMemoryMemoryService

# For development (data lost on restart)
memory_service = InMemoryMemoryService()

# For production, use VertexAIMemoryBankService
# memory_service = VertexAIMemoryBankService(project="your-project")

いつメモリが必要で、いつセッション状態で十分でしょうか?単一の会話内(ショッピングカート、現在のタスクコンテキスト)であれば、セッション状態を使用してください。会話間で存続する必要がある場合(ユーザー設定、過去の相互作用)は、メモリサービスを使用してください。本番パターンについては、エージェントメモリアーキテクチャの包括的ガイドをご覧ください。

コールバック: エージェント動作の制御

ADKコールバックを使用すると、4つのポイントでエージェント動作をインターセプトおよび変更できます:before_model_callback(LLM呼び出し前)、after_model_callback(LLM応答後)、before_tool_callback(ツール実行前)、およびafter_tool_callback(ツール結果後)。これらを入力検証、安全フィルタリング、ログ記録、またはユーザーに届く前に応答を変更するために使用します。

コールバックはガードレールを追加する場所です。エージェントのミドルウェアと考えてください。すべてのリクエストと応答がこれらを通過し、検査、変更、またはブロックすることができます。

python
from google.adk.agents import LlmAgent

def safety_filter(callback_context, llm_request):
    """Block requests containing harmful content patterns."""
    user_message = str(llm_request)
    blocked_patterns = ["ignore your instructions", "pretend you are"]
    
    for pattern in blocked_patterns:
        if pattern.lower() in user_message.lower():
            # Return a response directly, skipping the model call
            return {"blocked": True, "reason": "Request matched safety filter"}
    
    # Return None to proceed normally
    return None

def log_tool_usage(callback_context, tool_name, tool_result):
    """Log every tool call for monitoring."""
    print(f"[TOOL LOG] {tool_name}: {tool_result}")
    return None  # Don't modify the result

root_agent = LlmAgent(
    name="safe_assistant",
    model="gemini-2.0-flash",
    instruction="You are a helpful assistant.",
    before_model_callback=safety_filter,
    after_tool_callback=log_tool_usage,
    description="A safety-filtered assistant with tool logging"
)

before_model_callbackは本番環境で最も重要です。すべてのLLM呼び出しの前に実行され、プロンプトインジェクションをブロックしたり、入力を検証したり、システムコンテキストを追加する機会を提供します。レスポンスオブジェクトを返すと、ADKはモデルを完全にスキップします。リクエストを通すにはNoneを返します。詳細なパターンについては、LLM安全ガードレールの深いパターンを参照してください。

ADKエージェントのテストと評価

ADKには2つの評価器タイプを持つ組み込み評価フレームワークが含まれています:ResponseEvaluatorはエージェントの最終回答が正しいかどうかをチェックし、TrajectoryEvaluatorはエージェントが正しい手順を踏んだか、正しい順序で正しいツールを呼び出したかを確認します。JSONファイルとしてテストケースを作成し、pytestで実行して、デプロイ前に回帰を検出します。

なぜエージェントのテストに手間をかけるのでしょうか?因为它们是非決定論的だからです。同じ入力でも異なる出力を生み出す可能性があり、指示の小さな変更が微妙な方法でツール呼び出しを壊す可能性があります。私たちの経験では、最終出力の品質のみでテストされたものよりも、軌跡評価をパスしたエージェントの方が本番環境でははるかに信頼性が高いです。幅広い評価戦略については、LLM評価戦略のガイドを参照してください。

テストケースはJSONファイルに入れます:

json
[
  {
    "input": "What's the stock price of AAPL?",
    "expected_output": "198.50",
    "expected_trajectory": [
      {"tool_name": "get_stock_price", "args": {"ticker": "AAPL"}}
    ]
  },
  {
    "input": "Compare AAPL and GOOGL prices",
    "expected_output": "AAPL.*198.*GOOGL.*175",
    "expected_trajectory": [
      {"tool_name": "get_stock_price", "args": {"ticker": "AAPL"}},
      {"tool_name": "get_stock_price", "args": {"ticker": "GOOGL"}}
    ]
  }
]

次に、pytestで評価を実行します。ADK Pythonリポジトリには完全な評価APIリファレンスがあります:

python
# test_agent.py
import pytest
from google.adk.evaluation import ResponseEvaluator, TrajectoryEvaluator

def test_stock_agent_response():
    evaluator = ResponseEvaluator(agent=root_agent)
    results = evaluator.evaluate("test_cases.json")
    
    assert results.pass_rate >= 0.8, f"Response pass rate too low: {results.pass_rate}"

def test_stock_agent_trajectory():
    evaluator = TrajectoryEvaluator(agent=root_agent)
    results = evaluator.evaluate("test_cases.json")
    
    assert results.pass_rate >= 0.9, f"Trajectory pass rate too low: {results.pass_rate}"

pytest test_agent.py -vで実行します。重要度に基づいて閾値を設定してください。クリエイティブライティングエージェントであれば80%の応答精度で問題ないかもしれませんが、金融データを扱うものであれば95%以上を望むでしょう。

Google ADKエージェントを本番環境にデプロイする

1つのコマンドでADKエージェントをGoogle Cloud Runにデプロイします:adk deploy cloud_run --project YOUR_PROJECT --region us-central1。ADKはコードをパッケージ化し、コンテナをビルドして、サーバーレスエンドポイントを起動します。マネージドホスティングにはVertex AI Agent Engineを使用してください。カスタムインフラストラクチャの場合、ADKはDockerコンテナ化もサポートしています。

私たちは社内ツール用にCloud RunでADKエージェントをデプロイしてきましたが、コールドスタート時間は驚くほど高速で、基本的なエージェントで3秒未満です。本番システムの場合、デプロイメントを本番エージェント用の監視ツールと組み合わせることを検討してください。

Cloud Runへのデプロイ(大多数に推奨)

Cloud Runが最もシンプルなパスです。1つのコマンドで、HTTPSエンドポイントでエージェントがライブになります:

bash
adk deploy cloud_run \
  --project your-gcp-project-id \
  --region us-central1 \
  --service-name my-agent-service \
  --with_ui

--with_uiフラグはエージェントと一緒にADK Webインターフェースをデプロイするため、本番環境でのテスト用にブラウザベースのチャットが利用できます。背後では、ADKはコンテナイメージをビルドし、Google Artifact Registryにプッシュして、Cloud Runサービスを作成します。完全なデプロイフローはADK用のGoogle Cloud Runクイックスタートに記載されています。

カスタムインフラストラクチャの場合、最小限のDockerfileは以下の通りです:

dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8080
CMD ["adk", "api_server", "--port", "8080", "my_agent"]

代替案: Vertex AI Agent Engine

マネージドスケーリング、監視、バージョン管理を必要とするエンタープライズチームの場合、Vertex AI Agent Engineがインフラストラクチャを完全に処理します。柔軟性と引き換えに利便性を得ます。管理すべきコンテナはなく、自動スケーリング、組み込みアナリティクスがあります。

コスト考慮事項

知っておくべき実際の数字:

  • Gemini API無料 tier: 1分あたり15リクエスト、1日あたり100万トークン。開発と軽いデモには十分です。
  • Gemini 2.0 Flash(有料): 入力トークン100万あたり$0.10、出力トークン100万あたり$0.40。本番環境にも安価です。
  • Cloud Run無料 tier: 月間200万リクエスト、360,000 GB秒のコンピューティング。1日1,000リクエストを処理する基本的なエージェントは無料 tier の範囲内に収まります。
  • 最適化のヒント: 単純なルーティングやフォーマットを行うサブエージェントにはgemini-2.0-proではなくgemini-2.0-flashを使用してください。複雑な推論を行うエージェントにはより強力なモデルを予約してください。

TechsyがAIエージェント開発に取り組む方法

Techsyでは、ADK、LangGraph、CrewAIを使用してクライアント向けにマルチエージェントシステムを構築してきました。フレームワークの選択はスタックに依存します:すでにGoogle Cloudを使用している場合、ADKは多くの統合摩擦を排除します。初日からマルチプロバイダーLLMサポートが必要な場合、LangGraphはより多くの柔軟性を提供します。

私たちの典型的な関与は、アーキテクチャコンサルティングから始まり、ユースケースを適切なエージェントパターンにマッピングし、その後プロトタイプ開発とCloud Runデプロイを行います。後でリファクタリングするのではなく、最初にアーキテクチャを正しくすることで、チームは2〜3週間を節約できると我们发现しています。

チームのためにAIエージェントを構築していますか?無料相談を取得してください。適切なフレームワークとデプロイ戦略の選択をお手伝いします。

よくあるエラーとトラブルシューティング

これらはADKを使い始めるときに私たちが最もよく遭遇するエラーです。デバッグ時間を節約してください:

エラー原因修正
GOOGLE_API_KEY not set環境変数の欠落export GOOGLE_API_KEY="your-key" または .env に追加
Model not found間違ったモデル名文字列正確なIDを使用:gemini-flashではなくgemini-2.0-flash
Tool function signature error型ヒントまたはdocstringの欠落すべてのパラメータに型ヒントを追加し、説明的なdocstringを追加
Agent not found間違ったフォルダ構造またはエクスポートの欠落__init__.pyがその正確な名前でroot_agentをエクスポートしていることを確認
Rate limit exceeded (429)無料 tier でのAPI呼び出し過多有料Gemini tier にアップグレードするか、指数バックオフを追加
ImportError: google-adkパッケージ未インストールアクティブな仮想環境でpip install google-adkを実行

デバッグのヒント: ここではadk webがあなたの親友です。マルチエージェントシステムで何かがうまくいかない場合、Web UIはチェーンがどこで壊れたかを正確に表示します。リアルタイムで会話の全トレース、すべてのモデル呼び出し、ツール呼び出し、およびエージェント委任を表示します。

FAQ

Google ADKとは何ですか?

GoogleのAgent Development Kit (ADK) は、AIエージェントの構築、評価、デプロイのためのオープンソースPythonフレームワークです。Google Geminiモデルに最適化されていますが、LiteLLM統合を通じて100以上のLLMをサポートしています。ADKの中核的な強みは、組み込みツール、開発用UI、ワンコマンドでのCloud Runデプロイを備えたネイティブなマルチエージェントオーケストレーションです。

Google ADKは無料で使用できますか?

はい。ADK自体はApache 2.0ライセンスの下でオープンソースです。Gemini APIキーが必要で、これには1分あたり15リクエスト、1日あたり100万トークンを提供する無料 tier があります。Cloudデプロイコストはホスティングの選択に依存しますが、Cloud Runの無料 tier は月間200万リクエストをカバーします。

Google ADKとLangChainの違いは何ですか?

ADKは、ネイティブなマルチエージェントオーケストレーションと組み込みデプロイツールを備え、Geminiに最適化されたGoogleの意見を持ったフレームワークです。LangChainはモデル非依存でサードパーティ統合が広範ですが、複雑さが大幅に増します。ADKは迅速なデプロイを望むGemini優先のチームに適しています。LangChainは最大の柔軟性を必要とするマルチプロバイダー構成に適しています。

Google ADKはマルチエージェントシステムをサポートしていますか?

はい、そしてそれはADKの旗艦機能です。ユーザーリクエストに基づいて専門的なサブエージェントに委任するルートエージェントを作成します。ADKはまた、決定論的ワークフローオーケストレーションのためにSequentialAgent、ParallelAgent、およびLoopAgentを提供します。エージェント・アズ・ツールパターンにより、エージェントは他のエージェントを呼び出し可能な関数として呼び出すことができます。

Google ADKエージェントをデプロイするにはどうすればよいですか?

Google Cloud Runへのサーバーレスデプロイのためにadk deploy cloud_run --project YOUR_PROJECT --region us-central1を実行します。ブラウザベースのチャットインターフェースを含めるには--with_uiを追加します。マネージドホスティングのためにVertex AI Agent Engineにデプロイすることも、カスタムインフラストラクチャのためにDockerコンテナをビルドすることもできます。

Google ADKはGemini以外のモデルを使用できますか?

はい。ADKはLiteLLM統合を通じてAnthropic Claude、OpenAI GPT-4、Meta Llama、Mistralなどを含む100以上のモデルをサポートしています。モデルパラメータをLiteLLMモデル文字列に設定します。例えば、litellm/anthropic/claude-3-sonnetまたはlitellm/openai/gpt-4o。GeminiモデルはLiteLLMプレフィックスなしでネイティブに動作します。

ADK Web UIとは何ですか?

adk web your_agent_folderで起動されるブラウザベースのデバッグインターフェースです。リアルタイムの会話トレース、ツール呼び出し、エージェント委任チェーン、および状態変化を表示します。Web UIは、どのサブエージェントが各リクエストを処理したかを正確に示すため、マルチエージェントシステムのデバッグに不可欠です。

Google ADKはMCP(Model Context Protocol)をサポートしていますか?

はい。ADKはネイティブなModel Context Protocolサポートを持っており、エージェントが外部ツールやデータソースのためにMCP互換のツールサーバーに接続できるようにします。これにより、ADKエージェントは成長するMCPエコシステムと相互運用可能になります。プロトコルの背景については、MCPガイドを参照してください。

ADKエージェントをテストするにはどうすればよいですか?

ADKには組み込み評価器が付属しています:期待される答えに対して出力品質をチェックするResponseEvaluator、およびエージェントが正しい順序で正しいツールを呼び出したことを確認するTrajectoryEvaluator。入力、期待される出力、および期待されるツール呼び出しシーケンスを定義するJSONファイルとしてテストケースを作成し、pytestで実行します。

Google ADKにはどのPythonバージョンが必要ですか?

ADKにはPython 3.9以上が必要です。Python 3.10+は完全な型ヒントサポートのために推奨されます。ADKは型ヒントを使用してツールスキーマを生成するため、これは重要です。Python 3.11または3.12も、エージェントワークロードにとって意味のあるパフォーマンス改善を提供します。pip install google-adkでインストールしてください。

タグ

google adk チュートリアルエージェント開発キットマルチエージェントシステムgemini apiai エージェントpythoncloud run

記事をシェアする

関連記事

その他の記事 guides

guides
Jul 18, 2026

2026年LLM API価格比較:主要モデルの全料金一覧

2026年の完全なLLM API価格比較 — Claude、GPT-5.6、Gemini、DeepSeek、Qwen、GLM、Mistralの料金を100万トークン単位で並べ、公式価格ページから直接抽出しました。

12 min read 分
読む
guides
Apr 12, 2026

Surfer SEOガイド2026:コンテンツエディター、NLPスコアリング、AI検索

50本以上の記事でのテストに基づき、コンテンツエディターのワークフロー、NLPスコアリングシステム、GEO最適化のためのAI Tracker、API自動化を網羅した実践的なSurfer SEOガイド。

14 min read 分
読む
guides
Apr 12, 2026

Semrushガイド2026:全ツール解説(実例付き)

キーワード調査、サイト監査、競合分析、AIビジュアリティ追跡、MCPサーバー設定まで網羅した実践的なSemrushガイド。実際のSEOパイプラインからのコード例とワークフローを含みます。

14 min read 分
読む
すべての記事を表示
プロジェクトを始めよう

さあ、何かを作ろう。 特別なものへ?

ビジョンを、かたちに。変化を生むソフトウェアづくりは、私たちのチームにお任せください。

30分のスコーピング通話を予約する実績を見る

注目のツール

Claude Skills

すべて表示
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI自動化

すべて表示
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

注目のツール

Claude Skills

すべて表示
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI自動化

すべて表示
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

サービス

  • エンタープライズソリューション
  • モバイルアプリ
  • Webアプリケーション

ソリューション

  • CRMシステム
  • AI統合
  • ERPソリューション
  • 音声エージェント
  • プロセス自動化
  • サイバーセキュリティ

ライブラリ

  • ブログ
  • ポートフォリオ

コミュニティ

  • AI自動化
  • Claude Skills

ツール

  • モバイルアプリ開発費用計算ツール
  • OpenAI / LLM API 利用料金計算ツール
  • MVP(Minimum Viable Product)開発費用計算ツール
  • 音声AIエージェント構築費用計算ツール

会社情報

  • 概要
  • パートナー
  • お問い合わせ

法的情報

  • プライバシーポリシー
  • 利用規約
  • クッキーポリシー

サービス

  • エンタープライズソリューション
  • モバイルアプリ
  • Webアプリケーション

ソリューション

  • CRMシステム
  • AI統合
  • ERPソリューション
  • 音声エージェント
  • プロセス自動化
  • サイバーセキュリティ

ライブラリ

  • ブログ
  • ポートフォリオ

コミュニティ

  • AI自動化
  • Claude Skills

ツール

  • モバイルアプリ開発費用計算ツール
  • OpenAI / LLM API 利用料金計算ツール
  • MVP(Minimum Viable Product)開発費用計算ツール
  • 音声AIエージェント構築費用計算ツール

会社情報

  • 概要
  • パートナー
  • お問い合わせ
法的情報プライバシーポリシー利用規約クッキーポリシー
TECHSY
© 2026 Techsy. 無断複写・転載を禁じます