Skip to main content
Sitzungs-, Ereignis- und Auswertungsdaten direkt aus einem Skript oder Coding-Agenten abrufen (und Neu-Auswertungen auslösen) – mit sauberem JSON auf stdout, das sich direkt in jq pipen lässt. Diese Rezepte verwandeln die Daten von Failproof AI Observability in etwas, das ein Terminal-Nutzer oder ein KI-Coding-Agent (Claude Code, Cursor) abfragen und automatisieren kann, ohne das Dashboard anzuklicken. Die folgenden Muster sind kopierfertig für die Failproof AI Observability CLI (agenteye). Für Installation, Authentifizierung und die vollständige Optionsliste siehe CLI; führe agenteye -h oder agenteye <command> -h für die eingebaute Hilfe aus.

Grundregeln

  1. Globale Optionen stehen vor dem Befehl. agenteye --json sessions ist korrekt; agenteye sessions --json nicht. Die globalen Optionen sind --json, --base-url, --org, --token, --insecure/--secure, --timeout, --quiet, --no-color.
  2. --json angeben, wenn die Ausgabe geparst wird. Daten gehen als JSON an stdout; menschlesbare Statusmeldungen und Fehler gehen an stderr, damit stdout sauber in jq gepipt werden kann.
  3. Auf den Exit-Code verzweigen, nicht auf stderr-Text: 0 OK · 1 unerwarteter Fehler · 2 fehlerhafte Argumente · 3 Dashboard nicht erreichbar · 4 nicht angemeldet oder abgelaufen · 5 fehlende Berechtigung · 6 Ressource nicht gefunden.
  4. Mit -h erkunden. Jeder Befehl dokumentiert seine Filter, Wertformate und JSON-Struktur.

Einmalige Einrichtung

Auth vor der Arbeit bestätigen

whoami gibt bei einer fehlenden oder abgelaufenen Sitzung keinen Fehler aus, sondern meldet logged_in:false – ein Agent kann den Auth-Status daher sicher abfragen. (Es kann dennoch mit einem Nicht-null-Exit-Code enden, wenn keine Base-URL gesetzt ist oder das Dashboard nicht erreichbar ist.)

Fehlgeschlagene oder niedrig bewertete Sitzungen finden

Score-Filterung erfolgt über evals, nicht über sessions. --score KEY:MIN..MAX ist wiederholbar und wird UND-verknüpft; beide Grenzen sind optional (..0.5 bedeutet ≤ 0,5, 0.9.. bedeutet ≥ 0,9). Pro Anfrage können bis zu 20 Score-Filter übergeben werden; mehr ergibt HTTP 400. sessions teilt die Filter --env, --status, --agent-id, --session-id und Zeitbereichsfilter mit evals, hat aber kein --score.

Eine Sitzung von Anfang bis Ende lesen

Es gibt keinen einzelnen session show-Befehl. Kombinierre den Ereignisverlauf mit der Auswertung der Sitzung:
Hinweis: Standardmäßig liest events einen schnellen Feed ohne Payload. Jedes Ereignis enthält eine server-berechnete einzeilige summary sowie Flags wie is_error und Token-Zählungen, aber payload wird als {} zurückgegeben. Um den rohen Payload abzurufen, --full (oder --fields payload) hinzufügen. Der vollständige Feed ist bei großen Datenmengen langsamer – daher begrenzt halten: --full mit einer einzelnen --session-id kombinieren.

Alles abrufen (Paginierung)

Ergebnisse sind neueste-zuerst und cursor-paginiert.

Ausgabe mit —fields reduzieren

Schlüssel (sowohl in der Tabelle als auch mit --json) einschränken, um das zu reduzieren, was ein Agent lesen muss.
Unbekannte Feldnamen werden abgelehnt (Exit 2) mit der Liste gültiger Namen – eine einfache Methode, um Feldnamen zu entdecken.

Gültige Filterwerte erkunden

Organisation auswählen (Multi-Tenant)

Wenn mehrere Organisationen vorhanden sind, beim Login den aktiven Tenant wählen (wird gespeichert):
Ein Multi-Org-Login ohne --org endet mit einem Nicht-null-Exit-Code und gibt die verfügbaren Organisationen aus.

API-Key für das SDK/den Collector bereitstellen

Eine gespeicherte oder Ad-hoc-Abfrage ausführen

Einen Vorfall nicht-interaktiv triagieren

Hinweis: Mutationen überspringen ihre Bestätigungsaufforderung automatisch unter --json oder wenn stdin kein TTY ist, damit Agenten nie hängen bleiben; --yes/-y übergeben, um sie anderswo explizit zu überspringen.

Exit-Code-Behandlung in einem Skript

JSON-Ausgabeformate

  • Jedes event-Element (events): id, session_id, agent_id, event_type, ts, payload, environment, summary, is_error, error_type, output_tokens, context_window, context_fill. Hinweis: payload ist {}, außer der vollständige Feed wird mit --full (oder --fields payload) angefordert.
  • Jedes evaluation-Element (evals): id, session_id, agent_id, environment, status, scores, reasoning, summary, error, attempt_count, duration_ms, completed_at, created_at.
  • Jedes session-Element (sessions): session_id, agent_id, environment, status, scores, event_count, started_at, last_event_at, first_event_id, last_event_id, latest_evaluation.
Das --fields-Argument jedes Befehls akzeptiert genau die Feldnamen seines eigenen Elements. Der Satz unterscheidet sich zwischen sessions und evals, daher kann ein für eines gültiger Name vom anderen abgelehnt werden.

Nächste Schritte

  • CLI: Installation, Authentifizierung und die vollständige Optionsreferenz für jeden Befehl.
  • CLI-Agenten-Skill: Diese Rezepte als Skill verpacken, den dein Coding-Agent laden kann.
  • API-Keys: Keys erstellen und einschränken, mit denen sich CLI, SDK und Collector authentifizieren.
  • Python SDK: Ereignisse in Failproof AI Observability senden, damit diese Rezepte Daten zum Abfragen haben.