> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Plugin Codex

> Tracez les sessions agentiques, les appels LLM et les exécutions d’outils de Codex dans W&B Weave.

export const AgentLensBanner = ({href}) => <Tip>
    <strong>This workflow is also available in CoreWeave Agent Lens.</strong> Agent Lens is the Forge experience built for tracing, monitoring, and analyzing AI agents, with automated insights into agent failures and user intents. It uses the same trace data as Weights & Biases Weave, so the traces you already send appear there with nothing to migrate.{' '}
    <a href={href || '/products/agent-lens'}>{href ? 'See how to do this in Agent Lens' : 'Learn about Agent Lens'}</a>.
  </Tip>;

<AgentLensBanner href="/fr/products/agent-lens/integrations/codex" />

Le plugin Weave pour Codex trace automatiquement chaque tour de conversation Codex et envoie les données structurées vers W\&B Weave. Chaque appel de modèle, chaque exécution d’outil et chaque étape de raisonnement sont journalisés, sans aucune modification de votre flux de travail Codex. Utilisez ces traces pour déboguer des sessions, auditer l’utilisation des outils et surveiller les coûts et la latence de vos runs.

Le plugin lit les fichiers de session rollout générés par Codex (`~/.codex/sessions/**/rollout-*.jsonl`) pour reconstituer les spans. Il s’exécute entièrement en dehors du chemin critique de Codex grâce à un Stop hook de type « fire-and-forget », si bien que Codex n’attend jamais le réseau.

<Warning>
  Par défaut, ce plugin capture le contenu des spans : vos prompts, les réponses et le raisonnement du modèle, les arguments des appels d’outils et les résultats des outils. Ces résultats comprennent les commandes shell, leur sortie et le contenu des fichiers. Ces données sont envoyées à votre instance Weave.

  Aucun nettoyage des données personnelles (PII) ni masquage des données sensibles n’est mis en œuvre. Pour n’envoyer que la structure, l’utilisation des jetons, le modèle et les durées (sans prompts, code ni sortie), définissez `WEAVE_CODEX_CAPTURE_CONTENT=0`. Si vos exigences de sécurité ou de conformité ne vous permettent pas d’envoyer ces données vers Weave, n’installez pas ce plugin.
</Warning>

<h2 id="prerequisites">
  Prérequis
</h2>

* [Node.js](https://nodejs.org/) v20 ou version ultérieure.
* [OpenAI Codex CLI](https://github.com/openai/codex) avec son système de hooks.
* Un compte CoreWeave Forge et une [clé API](https://forge.coreweave.com/settings#apikeys) définie dans la variable d’environnement `WANDB_API_KEY`.
* Un projet Weave (`[YOUR-TEAM]/[YOUR-PROJECT]`) destiné à recevoir les traces.

<h2 id="install-the-plugin">
  Installer le plugin
</h2>

<Steps>
  <Step title="Installer le package">
    ```bash lines theme={"system"}
    npm install -g weave-codex
    ```
  </Step>

  <Step title="Définir les identifiants d’authentification et le projet">
    ```bash lines theme={"system"}
    wandb login
    export WEAVE_PROJECT="YOUR-TEAM/YOUR-PROJECT"
    ```

    Au lieu d’utiliser `wandb login`, vous pouvez aussi définir directement la variable d’environnement `WANDB_API_KEY`. Pour connaître l’ensemble des règles de priorité, consultez [Ordre de résolution des identifiants d’authentification](#credential-resolution-order).
  </Step>

  <Step title="Installer le hook Stop">
    ```bash lines theme={"system"}
    weave-codex install
    ```

    Cette commande ajoute un Stop hook au fichier `~/.codex/hooks.json`. À la fin de chaque tour de conversation Codex, le hook lance un worker détaché qui lit les nouvelles lignes du rollout à partir d’un curseur propre à chaque session, reconstruit les spans et les exporte vers Weave.
  </Step>

  <Step title="Approuver le hook dans Codex">
    Codex considère 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 vous y êtes invité.

    Vous pouvez aussi 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é.
  </Step>
</Steps>

Vous pouvez désormais utiliser Codex normalement : chaque tour de conversation terminé apparaît dans Weave en une seconde environ.

<h2 id="view-codex-traces-in-weave">
  Afficher les traces Codex dans Weave
</h2>

Après avoir exécuté au moins une session Codex, ouvrez votre projet dans l’interface utilisateur de Weights & Biases :

1. Accédez à [Forge](https://forge.coreweave.com/wandb) et sélectionnez votre projet.
2. Dans la barre latérale, sélectionnez **Agents** pour afficher la vue de chat sur plusieurs tours de conversation et le regroupement par version d’agent, ou sélectionnez **Traces** pour afficher l’arborescence brute des spans.
3. Sélectionnez une conversation pour examiner la hiérarchie complète des tours de conversation.

Pour en savoir plus sur la vue Agents, consultez [Afficher l’activité des agents](/fr/products/wandb/weave/guides/tracking/view-agent-activity).

Le plugin émet une trace OTEL par tour de conversation Codex, conformément aux [conventions sémantiques GenAI](https://opentelemetry.io/docs/specs/semconv/gen-ai/) :

| Span | Émis | 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 cumulée des jetons, prompt de l’utilisateur et réponse finale (lorsque la capture du contenu est activée) |
| `chat <model>` | Par appel de modèle | `gen_ai.usage.*` (jetons d’entrée, de sortie, mis en cache et de raisonnement), motif de fin, `server.address`, sortie de l’assistant (lorsque la capture du 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 du contenu est activée) ; les appels MCP incluent également `mcp.server.name` |

Dans la vue Agents, Weave regroupe les tours de conversation en une seule conversation à l’aide de `gen_ai.conversation.id`, qui correspond à l’ID de session Codex sur chaque span. Les horodatages des spans sont antidatés à partir de ceux du fichier de rollout, de sorte que les durées reflètent le temps d’exécution réel.

Les traces s’affichent également dans n’importe quel backend compatible OTEL, puisque tous les attributs respectent les conventions sémantiques GenAI.

<h3 id="known-limitations">
  Limitations connues
</h3>

* Les commandes `codex` (TUI interactive) et `codex exec` sont prises en charge. Les commandes `codex mcp` et `app-server` ne sont pas couvertes, car elles ne déclenchent aucun hook.
* Un sous-agent lancé apparaît uniquement 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 ayant échoué ; ceux-ci ne sont donc pas capturés.

<h2 id="configuration-reference">
  Référence de configuration
</h2>

Cette section répertorie les paramètres permettant de 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`.

| 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) |

<h3 id="credential-resolution-order">
  Ordre de résolution des identifiants d’authentification
</h3>

Le plugin résout les identifiants d’authentification dans l’ordre suivant :

1. Variables d’environnement (`WANDB_API_KEY`, `WEAVE_PROJECT`).
2. `~/.weave-codex/settings.json`.
3. Entrée du fichier `~/.netrc` correspondant à l’hôte Weave.

<h3 id="wb-dedicated-cloud-or-self-hosted-instances">
  Instances W\&B en Cloud dédié ou autohébergées
</h3>

Définissez `WANDB_BASE_URL` sur l’hôte de votre installation avant d’exécuter Codex :

```bash lines theme={"system"}
export WANDB_BASE_URL=https://YOUR-INSTANCE.wandb.io
```

<h2 id="check-plugin-status">
  Vérifier le statut du plugin
</h2>

Vous pouvez utiliser les commandes CLI suivantes pour vérifier le statut du plugin ou résoudre d’éventuels problèmes :

```bash lines theme={"system"}
weave-codex status
```

Chaque ligne affiche `✓` (OK), `✗` (action requise) ou `-` (pas encore actif, sans que ce soit une erreur). Si les tours de conversation n'apparaissent pas dans Weave, consultez le journal du collecteur :

```bash lines theme={"system"}
cat ~/.weave-codex/logs/collector.log
```

<h2 id="troubleshooting">
  Dépannage
</h2>

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`.

<h3 id="no-traces-appear-after-running-codex">
  Aucune trace n’apparaît après l’exécution de Codex
</h3>

1. Exécutez `weave-codex status`. Vérifiez que tous les contrôles réussissent.
2. Vérifiez que le hook est approuvé. Si vous avez ignoré la demande d’approbation lors du premier lancement, exécutez de nouveau `codex` et donnez votre approbation lorsque vous y êtes invité, ou définissez `bypass_hook_trust = true` dans `~/.codex/config.toml`.
3. Vérifiez que `WEAVE_PROJECT` est défini sur un slug `entity/project` valide. `weave-codex status` affiche le projet résolu.
4. Vérifiez la source d’authentification. `weave-codex status` affiche la source d’identifiants d’authentification résolue. Si elle indique `WANDB_API_KEY env` alors que vous avez défini la clé ailleurs, le plugin lit une valeur incorrecte.

<h3 id="turns-appear-but-inputoutput-text-is-empty">
  Les tours de conversation s’affichent, mais le texte d’entrée et de sortie est vide
</h3>

La capture du contenu est peut-être désactivée. Vérifiez que `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`.

<h3 id="errors-sending-traces-to-weave">
  Erreurs lors de l’envoi des traces vers Weave
</h3>

Si le plugin est actif et génère des spans qui n’apparaissent pas dans Weave, recherchez une erreur d’exportation dans le journal du collecteur et consultez le tableau ci-dessous.

| Symptôme | Cause la plus probable | Solution |
| - | - | - |
| Erreur 401 ou 403 renvoyée par `trace.wandb.ai` | Clé API non valide ou de portée limitée | Vérifiez que la clé est à jour et que l’équipe possède l’entity et le projet. Contrôlez la source d’identifiants d’authentification résolue avec `weave-codex status`. |
| Erreur 404 renvoyée par 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. |

<h3 id="hook-locked-environments">
  Environnements à hooks verrouillés
</h3>

Si `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 repli :

```toml lines theme={"system"}
# ~/.codex/config.toml
notify = ["sh", "/Users/you/.weave-codex/stop-hook.sh"]
```

<h2 id="uninstall">
  Désinstallation
</h2>

```bash lines theme={"system"}
weave-codex uninstall
```

Cette opération supprime uniquement les entrées `weave-codex` du fichier `~/.codex/hooks.json`.


## Related topics

- [Choisir une intégration d’agent](/fr/products/wandb/weave/agent-integration-quickstart.md)
