title: “Agenti personalizzati” description: “Strumenta le tracce da agenti personalizzati affinché Failproof AI possa ricostruire le esecuzioni e trovare errori.” icon: “python”
Strumenta le tracce da un agente personalizzato confailproofai-sdk affinché Failproof AI possa ricostruire ogni esecuzione, controllarne il comportamento e trovare errori supportati da prove. L’SDK scrive eventi strutturati per il daemon Failproof da consegnare al Cloud. Richiede Python 3.10 o versioni successive.
L’instrumentazione rende gli agenti personalizzati osservabili e controllabili. Prevenire un’azione non sicura prima della sua esecuzione richiede anche un hook di enforcement nel tuo runtime.
Per applicare le policy in una configurazione con agente personalizzato, contatta Failproof AI. Ti aiuteremo a mappare i confini del modello, dello strumento e del ciclo di vita del tuo runtime ai hook delle policy.
Installa failproofai-sdk
L’SDK è attualmente distribuito come wheel privato. Chiedi al tuo contatto Failproof AI la versione attuale e l’accesso al download.
uv, scarica prima il wheel ed esegui uv add ./failproofai_sdk-${VERSION}-py3-none-any.whl. Fissa il wheel in un repository di artefatti privato o un lock di dipendenze.
Il pacchetto viene installato come failproofai-sdk e importato in Python come failproofai.
Connetti il daemon Failproof
- Dashboard
- CLI
-
Vai a Admin → Keys e crea una chiave con
events:add. - Connetti il daemon Failproof al Cloud sulla macchina dell’agente.
- Esegui una sessione instrumentata, quindi trova il suo ID esatto in Observe → Events.
-
Vai a Observe → Sessions, seleziona lo stesso ambiente e apri la traccia ricostruita.

Strumenta un’esecuzione completa
Chiamaconfigure() una sola volta durante l’avvio del processo. Ogni chiamata di evento è solo con parole chiave e richiede un session_id e un agent_id stabili.
agent_start una sola volta per attore. Per sub-agenti, riutilizza il session_id del genitore, assegna a ogni attore un agent_id distinto e imposta parent_id sull’ID dell’agente genitore, non sull’ID della sessione.
Riferimento configurazione
L’SDK scrive nello
base_dir esplicito quando è impostato. In caso contrario, utilizza lo spool custom-agents del daemon Failproof in FAILPROOFAI_HOME o ~/.failproofai.
L’SDK accoda le chiamate in memoria e scrive i batch su un thread di background. Tenta anche un flush finale tramite la gestione atexit di Python. Per i worker di breve durata, consenti lo spegnimento normale dell’interprete; l’interruzione forzata del processo può perdere gli eventi ancora in memoria.
Catalogo degli eventi
Tutti i metodi restituisconoNone. I campi lasciati come None vengono omessi anziché scritti come JSON null.
Usa
outcome="failed", "error", "timeout" o "rejected" quando un completamento dovrebbe contare come errore. Altri valori, incluso "failure", non vengono classificati come errori dal backend attuale.
Regole di correlazione e durata
- Riutilizza lo stesso
tool_call_id,hook_id,pause_idoinput_idper l’evento di completamento corrispondente. - L’SDK calcola
duration_mspertool_result,hook_completed,agent_resumeehuman_input. Passarlo tu stesso a questi metodi generaValueError. - Gli ID degli strumenti e degli hook condividono una mappa di sospensione a livello di processo. Rendili univoci globalmente tra le sessioni simultanee e tra entrambi gli spazi dei nomi; gli ID del provider o gli UUID sono i più sicuri.
- Una coppia divisa tra processi si correla comunque a valle, ma l’SDK non può calcolare la sua durata in-process.
- La mappa di sospensione contiene al massimo 10.000 inizi ed elimina la voce più vecchia quando piena.
Campi personalizzati e payload
Ogni evento accetta campi con parole chiave aggiuntive. Utilizza valori compatibili con JSON quando le query a valle necessitano di struttura. Le foglie non supportate come UUID, datetime, decimali, set, byte e oggetti modello vengono stringificate dal writer. I nomi personalizzati riservati sonotimestamp, session_id, agent_id, type e environment. Gli errori di battitura nei campi opzionali vengono accettati come nuovi campi personalizzati, quindi rivedi il JSON emesso quando un campo standard non viene visualizzato nel Cloud.
Consegna e verifica
- Dashboard
- CLI
In Observe → Events, verifica che
agent_start esista per primo e agent_end esista per ultimo. Quindi apri Observe → Sessions e conferma che gli eventi di modello, strumento, umano, hook e errore appaiano nell’ordine previsto. Utilizza l’ID della sessione come chiave primaria per la risoluzione dei problemi.$FAILPROOFAI_HOME/custom-agents/events, altrimenti ~/.failproofai/custom-agents/events. I file JSONL provano l’emissione dell’SDK; uno spool in crescita indica una configurazione del daemon o un problema di consegna, mentre uno spool vuoto indica un problema di instrumentazione o di durata del processo.

