Prérequis
- Node.js v22.14 ou version ultérieure.
- OpenClaw
2026.4.25ou version ultérieure avec l’API de plugin. - Un compte W&B et une clé API.
- Un projet Weave (
[YOUR-TEAM]/[YOUR-PROJECT]) pour recevoir des traces.
Installer le plugin
1
Installer le package
weave-openclaw (weave seul correspond au SDK W&B, pas à ce plugin). La passerelle OpenClaw charge le plugin via sa configuration. Vous ne l’importez pas dans le code de l’application.2
Ajouter le plugin à la configuration de votre passerelle
L’emplacement de configuration par défaut est Définissez
~/.openclaw/openclaw.json (JSON5, qui autorise les commentaires et les virgules finales). Exécutez openclaw onboard pour en générer le squelette si vous n’en avez pas encore.
Remplacez [YOUR-TEAM] et [YOUR-PROJECT] par les valeurs de votre projet.hooks.allowConversationAccess sur true afin qu’OpenClaw exécute les hooks avec contenu (llm_input, llm_output, agent_end) et que les spans incluent le texte d’entrée et de sortie, les arguments des outils et les résultats des outils.diagnostics.enabled est activé par défaut. Définissez-le explicitement uniquement si vous devez le désactiver.3
Redémarrer la passerelle et vérifier
Redémarrez la passerelle OpenClaw, puis exécutez
/weave status dans n’importe quelle interface de chat OpenClaw pour confirmer que le plugin est actif. Les traces apparaissent dans https://wandb.ai/[YOUR-TEAM]/[YOUR-PROJECT] quelques secondes après la première exécution de votre agent.Afficher les traces OpenClaw dans Weave
- Accédez à https://wandb.ai et sélectionnez votre projet.
- Dans le menu latéral, sélectionnez Agents.
- Sélectionnez l’onglet Conversations pour afficher toutes les conversations d’agent enregistrées pour votre projet.
- Sélectionnez une conversation pour examiner l’arborescence complète de la conversation.
Référence de configuration
weave dans openclaw.json.
Le champ apiKey prend en charge quatre sources d’authentification, résolues dans cet ordre :
- Un objet
SecretRefavecsource: "env"ousource: "file"(voir la ligne 10 dans l’exemple suivant). - Une chaîne littérale
apiKey(prise en charge, mais non recommandée). - La variable d’environnement
WANDB_API_KEY. - Une entrée
~/.netrcpour l’hôte Weave, renseignée parwandb login.
captureContent est défini sur true par défaut. Lorsque captureContent est true, le plugin émet également les messages d’entrée et de sortie, les arguments des outils et les résultats des outils selon le format de charge utile gen_ai.input.messages et gen_ai.output.messages. Le plugin consigne les sous-agents, les événements de compactage, la détection de boucle, les tentatives de réessai et le dimensionnement du contexte sous forme d’attributs supplémentaires et d’événements de span.
Définissez captureContent sur false pour désactiver la capture afin de respecter les politiques de conformité ou de conservation.
Cloud dédié de W&B ou instances auto-hébergées
Dépannage
openclaw, ou au flux de logs de votre gestionnaire de processus si vous l’avez lancé en tant que démon.
Le plugin est chargé, mais aucun span ne s’affiche
- Exécutez
/weave status. Si le cycle de vie estdisabled,config-errorounot-started, le plugin ne s’est pas activé. Vérifiez le journal de la passerelle pour y trouverweave: config.entity is required,weave: configuration errorou[weave] incompatible plugin SDK. - Vérifiez que vous n’avez pas défini
diagnostics.enabled: falsedans la configuration de la passerelle. Ce champ doit être défini surtrue. - Vérifiez que l’entité et le projet correspondent au slug de l’URL du projet Weave que vous inspectez.
/weave statusdoit afficherproject=[YOUR-TEAM]/[YOUR-PROJECT]. - Vérifiez la source d’authentification.
/weave statusdoit afficherauth=.... SiWANDB_API_KEY envs’affiche alors que vous avez défini la clé dans une autre variable d’environnement, le plugin lit la mauvaise clé.
Les spans arrivent, mais le texte d’entrée et de sortie est vide
plugins.entries.weave.hooks.allowConversationAccess: true dans votre configuration, puis redémarrez la passerelle. La structure des spans ainsi que les données de coût et d’utilisation transitent via des événements de diagnostic, et non via des hooks ; elles continuent donc de fonctionner même lorsque allowConversationAccess est défini sur false.