Skip to main content
Récupérez les données de sessions, d’événements et d’évaluations (et déclenchez des réévaluations) directement depuis un script ou un agent de codage, avec du JSON propre sur stdout qui s’enchaîne directement dans jq. Ces recettes transforment les données de Failproof AI Observability en quelque chose qu’un utilisateur de terminal ou un agent de codage IA (Claude Code, Cursor) peut interroger et automatiser, sans cliquer dans le tableau de bord. Les patterns ci-dessous sont prêts à être copiés-collés pour la CLI Failproof AI Observability (agenteye). Pour l’installation, l’authentification et la liste complète des options, consultez CLI ; exécutez agenteye -h ou agenteye <command> -h pour l’aide intégrée.

Règles d’or

  1. Les options globales vont avant la commande. agenteye --json sessions est correct ; agenteye sessions --json ne l’est pas. Les globales sont --json, --base-url, --org, --token, --insecure/--secure, --timeout, --quiet, --no-color.
  2. Passez --json dès que vous analysez la sortie. Les données vont sur stdout en JSON ; les statuts lisibles par l’humain et les erreurs vont sur stderr, donc stdout reste propre pour être transmis à jq.
  3. Basez-vous sur le code de sortie, pas sur le texte de stderr : 0 ok · 1 erreur inattendue · 2 arguments invalides · 3 tableau de bord inaccessible · 4 non connecté ou session expirée · 5 permission manquante · 6 ressource introuvable.
  4. Explorez avec -h. Chaque commande documente ses filtres, les formats de valeurs et la forme JSON.

Configuration initiale

Vérifier l’authentification avant de travailler

whoami ne renvoie jamais d’erreur en cas de session manquante ou expirée ; il signale logged_in:false à la place, ce qui permet à un agent de sonder l’état d’authentification en toute sécurité. (Il peut tout de même sortir avec un code non nul si aucune URL de base n’est définie ou si le tableau de bord est inaccessible.)

Trouver les sessions en échec ou avec un score bas

Le filtrage par score s’effectue sur evals, pas sur sessions. --score KEY:MIN..MAX est répétable et combiné par ET ; chaque borne est optionnelle (..0.5 signifie ≤ 0.5, 0.9.. signifie ≥ 0.9). Vous pouvez passer jusqu’à 20 filtres de score par requête ; au-delà, le serveur renvoie HTTP 400. sessions partage les filtres --env, --status, --agent-id, --session-id et de plage temporelle avec evals, mais ne dispose pas de --score.

Lire une session de bout en bout

Il n’existe pas de commande session show unique. Combinez la trace d’événements avec l’évaluation de la session :
Note : Par défaut, events lit un flux rapide sans payload. Chaque événement porte un résumé summary calculé côté serveur ainsi que des indicateurs comme is_error et les compteurs de tokens, mais payload est renvoyé sous la forme {}. Pour récupérer le payload brut, ajoutez --full (ou --fields payload). Le flux complet est plus lent à grande échelle, donc limitez-le : associez --full à un seul --session-id.

Tout récupérer (pagination)

Les résultats sont triés du plus récent au plus ancien et paginés par curseur.

Réduire la sortie avec —fields

Restreignez les clés (dans le tableau et avec --json) pour limiter ce qu’un agent doit lire.
Les noms de champs inconnus sont rejetés (sortie 2) avec la liste des valeurs valides — un moyen simple de découvrir les noms de champs.

Découvrir les valeurs de filtre valides

Choisir son organisation (multi-tenant)

Si vous appartenez à plusieurs organisations, choisissez le tenant actif à la connexion (il est sauvegardé) :
Une connexion multi-org sans --org se termine avec un code non nul et affiche les organisations disponibles.

Créer une clé API pour le SDK/collecteur

Exécuter une requête enregistrée ou ad hoc

Traiter un incident de manière non interactive

Note : Les mutations ignorent automatiquement leur invite de confirmation sous --json ou quand stdin n’est pas un TTY, afin que les agents ne restent jamais bloqués ; passez --yes/-y pour l’ignorer explicitement ailleurs.

Gestion des codes de sortie dans un script

Formes de la sortie JSON

  • Chaque élément event (events) : id, session_id, agent_id, event_type, ts, payload, environment, summary, is_error, error_type, output_tokens, context_window, context_fill. Notez que payload vaut {} sauf si vous demandez le flux complet avec --full (ou --fields payload).
  • Chaque élément evaluation (evals) : id, session_id, agent_id, environment, status, scores, reasoning, summary, error, attempt_count, duration_ms, completed_at, created_at.
  • Chaque élément session (sessions) : session_id, agent_id, environment, status, scores, event_count, started_at, last_event_at, first_event_id, last_event_id, latest_evaluation.
Le --fields de chaque commande accepte exactement les noms de champs de ses propres éléments. L’ensemble diffère entre sessions et evals, donc un nom valide pour l’un peut être rejeté par l’autre.

Étapes suivantes

  • CLI : installation, authentification et référence complète des options pour chaque commande.
  • Compétence CLI pour agent : regroupez ces recettes en une compétence que votre agent de codage peut charger.
  • Clés API : créez et délimitez les clés avec lesquelles la CLI, le SDK et le collecteur s’authentifient.
  • SDK Python : envoyez des événements dans Failproof AI Observability pour que ces recettes aient des données à interroger.