> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-mintlify-8476678c.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Google ADK

> Weave を使用して、Google の Agent Development Kit（ADK）で構築したエージェントをトレースします。

<Note>
  Weave for Agents はパブリック プレビューです。一般提供前に、機能、API、Agents view UI は変更される可能性があります。
</Note>

[Google の Agent Development Kit (ADK) ](https://google.github.io/adk-docs/) は、エージェントの構築とオーケストレーションのための、柔軟でモデル非依存の Python フレームワークです。Gemini 向けに最適化されていますが、ADK はあらゆるモデルをサポートしており、シンプルなタスクから複雑なマルチエージェント ワークフローまで対応します。Weave は、ADK で構築されたエージェントを自動的にトレースし、各エージェント呼び出し、サブエージェントへのハンドオフ、モデルの Call、ツール呼び出しを含むデータを取得します。Weave は、取得したデータを project の **Agents** ビューに表示します。

<div id="trace-google-adk-agents-with-weave">
  ## Weave で Google ADK エージェントをトレースする
</div>

Weave SDK は Google ADK を自動的にパッチするため、最小限の設定で ADK エージェントのトレースを取得できます。このガイドでは、Weave を初期化したうえで、Google ADK で構築したマルチターンのリサーチエージェントを実行し、セッション全体にわたるすべてのエージェント呼び出し、モデルの Call、ツール呼び出しを Weave で取得する方法を説明します。

<div id="prerequisites">
  ### 前提条件
</div>

* W\&B アカウントと、`WANDB_API_KEY` 環境変数に設定した [APIキー](https://wandb.ai/authorize)。
* Gemini 用の [Google API key](https://aistudio.google.com/apikey)。
* Python 3.10 以降。

<div id="install-packages">
  ### パッケージをインストールする
</div>

開発用の環境に、次のパッケージをインストールします。これらのパッケージに、Weave SDK、Google ADK フレームワーク、およびサンプルツールで使用する HTTP クライアントが含まれます。

```bash theme={null}
pip install weave google-adk requests
```

<div id="initialize-weave-in-your-code">
  ### コードで Weave を初期化する
</div>

`weave.init` をprojectに追加し、W\&B のチーム名とproject名を指定してから、通常どおりエージェントを構築します。次のコードでは、`gemini-2.5-flash` と `wikipedia_search` ツールを使用する `research_assistant` エージェントを作成し、Weave でトレースを取得しながら、1 つの ADK セッション内で 3 つの質問を実行します。

```python theme={null}
import asyncio
import requests
import weave
from google.adk.agents import Agent
from google.adk.runners import InMemoryRunner
from google.genai import types

weave.init("[YOUR-TEAM]/[YOUR-PROJECT-NAME]")

def wikipedia_search(query: str) -> dict:
    """Search Wikipedia for a topic and return its title and intro paragraph.

    Args:
        query: The topic to search for.

    Returns:
        A dictionary with the article title and intro extract.
    """
    r = requests.get(
        "https://en.wikipedia.org/w/api.php",
        params={
            "action": "query", "generator": "search", "gsrsearch": query, "gsrlimit": 1,
            "prop": "extracts", "exintro": True, "explaintext": True, "format": "json",
        },
        headers={"User-Agent": "weave-demo"},
    ).json()
    page = next(iter(r["query"]["pages"].values()))
    return {"title": page["title"], "extract": page["extract"]}

agent = Agent(
    name="research_assistant",
    model="gemini-2.5-flash",
    instruction=(
        "You are a research assistant. Use the wikipedia_search tool to look up "
        "topics when needed, and cite the article titles you used."
    ),
    tools=[wikipedia_search],
)

async def main():
    runner = InMemoryRunner(agent=agent, app_name="research-app")
    session = await runner.session_service.create_session(
        app_name="research-app", user_id="user-1"
    )

    questions = [
        "Who founded Anthropic?",
        "What is Claude (the AI assistant)?",
        "Summarize what we discussed in one sentence.",
    ]

    for question in questions:
        print(f"USER: {question}")
        async for event in runner.run_async(
            user_id="user-1",
            session_id=session.id,
            new_message=types.Content(
                role="user",
                parts=[types.Part(text=question)],
            ),
        ):
            if event.is_final_response() and event.content:
                print(f"AGENT: {event.content.parts[0].text}\n")

asyncio.run(main())
```

この例では、1 つの ADK セッション内で 3 つのターンを実行します。最初の 2 つのターンでは Wikipedia のルックアップがトリガーされ、3 つ目のターンではそれまでの会話コンテキストを使用して、ツール呼び出しなしで要約を生成します。

<div id="see-your-agent-traces-in-the-agents-view">
  ### Agents ビューでエージェントのトレースを確認する
</div>

スクリプトの実行後、Weave がセッションを取得できていることを確認するために、project の **Agents** ビューを開いてください。`weave.init()` は実行時に、project へのリンクを出力します。**Agents** ビューでは、次の内容を確認します。

* **Agents** タブに `research_assistant` の行があること。
* 3 つのターンを含む 1 つのセッションがあること。
* 各ターンが `invoke_agent` span として表示され、その中にモデルの Call とツール呼び出しがネストされていること。
* 各 step で、入力全体、モデル、出力、token 使用量、Wikipedia の結果を確認できること。

Weave で Agents データを表示する方法の詳細については、[エージェントのアクティビティを表示する](/ja/weave/guides/tracking/view-agent-activity)を参照してください。
