Passer au contenu principal
Weave for Agents est en préversion publique. Les fonctionnalités, les API et l’interface utilisateur de la vue Agents peuvent encore évoluer avant la disponibilité générale.
Le Google’s Agent Development Kit (ADK) est un framework Python flexible et agnostique quant au modèle pour créer et orchestrer des agents. Bien qu’optimisé pour Gemini, ADK prend en charge n’importe quel modèle ainsi que les tâches simples comme les flux de travail multi-agents complexes. Weave capture automatiquement les traces des agents créés avec ADK, y compris chaque invocation d’agent, transfert vers un sous-agent, appel de modèle et appel d’outil. Weave affiche les données capturées dans la vue Agents de votre projet.

Tracer les agents Google ADK avec Weave

Le SDK Weave applique automatiquement un patch à Google ADK, ce qui vous permet de capturer les traces de vos agents ADK avec un minimum de configuration. Ce guide explique comment initialiser Weave, puis exécuter un agent de recherche multi-tour de conversation créé avec Google ADK, afin que Weave capture chaque invocation d’agent, appel de modèle et appel d’outil tout au long de la session.

Prérequis

  • Un compte W&B et une clé API définie dans la variable d’environnement WANDB_API_KEY.
  • Une clé API Google pour Gemini.
  • Python 3.10+.

Installer les packages

Installez les packages suivants dans votre environnement de développement. Ils fournissent le SDK Weave, le framework Google ADK et le client HTTP utilisé par l’outil d’exemple :
pip install weave google-adk requests

Initialisez Weave dans votre code

Ajoutez weave.init à votre projet, ainsi que les noms de votre équipe et de votre projet W&B, puis créez un agent comme d’habitude. Le code suivant crée un agent research_assistant qui utilise gemini-2.5-flash et l’outil wikipedia_search, puis exécute trois questions au sein d’une même session ADK, tandis que Weave capture la trace.
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())
L’exemple comporte trois tours de conversation dans une seule session ADK. Les deux premiers déclenchent des recherches sur Wikipédia, et le troisième s’appuie sur le contexte de la conversation précédente pour produire une synthèse sans appel à un outil.

Voir les traces de votre agent dans la vue Agents

Une fois le script exécuté, ouvrez la vue Agents de votre projet pour vérifier que Weave a bien capturé la session. weave.init() affiche un lien vers votre projet lors de son exécution. Dans la vue Agents, examinez les éléments suivants :
  • Une ligne dans l’onglet Agents pour research_assistant.
  • Une seule session contenant trois tours de conversation.
  • Chaque tour de conversation affiché comme un span invoke_agent, avec des appels de modèle et des appels d’outil imbriqués.
  • L’entrée complète, le modèle, la sortie, l’utilisation des jetons et les résultats de Wikipédia à chaque étape.
Pour en savoir plus sur l’affichage des données des agents dans Weave, voir Afficher l’activité de l’agent.