Passer au contenu principal
Le Claude Agent SDK vous permet de créer rapidement des applications d’agents avec Claude. Vous pouvez intégrer Weave à vos agents Claude pour tracer automatiquement leurs appels, y compris les requêtes d’agents, les réponses du modèle, l’utilisation d’outils et les conversations multi-tours. Weave affiche les données capturées dans la vue Agents de votre projet.

Tracez les agents du Claude Agent SDK avec Weave

Le SDK Weave applique automatiquement un patch au Claude Agent SDK for Python, ce qui vous permet de capturer les traces de vos agents Claude avec une configuration minimale.Ce guide explique comment initialiser Weave et exécuter un agent Claude avec des outils MCP via ClaudeSDKClient. Weave trace automatiquement de bout en bout la conversation, les appels de modèle et les appels d’outil.

Prérequis

  • Un compte W&B et une clé API définie comme variable d’environnement WANDB_API_KEY.
  • Une clé API Anthropic définie comme variable d’environnement ANTHROPIC_API_KEY.
  • Python 3.10+.

Installer les packages

Installez les packages suivants dans votre environnement de développement. Le package weave capture des traces, et claude-agent-sdk fournit l’environnement d’exécution de l’agent.
pip install weave claude-agent-sdk

Initialisez Weave dans votre code

Ajoutez weave.init à votre projet, mettez à jour les noms de votre équipe et de votre projet W&B, puis créez un agent comme d’habitude. weave.init active le patching automatique qui permet de capturer les traces du Claude Agent SDK.Le code suivant crée un agent Claude avec deux outils mathématiques MCP et l’exécute pendant que Weave en capture les traces.
import anyio
import weave

from claude_agent_sdk import (
    ClaudeAgentOptions,
    ClaudeSDKClient,
    create_sdk_mcp_server,
    tool,
)

weave.init("<your-team>/<your-project-name>")

@tool("add", "Add two numbers", {"a": float, "b": float})
async def add(args: dict) -> dict:
    return {"content": [{"type": "text", "text": str(args["a"] + args["b"])}]}

@tool("multiply", "Multiply two numbers", {"a": float, "b": float})
async def multiply(args: dict) -> dict:
    return {"content": [{"type": "text", "text": str(args["a"] * args["b"])}]}

math_server = create_sdk_mcp_server(
    name="math",
    version="1.0.0",
    tools=[add, multiply],
)

async def main():
    options = ClaudeAgentOptions(
        mcp_servers={"math": math_server},
        allowed_tools=["mcp__math__add", "mcp__math__multiply"],
    )

    async with ClaudeSDKClient(options=options) as client:
        await client.query("Using the math tools, compute (3 + 7) * 2.")

        async for message in client.receive_response():
            print(message)


anyio.run(main)
Lorsque le script s’exécute, weave.init() affiche un lien vers votre projet. Ouvrez ce lien pour examiner les traces capturées correspondant à la requête de l’agent, aux réponses du modèle et aux appels d’outil.

Voir les traces de votre agent dans la vue Agents

Une fois le script exécuté, weave.init() affiche un lien vers votre project. Ouvrez la vue Agents pour examiner :
  • Une session contenant les tours de conversation.
  • Chaque tour de conversation affiché sous la forme d’un span invoke_agent avec des enfants chat et execute_tool imbriqués.
  • L’entrée complète, le model, la sortie, l’utilisation des jetons et les résultats des outils à chaque étape.
Pour en savoir plus sur l’affichage des données des Agents dans Weave, voir Voir l’activité de l’agent.