~/.codex/sessions/**/rollout-*.jsonl) pour reconstituer les spans. Il s’exécute entièrement hors du chemin critique de Codex, via un Stop hook de type « fire-and-forget » : Codex n’attend donc jamais le réseau.
Il s’agit d’un plugin Weights & Biases Weave. Aucune version CoreWeave Forge n’est encore disponible. Les traces envoyées par le plugin apparaissent dans Agent Lens, car Agent Lens et Weave partagent les mêmes données de trace.
Prérequis
- Node.js v20 ou version ultérieure.
- OpenAI Codex CLI avec le système de hooks.
- Un compte CoreWeave Forge et une clé API définie dans la variable d’environnement
WANDB_API_KEY. - Un projet Agent Lens (
[YOUR-TEAM]/[YOUR-PROJECT]) destiné à recevoir les traces.
Installer le plugin
1
Installer le package
2
Définir les identifiants d’authentification et le projet
wandb login, vous pouvez aussi définir directement la variable d’environnement WANDB_API_KEY. Voir Ordre de résolution des identifiants d’authentification pour connaître l’ensemble des règles de priorité.3
Installer le hook Stop
~/.codex/hooks.json. À la fin de chaque tour de conversation Codex, le hook lance un worker détaché qui lit les nouvelles lignes de rollout à partir d’un curseur propre à chaque session, reconstruit les spans et les exporte vers Agent Lens.4
Approuver le hook dans Codex
Codex considère les hooks nouvellement ajoutés comme non approuvés 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 vous y êtes invité.Vous pouvez également définir bypass_hook_trust = true dans ~/.codex/config.toml pour ignorer cette invite.Exécutez weave-codex status pour vérifier que tout est correctement configuré.Afficher les traces Codex dans Agent Lens
Après avoir exécuté au moins une session Codex, ouvrez votre projet dans l’interface d’Agent Lens :- Accédez à CoreWeave Forge, sélectionnez Agent Lens dans le menu des produits, puis sélectionnez votre projet dans le sélecteur de projet, en haut du menu latéral.
- Dans le menu latéral, sélectionnez Conversations.
- Sélectionnez une conversation pour examiner la hiérarchie complète de ses tours de conversation.
Dans l’onglet Conversations, Agent Lens regroupe les tours en une seule conversation à l’aide de
gen_ai.conversation.id, dont la valeur correspond à l’ID de session Codex sur chaque span. Les horodatages des spans sont antidatés à partir de ceux du fichier de rollout : les durées reflètent donc le temps d’exécution réel.
Comme tous les attributs suivent les conventions sémantiques GenAI, les traces s’affichent également dans n’importe quel backend compatible OTEL.
Limitations connues
- Les commandes
codex(TUI interactive) etcodex execsont prises en charge. Les commandescodex mcpetapp-serverne sont pas couvertes, car elles ne déclenchent aucun hook. - Un subagent lancé n’apparaît que sous la forme de son appel d’outil
spawn_agent. Ses propres appels de modèle et exécutions d’outils ne sont pas capturés. - Le Stop hook ne se déclenche pas pour les tours de conversation interrompus ou terminés en erreur, qui ne sont donc pas capturés.
Référence de configuration
Cette section répertorie les paramètres que vous pouvez utiliser pour personnaliser le comportement du plugin. Les fichiers de configuration et d’exécution sont stockés dans~/.weave-codex/, notamment settings.json, le shim du hook, les curseurs par session et le fichier journal logs/collector.log.
Ordre de résolution des identifiants d’authentification
Le plugin résout les identifiants d’authentification dans l’ordre suivant :- Variables d’environnement (
WANDB_API_KEY,WEAVE_PROJECT). ~/.weave-codex/settings.json.- Entrée du fichier
~/.netrccorrespondant à l’hôte Agent Lens.
Vérifier le statut du plugin
Vous pouvez utiliser ces commandes CLI pour vérifier le statut du plugin ou résoudre d’éventuels problèmes :✓ (OK), ✗ (action requise) ou - (pas encore actif, sans que ce soit une erreur). Si les tours de conversation n’apparaissent pas dans Agent Lens, consultez le journal du collecteur :
Dépannage
Les sections suivantes décrivent les problèmes courants et la manière de les résoudre. Le journal du collecteur, situé dans~/.weave-codex/logs/collector.log, constitue la principale source de diagnostic. Le plugin journalise toujours les erreurs, quelle que soit la valeur du 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 réussissent. - Vérifiez que le hook est approuvé. Si vous avez ignoré l’invite d’approbation lors du premier lancement, exécutez à nouveau
codexet donnez votre approbation lorsque vous y êtes invité, 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 résolue des identifiants d’authentification. Si elle indiqueWANDB_API_KEY envalors que vous avez défini la clé ailleurs, le plugin lit une valeur erronée.
Les tours de conversation s’affichent, mais le texte d’entrée et de sortie est vide
La capture du contenu est peut-être désactivée. Vérifiez queWEAVE_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 des traces vers Agent Lens
Si le plugin est actif et génère des spans qui n’apparaissent pas dans Agent Lens, recherchez une erreur d’exportation dans le journal du collecteur et reportez-vous au tableau ci-dessous.Environnements aux hooks verrouillés
Siallow_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 repli :
Désinstallation
weave-codex du fichier ~/.codex/hooks.json.