Suivre la progression
Recevez les événements des agents et des workflows pendant leur exécution.
Passez createReporter() dans l’option observe de la tâche pour afficher sa progression dans le terminal. Vous verrez la préparation, l’activité de l’agent et le bilan de l’exécution.
Chaque ligne commence par [API review · pass 1]. Le reporter affiche les phases, les appels d’outils, le texte de l’agent et les avertissements, puis un résumé : durée, code de sortie et tokens.
Référence API : ReporterOptions.
Traiter les événements vous-même
Section intitulée « Traiter les événements vous-même »Passez votre propre fonction comme observe. Filtrez sur kind avant de lire les autres champs.
Un dispatch peut comprendre plusieurs échanges avec l’agent, par exemple lorsqu’il répare une réponse typée.
Référence API : AgentObservation.
Le harness intégré ajoute les événements step, subagent, tool-output, tool-denied, hook, compaction et model-*. AgentObservation décrit les types d’événements et leurs champs.
Pour des gestionnaires asynchrones associés à chaque type d’événement, construisez la fonction de rappel avec createCustomReporter(). Le dispatch attend ses gestionnaires avant de rendre la main.
Suivre un workflow
Section intitulée « Suivre un workflow »start({ observe }) reçoit les événements du workflow : transitions de tâches, tentatives, reprises, consommation et fin de l’exécution. Les événements d’agent restent attachés à chaque tâche : passez observe dans sa requête.
Référence API : WorkflowEvent.
Traiter les erreurs des observateurs
Section intitulée « Traiter les erreurs des observateurs »Une exception dans observe est enregistrée dans result.observerErrors. Elle n’annule pas la tâche et ne change pas le résultat du workflow. Utilisez un signal d’annulation pour arrêter le travail depuis votre code.
Pour arrêter une exécution, passez un signal (limites et annulation).
Tracer toute une exécution
Section intitulée « Tracer toute une exécution »observe voit un seul dispatch ou un seul workflow. Pour recevoir au même endroit les événements de workflow, d’agent et d’opération, ou pour exporter des traces, utilisez le hub d’observation et OpenTelemetry. Chaque dispatch enregistre aussi ses événements dans un journal que vous pouvez relire ensuite.
Ce que rapporte chaque agent
Section intitulée « Ce que rapporte chaque agent »Tous les agents émettent du texte, des appels d’outils et leurs résultats. Les autres détails dépendent du protocole de leur CLI.
| Agent | Identifiants d’appels d’outils | Raisonnement | Modifications de fichiers | Aussi |
|---|---|---|---|---|
| Claude Code | Natifs, parentCallId pour les sous-agents | Blocs de réflexion | Non | message-usage par message ; text-delta avec createClaudeHarness({ partialMessages: true }). |
| Codex | Identifiants d’éléments natifs | Éléments de raisonnement | file-change | Les outils MCP s’appellent mcp__<server>__<tool> ; un code de sortie non nul active isError. |
| Copilot CLI | Natifs | Oui | Non | Les erreurs de session arrivent en warning. |
| Kimi Code | Natifs | Oui | Non | Les nouvelles tentatives d’étape arrivent en warning. |
| Antigravity | <conversation>:<step index> | Non | Non | Le texte arrive par fragments ; un outil sans sortie exposée a un preview vide. |
| Harness intégré | Fournis par le fournisseur de modèle | Quand le modèle le renvoie | Non | text-delta pendant le streaming du modèle, ainsi que les événements du harness décrits ci-dessus. |
- Gardez
observerapide. Le travail asynchrone passe par une file limitée, et un récepteur qui prend du retard perd des événements (règles de livraison). - Une session de terminal interactive ouverte avec
attach()ne produit aucun événement.
API : createReporter · createCustomReporter · AgentObservation · WorkflowEvent · ReporterOptions.