failproofai-sdk, damit Failproof AI jeden Lauf rekonstruieren, sein Verhalten prüfen und belegbare Fehler finden kann. Das SDK schreibt strukturierte Ereignisse, die der Failproof-Daemon an Cloud weiterleitet. Es setzt Python 3.10 oder neuer voraus.
Tracing macht benutzerdefinierte Agenten beobachtbar und auditierbar. Um eine unsichere Aktion vor ihrer Ausführung zu verhindern, ist zusätzlich ein Enforcement-Hook in deiner Laufzeitumgebung erforderlich.
Um Richtlinien in einer benutzerdefinierten Agenten-Umgebung durchzusetzen, kontaktiere Failproof AI. Wir helfen dabei, die Modell-, Tool- und Lifecycle-Grenzen deiner Laufzeitumgebung auf Policy-Hooks abzubilden.
failproofai-sdk installieren
Das SDK wird derzeit als privates Wheel vertrieben. Wende dich an deinen Failproof AI-Ansprechpartner, um die aktuelle Version und Zugang zum Download zu erhalten.
uv lade das Wheel zunächst herunter und führe uv add ./failproofai_sdk-${VERSION}-py3-none-any.whl aus. Fixiere das Wheel in einem privaten Artefakt-Repository oder einer Dependency-Lock-Datei.
Das Paket wird als failproofai-sdk installiert und in Python als failproofai importiert.
Failproof-Daemon verbinden
- Dashboard
- CLI
-
Gehe zu Admin → Keys und erstelle einen Schlüssel mit
events:add. - Verbinde den Failproof-Daemon mit Cloud auf der Agenten-Maschine.
- Führe eine instrumentierte Sitzung aus und suche dann deren genaue ID unter Observe → Events.
-
Gehe zu Observe → Sessions, wähle dieselbe Umgebung und öffne den rekonstruierten Trace.

Einen vollständigen Lauf instrumentieren
Rufeconfigure() einmal beim Prozessstart auf. Jeder Ereignisaufruf ist keyword-only und erfordert eine stabile session_id und agent_id.
agent_start einmal pro Akteur. Für Sub-Agenten verwende die session_id des Elternagenten erneut, weise jedem Akteur eine eigene agent_id zu und setze parent_id auf die Agent-ID des Elternagenten – nicht auf die Session-ID.
Konfigurationsreferenz
Das SDK schreibt in das explizite
base_dir, falls gesetzt. Andernfalls verwendet es den custom-agents-Spool des Failproof-Daemons unter FAILPROOFAI_HOME oder ~/.failproofai.
Das SDK reiht Aufrufe im Speicher ein und schreibt Batches in einem Hintergrund-Thread. Es versucht außerdem einen abschließenden Flush über Pythons atexit-Mechanismus. Für kurzlebige Worker sollte ein normales Interpreter-Shutdown ermöglicht werden; ein harter Prozessabbruch kann Ereignisse verlieren, die sich noch im Speicher befinden.
Ereigniskatalog
Alle Methoden gebenNone zurück. Felder, die als None belassen werden, werden weggelassen statt als JSON null geschrieben.
Verwende
outcome="failed", "error", "timeout" oder "rejected", wenn eine Ausführung als Fehler gewertet werden soll. Andere Werte, einschließlich "failure", werden vom aktuellen Backend nicht als Fehler klassifiziert.
Korrelations- und Dauerregeln
- Verwende dieselbe
tool_call_id,hook_id,pause_idoderinput_idfür das zugehörige Abschlussereignis. - Das SDK berechnet
duration_msfürtool_result,hook_completed,agent_resumeundhuman_input. Wenn du diesen Wert selbst an diese Methoden übergibst, wird einValueErrorausgelöst. - Tool- und Hook-IDs teilen sich eine prozessweite Pending-Map. Mache sie global eindeutig – über gleichzeitige Sitzungen hinweg und über beide Namespaces; Provider-IDs oder UUIDs sind die sicherste Wahl.
- Ein Paar, das über Prozesse hinweg aufgeteilt ist, korreliert trotzdem nachgelagert, aber das SDK kann seine prozessinterne Dauer nicht berechnen.
- Die Pending-Map hält maximal 10.000 Einträge und verdrängt den ältesten Eintrag, wenn sie voll ist.
Benutzerdefinierte Felder und Nutzdaten
Jedes Ereignis akzeptiert zusätzliche Keyword-Felder. Verwende JSON-kompatible Werte, wenn nachgelagerte Abfragen Struktur benötigen. Nicht unterstützte Typen wie UUIDs, Datetimes, Decimals, Sets, Bytes und Modellobjekte werden vom Writer in Strings umgewandelt. Reservierte benutzerdefinierte Namen sindtimestamp, session_id, agent_id, type und environment. Tippfehler bei optionalen Feldern werden als neue benutzerdefinierte Felder akzeptiert – überprüfe daher das ausgegebene JSON, wenn ein Standardfeld nicht in Cloud erscheint.
Zustellen und überprüfen
- Dashboard
- CLI
Überprüfe unter Observe → Events, ob
agent_start als erstes und agent_end als letztes Ereignis vorhanden ist. Öffne dann Observe → Sessions und bestätige, dass Modell-, Tool-, Human-, Hook- und Fehlerereignisse in der vorgesehenen Reihenfolge erscheinen. Verwende die Session-ID als primären Schlüssel bei der Fehlersuche.$FAILPROOFAI_HOME/custom-agents/events, andernfalls ~/.failproofai/custom-agents/events. JSONL-Dateien belegen die SDK-Ausgabe; ein wachsender Spool deutet auf ein Problem mit der Daemon-Konfiguration oder Zustellung hin, während ein leerer Spool auf ein Problem mit der Instrumentierung oder der Prozesslebensdauer hindeutet.

