Tracer des agents Claude Agent SDK avec Weave
- Python
- TypeScript
Le SDK Weave patche automatiquement le Claude Agent SDK pour 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 doté d’outils MCP sur plusieurs tours de conversation via
query(). Weave trace automatiquement, de bout en bout, la conversation, les appels de modèle et les appels d’outil.Prérequis
- Un compte CoreWeave Forge et une clé API définie dans la variable d’environnement
WANDB_API_KEY. - Une clé API Anthropic définie dans la variable d’environnement
ANTHROPIC_API_KEY. - Python 3.10 ou version ultérieure.
Installer les paquets
Installez les paquets suivants dans votre environnement de développement. Le paquetweave capture les traces, claude-agent-sdk fournit l’environnement d’exécution de l’agent et les autres paquets sont nécessaires à l’outil d’exemple.
Initialiser Weave dans votre code
- Python
- TypeScript
Ajoutez Chaque appel à
weave.init au projet, mettez à jour les noms de votre équipe et de votre projet CoreWeave Forge, puis créez un agent comme vous le feriez habituellement. weave.init active le patching automatique qui capture les traces issues du Claude Agent SDK.Cet exemple définit un outil MCP wikipedia_search et exécute une conversation en trois tours. Chaque tour de conversation correspond à un appel query() distinct, mais les tours suivants transmettent resume avec l’ID de session du premier tour afin que tous les tours soient regroupés en une seule conversation dans la vue Weave Agents. Les deux premiers tours déclenchent des recherches sur Wikipédia, tandis que le troisième s’appuie sur le contexte de la conversation précédente pour produire une synthèse sans appel d’outil.query() produit un span racine invoke_agent. Comme les tours de conversation suivants reprennent la même session, Weave attribue le même gen_ai.conversation.id à tous les spans et les regroupe en une seule conversation dans la vue Agents. ResultMessage.session_id contient l’ID à réutiliser, et resume accepte None lors du premier tour, ce qui démarre une nouvelle session.Sans resume, chaque tour démarre sa propre session et apparaît comme une conversation distincte. ClaudeSDKClient fait exception : il maintient une même session ouverte pendant toute la durée du bloc async with, de sorte que les tours que vous envoyez via le même client sont déjà regroupés. Weave patche ces deux approches.Consulter les traces de votre agent dans la vue Agents
Une fois le script exécuté,weave.init() affiche un lien vers votre projet. Ouvrez la vue Agents pour examiner :
- Une session regroupant les tours de conversation.
- Chaque tour de conversation, représenté par un span
invoke_agentcontenant des spans enfants imbriquéschatetexecute_tool. - L’entrée complète, le modèle, la sortie, l’utilisation des jetons et les résultats des outils à chaque étape.