EsempioscriptintermediateEseguibileguided-flow
Recupero: gestisce guasti ed eccezioni in modo elegante nei workflow degli agenti.
Questo componente implementa logiche di retry, processi di fallback e gestione degli errori per garantire la resilienza del sistema.
Fatti chiave
- Livello
- intermediate • Blocchi di Costruzione degli Agenti
- Runtime
- Python • API OpenAI
- Pattern
- Flusso ispezionabile con confini di sistema visibili
- Interazione
- Sandbox live • Script
- Aggiornato
- 14 marzo 2026
Naviga questo esempio
Libreria
Sfoglia gli esempiRiapri la libreria completa per confrontare pattern vicini e percorsi collegati.Interazione
Esegui ora nel sandboxProva l'interazione direttamente nella superficie guidata di questo esempio.Sorgente
Apri codice completoLeggi l'implementazione reale, i punti evidenziati e i requisiti runtime.MCP
Chiama via MCPUsa la stessa risorsa dentro agenti, export deterministici e setup MCP.
Principi collegati
6-recovery.py
python
"""
Recovery: Manages failures and exceptions gracefully in agent workflows.
This component implements retry logic, fallback processes, and error handling to ensure system resilience.
"""
from typing import Optional
from openai import OpenAI
from pydantic import BaseModel
class UserInfo(BaseModel):
name: str
email: str
age: Optional[int] = None # Optional field
def resilient_intelligence(prompt: str) -> str:
client = OpenAI()
# Get structured output
response = client.responses.parse(
model="gpt-4o",
input=[
{"role": "system", "content": "Extract user information from the text."},
{"role": "user", "content": prompt},
],
text_format=UserInfo,
temperature=0.0,
)
user_data = response.output_parsed.model_dump()
try:
# Try to access age field and check if it's valid
age = user_data["age"]
if age is None:
raise ValueError("Age is None")
age_info = f"User is {age} years old"
return age_info
except (KeyError, TypeError, ValueError):
print("❌ Age not available, using fallback info...")
# Fallback to available information
return f"User {user_data['name']} has email {user_data['email']}"
if __name__ == "__main__":
result = resilient_intelligence(
"My name is John Smith and my email is john@example.com"
)
print("Recovery Output:")
print(result)
Principi correlati
- P1delegationProgettare per la delega piuttosto che per la manipolazione direttaProgettare esperienze attorno all'assegnazione del lavoro, l'espressione dell'intento, l'impostazione dei vincoli e la revisione dei risultati, piuttosto che richiedere agli utenti di eseguire manualmente ogni passaggio.Apri il principio →
- P5delegationSostituire la magia implicita con modelli mentali chiariIl prodotto dovrebbe aiutare gli utenti a comprendere cosa il sistema può fare, cosa sta facendo attualmente, cosa non può fare e quali condizioni governano il suo comportamento.Apri il principio →
- P7trustStabilire fiducia attraverso l'ispezionabilitàGli utenti dovrebbero essere in grado di esaminare come è stato prodotto un risultato quando la fiducia, la responsabilità o la qualità della decisione sono importanti.Apri il principio →
- P8trustRendere espliciti i passaggi, le approvazioni e i blocchiQuando il sistema non può procedere, la ragione dovrebbe essere immediatamente visibile, insieme a qualsiasi azione richiesta dall'utente o da un'altra dipendenza.Apri il principio →
- P10delegationOttimizzare per la guida, non solo per l'inizioIl sistema dovrebbe supportare gli utenti non solo nell'avvio dei compiti, ma anche nella guida, nel perfezionamento, nella riprioritizzazione e nella correzione del lavoro mentre è in corso.Apri il principio →