Skip to main content
Un Weave Op est une fonction versionnée qui journalise automatiquement tous les appels. Ce guide s’adresse aux développeurs qui utilisent Weave pour instrumenter leur code. Il explique comment créer des ops, personnaliser leur affichage dans l’interface Weights & Biases, contrôler les données journalisées par Weave, et gérer l’échantillonnage et la suppression.
Pour créer un op, décorez une fonction Python avec weave.op().
L’appel d’un op crée une nouvelle version de l’op si le code a été modifié depuis le dernier appel, et journalise les entrées et les sorties de la fonction.Les fonctions décorées avec @weave.op() se comportent normalement (sans gestion des versions du code ni suivi) si vous n’appelez pas weave.init('your-project-name') avant de les appeler.Vous pouvez servir ou déployer des ops à l’aide des outils de Weave.

Personnaliser les noms d’affichage

Un nom d’affichage personnalisé permet d’identifier plus facilement un op dans l’interface Weights & Biases, en particulier lorsque le nom de la fonction est générique ou généré automatiquement.
Pour personnaliser le nom d’affichage de l’op, définissez le paramètre name dans le décorateur @weave.op :

Appliquer des types et des couleurs

Pour mieux organiser vos ops dans l’interface Weights & Biases, appliquez des types et des couleurs personnalisés en ajoutant les arguments kind et color aux décorateurs @weave.op de votre code. Par exemple, le code suivant attribue à la fonction parente la valeur LLM pour kind et blue pour color, et à une fonction imbriquée la valeur tool pour kind et red pour color :
Les couleurs et les types s’appliquent alors à vos ops dans l’interface Weights & Biases, comme ceci :
L’interface Weights & Biases, affichant un appel parent avec le type LLM et la couleur blue, ainsi qu’un appel imbriqué avec le type tool et la couleur red.
Les valeurs disponibles pour kind sont :
  • agent
  • llm
  • tool
  • search
Les valeurs disponibles pour color sont :
  • red
  • orange
  • yellow
  • green
  • blue
  • purple

Personnaliser les entrées et sorties journalisées

Pour modifier les données que Weave journalise sans toucher à la fonction d’origine (par exemple, pour masquer des données sensibles), passez postprocess_inputs et postprocess_output au décorateur d’op.postprocess_inputs accepte un dict dont les clés sont les noms des arguments et les valeurs, les valeurs de ces arguments, puis renvoie un dict contenant les entrées transformées.postprocess_output accepte n’importe quelle valeur que la fonction renverrait normalement et renvoie la sortie transformée.

Contrôler le taux d’échantillonnage

Pour contrôler la fréquence à laquelle Weave trace les appels d’un op, définissez le paramètre tracing_sample_rate dans le décorateur @weave.op. Cette option est utile pour les ops appelés très fréquemment, pour lesquels il suffit de tracer une partie des appels.Collectez toutes les traces pendant le développement de l’agent afin de mieux façonner et comprendre son comportement. En production, configurez l’échantillonnage des traces pour réduire les coûts tout en préservant l’observabilité du comportement de votre agent.Weave applique les taux d’échantillonnage uniquement aux ops de plus haut niveau. Si un op imbriqué possède un taux d’échantillonnage mais qu’il est d’abord appelé par un op parent, Weave ignore le taux d’échantillonnage de l’op imbriqué.
Lorsque Weave n’échantillonne pas l’appel d’un op :
  • La fonction s’exécute normalement.
  • Weave ne reçoit aucune donnée de trace.
  • Weave ne trace pas les ops enfants de cet appel.
Le taux d’échantillonnage doit être compris entre 0.0 et 1.0 inclus.
Par défaut, Weave affiche un lien vers chaque Appel au moment où il le journalise. Pour ne plus afficher les liens d’Appel pendant la journalisation, définissez la variable d’environnement WEAVE_PRINT_CALL_LINK sur false. Cela permet de réduire la verbosité de la sortie et d’alléger vos journaux.

Supprimer un op

Supprimer une version d’un op la retire de votre projet. Utilisez cette opération pour faire le ménage parmi les versions obsolètes ou superflues.
Pour supprimer une version d’un op, appelez .delete() sur la réf. de l’op.
Toute tentative d’accès à un op supprimé renvoie une erreur.
Dernière modification le 30 septembre 2026