Agent Lens s’exécute sur le même backend que Weights & Biases. C’est pourquoi certains noms de configuration conservent le préfixe
wandb : la variable d’environnement WANDB_API_KEY, l’en-tête wandb-api-key, ainsi que les attributs de ressource wandb.entity et wandb.project. Utilisez ces noms tels quels.Authentification
Vous pouvez envoyer des spans au point de terminaison suivant :- Chemin :
/agents/otel/v1/traces - Méthode :
POST - Content-Type :
application/x-protobuf - URL de base :
https://trace.wandb.aipour le Cloud mutualisé.
opentelemetry-exporter-otlp-proto-http (Python) ou @opentelemetry/exporter-trace-otlp-proto (TypeScript). Le point de terminaison accepte également les encodages de contenu gzip et deflate.
Pour vous authentifier auprès du point de terminaison, définissez votre clé API dans la configuration de votre OTLPSpanExporter à l’aide de l’une des valeurs suivantes :
wandb-api-key: votre clé API Forge comme valeur.Authorization: authentification HTTP Basic avecapicomme nom d’utilisateur et votre clé API Forge comme mot de passe. Cette méthode est utile lorsque votre exportateur ou votre collecteur ne prend en charge que les en-têtes d’autorisation standard.
Acheminement vers un projet
Agent Lens achemine les spans vers un projet à l’aide des attributs de ressource OTel ou d’un en-tête de requête :- Attributs de ressource (recommandé) : dans la ressource de votre
TracerProvider, définissezwandb.entitysur le nom de votre équipe ou de votre utilisateur Forge, etwandb.projectsur le nom du projet. - En-tête
project_id: définissez la valeur sur[YOUR-TEAM]/[YOUR-PROJECT].
Structurer les spans pour l’onglet Conversations
Agent Lens accepte n’importe quel span OTel et en stocke tous les attributs, mais l’onglet Conversations n’affiche que les spans conformes aux conventions sémantiques OTel GenAI. Définissezgen_ai.operation.name sur chaque span pour indiquer à Agent Lens ce qu’il représente :
Deux autres attributs déterminent le regroupement :
gen_ai.conversation.id: regroupe les tours de conversation au sein d’une conversation. Utilisez un identifiant stable pendant toute la durée de vie de la conversation.gen_ai.agent.name: regroupe les conversations sous un agent nommé dans l’onglet Conversations.
gen_ai.request.model, gen_ai.usage.input_tokens et gen_ai.usage.output_tokens, sont facultatifs, mais enrichissent l’affichage avec le nom des modèles et le nombre de jetons. Pour en savoir plus sur le modèle de données d’agent auquel correspondent ces spans, voir Tracer vos agents.
Configurer uniquement avec des variables d’environnement
Si votre application ou votre collecteur lit les variables d’environnement standard de l’exportateur OTel, vous pouvez définir les variables suivantes pour acheminer les spans vers Agent Lens sans modifier votre code :OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: le point de terminaison Agent Lens vers lequel votre exportateur envoie les spans.OTEL_EXPORTER_OTLP_TRACES_HEADERS: authentifie chaque requête avec votre clé API Forge, transmise dans l’en-têtewandb-api-key.OTEL_RESOURCE_ATTRIBUTES: envoie les spans vers votre projet. Définissezwandb.entitysur le nom de votre équipe Forge ou votre nom d’utilisateur Forge, etwandb.projectsur le nom du projet.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: configure l’exportateur pour qu’il envoie du protobuf OTLP via HTTP. La valeur doit êtrehttp/protobuf, car le point de terminaison n’accepte que les charges utiles protobuf.
Exemple : émettre des spans d’agent sans le SDK Agent Lens
L’exemple suivant instrumente un tour de conversation minimal d’un agent à l’aide des seuls packages OTel. Il émet un spaninvoke_agent pour le tour de conversation, un span chat pour l’appel LLM et un span execute_tool pour un appel d’outil, puis les exporte vers le point de terminaison des agents d’Agent Lens.
Commencez par installer les dépendances requises :
YOUR-TEAM, YOUR-PROJECT et YOUR_API_KEY par vos propres valeurs, puis exécutez-le :
invoke_agent avec le même gen_ai.conversation.id. Chaque tour de conversation constitue le span racine de sa propre trace : les tours de conversation n’ont donc pas besoin de partager un span parent.
Une fois que votre application a exporté les spans, ouvrez la vue Conversations de votre projet Agent Lens.