Passer au contenu principal
Pi est un agent de codage en ligne de commande. Weave trace automatiquement les sessions Pi, les appels LLM et les exécutions d’outils à l’aide de l’intégration createOtelExtension, qui est conforme aux conventions sémantiques GenAI. Cette page vous montre comment activer le tracing Weave dans une application Pi afin que vous puissiez observer le comportement de l’agent, déboguer les runs et analyser l’utilisation et le coût des jetons.
Cette intégration envoie les données de session Pi vers Weave. Ces données peuvent inclure les prompts des utilisateurs, les réponses du modèle, les entrées et sorties des outils, le contenu des fichiers lus par les outils Pi, les commandes shell et leur sortie, ainsi que les URL récupérées et le contenu des pages.L’intégration n’implémente pas le nettoyage des PII ni le masquage des données sensibles. Si vous ne pouvez pas envoyer ces données à Weave au regard de vos exigences de sécurité ou de conformité, n’activez pas le tracing Weave dans votre application Pi.

Prérequis

  • Node.js (v18 ou version ultérieure).
  • Un compte W&B et une clé API définie comme variable d’environnement WANDB_API_KEY.
Pi est un framework TypeScript et Node.js sans équivalent en Python. Pi nécessite le système de modules ESM. Votre projet doit utiliser "type": "module" dans package.json, ou compiler TypeScript en sortie ESM. Les projets CommonJS génèrent une erreur. Pour plus d’informations sur la configuration d’un projet ESM, voir l’intégration du SDK TypeScript.

Installer les paquets

Installez Weave, Pi et les définitions de types pour Node comme dépendances locales du project :

Tracer un prompt et une réponse dans Pi

L’exemple suivant montre la configuration minimale nécessaire pour tracer un seul prompt et une seule réponse dans Pi. Appelez weave.init() avant de créer votre session d’agent, puis transmettez createOtelExtension() en tant que fabrique d’extensions. Weave trace l’intégralité du cycle de vie de l’agent : la conversation, chaque cycle prompt/réponse (invoke_agent), les appels LLM individuels (chat) et les exécutions d’outils (execute_tool). SessionManager.inMemory() génère automatiquement l’ID de session.
Compilez et exécutez le script avec tsx, en remplaçant [FILENAME] par le nom de votre fichier TypeScript :
Lorsque vous exécutez votre code, vos traces apparaissent dans l’onglet Agents de votre projet Weave à l’adresse https://wandb.ai/[YOUR-TEAM]/[YOUR-PROJECT]/weave/agents. Weave capture les sessions Pi, les appels LLM et les exécutions d’outils à chaque run de votre application.

Étapes suivantes

Pour transformer cet exemple en conversation sur plusieurs tours de conversation, ajoutez d’autres prompts. Weave trace chaque appel à session.prompt() sous la forme d’un span invoke_agent distinct, tous imbriqués sous un seul span racine. L’agent conserve automatiquement le contexte d’un prompt à l’autre. Après avoir exécuté le code, l’onglet Agents affiche la chronologie complète de la session sur plusieurs tours de conversation, avec les appels LLM imbriqués, les exécutions d’outils, l’utilisation des jetons et le coût.