Weave for Agents est en préversion publique. Les fonctionnalités, les API et l’interface utilisateur de la vue Agents peuvent encore évoluer avant la disponibilité générale.
~/.codex/sessions/**/rollout-*.jsonl) pour reconstruire les spans. Il s’exécute entièrement en dehors du chemin critique de Codex via un hook Stop en fire-and-forget, de sorte que Codex n’est jamais bloqué par le réseau.
Prérequis
- Node.js v20 ou version ultérieure.
- OpenAI Codex CLI avec le système de hooks.
- Un compte W&B et une clé API définie dans la variable d’environnement
WANDB_API_KEY. - Un projet Weave (
[YOUR-TEAM]/[YOUR-PROJECT]) pour recevoir des traces.
Installer le plugin
Configurer les identifiants et le projet
WANDB_API_KEY comme variable d’environnement au lieu d’utiliser wandb login. Voir Credential resolution order pour connaître les règles de priorité complètes.Installer le hook Stop
~/.codex/hooks.json. À la fin de chaque tour de conversation Codex, le hook lance un processus détaché qui lit les nouvelles lignes de rollout à partir d’un curseur par session, reconstruit les spans et les exporte vers Weave.Approuver le hook dans Codex
Codex marque les hooks nouvellement ajoutés comme non fiables et ne les exécute pas tant que vous ne les avez pas approuvés. Au prochain lancement de
codex, approuvez le hook weave-codex lorsque l’invite s’affiche.Vous pouvez aussi définir bypass_hook_trust = true dans ~/.codex/config.toml pour ignorer l’invite.Exécutez weave-codex status pour vérifier que tout est correctement configuré.Voir les traces Codex dans Weave
- Accédez à https://wandb.ai et sélectionnez votre projet.
- Dans la barre latérale, sélectionnez Agents pour afficher la vue de chat multi-tours et le regroupement par version d’agent, ou sélectionnez Traces pour afficher l’arborescence brute des spans.
- Sélectionnez une conversation pour examiner la hiérarchie complète des tours de conversation.
| Span | Émis pour | Attributs clés |
|---|---|---|
invoke_agent codex | Par tour de conversation (span racine) | Nom ou version de l’agent, gen_ai.conversation.id, modèle, utilisation totale des jetons, prompt utilisateur et réponse finale (lorsque la capture de contenu est activée) |
chat <model> | Par appel au modèle | gen_ai.usage.* (jetons d’entrée, de sortie, mis en cache et de raisonnement), raison de fin, server.address, sortie de l’assistant (lorsque la capture de contenu est activée) |
execute_tool <name> | Par exécution d’outil | gen_ai.tool.name, gen_ai.tool.call.id, arguments et résultat (lorsque la capture de contenu est activée) ; les appels MCP incluent également mcp.server.name |
gen_ai.conversation.id, défini sur l’ID de session Codex pour chaque span. Les horodatages des spans sont antidatés à partir des horodatages des fichiers de rollout, de sorte que les durées reflètent le temps d’exécution réel.
Les traces s’affichent également dans tout backend compatible OTEL, puisque tous les attributs suivent les conventions sémantiques GenAI.
Limitations connues
- Les commandes
codex(TUI interactif) etcodex execsont prises en charge. Les commandescodex mcpetapp-serverne sont pas couvertes, car elles ne déclenchent aucun hook. - Un sous-agent généré n’apparaît que sous la forme de son appel d’outil
spawn_agent. Ses propres appels au modèle et exécutions d’outils ne sont pas capturés. - Le hook Stop ne se déclenche pas pour les tours de conversation interrompus ou ayant échoué ; ils ne sont donc pas capturés.
Référence de configuration
~/.weave-codex/, notamment settings.json, le shim du hook, les curseurs par session et le fichier journal situé dans logs/collector.log.
| Paramètre | Variable d’environnement | Clé settings.json | Par défaut |
|---|---|---|---|
| Clé API W&B | WANDB_API_KEY | wandb_api_key | ~/.netrc (via wandb login) |
| Projet Weave | WEAVE_PROJECT | weave_project | Aucun (requis, entity/project) |
| URL de base | WANDB_BASE_URL | wandb_base_url | https://trace.wandb.ai |
| Capture du contenu | WEAVE_CODEX_CAPTURE_CONTENT | capture_content | true |
| Journalisation de débogage | WEAVE_CODEX_DEBUG | debug | Désactivée (les erreurs sont toujours journalisées) |
Ordre de résolution des identifiants d’authentification
- Variables d’environnement (
WANDB_API_KEY,WEAVE_PROJECT). ~/.weave-codex/settings.json.- Entrée
~/.netrcpour l’hôte Weave.
W&B Cloud dédié ou instances autohébergées
WANDB_BASE_URL avec l’hôte de votre installation avant d’exécuter Codex :
Vérifier le statut du plugin
✓ (OK), ✗ (intervention requise) ou - (pas encore actif, mais sans erreur). Si les tours de conversation n’apparaissent pas dans Weave, vérifiez le journal du collecteur :
Dépannage
~/.weave-codex/logs/collector.log constitue la principale source de diagnostic. Le plugin journalise toujours les erreurs, quel que soit le paramètre debug.
Aucune trace n’apparaît après l’exécution de Codex
- Exécutez
weave-codex status. Vérifiez que tous les contrôles sont réussis. - Vérifiez que le hook est approuvé. Si vous avez ignoré l’invite d’approbation lors du premier lancement, exécutez à nouveau
codexet approuvez-le lorsque l’invite s’affiche, ou définissezbypass_hook_trust = truedans~/.codex/config.toml. - Vérifiez que
WEAVE_PROJECTest défini sur un slugentity/projectvalide.weave-codex statusaffiche le projet résolu. - Vérifiez la source d’authentification.
weave-codex statusaffiche la source d’identifiant d’authentification résolue. SiWANDB_API_KEY envs’affiche alors que vous avez défini la clé ailleurs, le plugin lit la mauvaise valeur.
Les tours de conversation apparaissent, mais le texte d’entrée et de sortie est vide
WEAVE_CODEX_CAPTURE_CONTENT n’est pas défini sur 0 et que capture_content n’est pas défini sur false dans ~/.weave-codex/settings.json.
Erreurs lors de l’envoi de traces vers Weave
| Symptôme | Cause la plus probable | Correctif |
|---|---|---|
401 ou 403 depuis trace.wandb.ai | Clé API non valide ou dont le scope est limité | Vérifiez que la clé est toujours valide et que l’équipe possède l’entité et le projet. Vérifiez la source d’identifiants résolue avec weave-codex status. |
| 404 depuis le point de terminaison des agents | URL de base incorrecte | Pour les installations en Cloud dédié, définissez WANDB_BASE_URL sur l’hôte de votre installation. |
| Connexion refusée ou erreur DNS | DNS, proxy ou pare-feu | Vérifiez que l’hôte peut joindre trace.wandb.ai (cloud) ou l’hôte de votre installation (Cloud dédié) sur le port 443. |
Environnements avec hooks verrouillés
allow_managed_hooks_only est défini dans votre configuration Codex, vous ne pouvez pas ajouter directement de hooks personnalisés. Utilisez plutôt le programme notify de Codex comme déclencheur de remplacement :
Désinstaller
weave-codex de ~/.codex/hooks.json.