~/.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
1
Installer le package
2
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.3
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.4
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.
Weave regroupe les tours de conversation en une seule conversation dans la vue Agents à l’aide de
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.
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
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.