EsempioscriptintermediateEseguibileguided-flow
Output
Esempio rieseguibile intermediate di tipo script che usa pydantic.
Fatti chiave
- Livello
- intermediate
- Runtime
- Python • Pydantic
- 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
4-output.py
python
import nest_asyncio
from pydantic import BaseModel
from pydantic_ai import Agent, RunContext, ModelResponse
nest_asyncio.apply()
# --------------------------------------------------------------
# Basic output
# --------------------------------------------------------------
class CityLocation(BaseModel):
city: str
country: str
agent = Agent("openai:gpt-4o-mini", output_type=CityLocation)
result = agent.run_sync("Where were the olympics held in 2012?")
print(result.output)
print(result.usage())
# --------------------------------------------------------------
# Returning either text or structured data
# --------------------------------------------------------------
class Box(BaseModel):
width: int
height: int
depth: int
units: str
agent = Agent(
"openai:gpt-4o-mini",
output_type=[Box, str],
instructions=(
"Extract me the dimensions of a box, "
"if you can't extract all data, ask the user to try again."
),
)
result = agent.run_sync("The box is 10x20x30")
print(result.output)
result = agent.run_sync("The box is 10x20x30 cm")
print(result.output)
# --------------------------------------------------------------
# Union of output types
# --------------------------------------------------------------
agent = Agent(
"openai:gpt-4o-mini",
output_type=list[str] | list[int],
instructions="Extract either colors or sizes from the shapes provided.",
)
result = agent.run_sync("red square, blue circle, green triangle")
print(result.output)
result = agent.run_sync("square size 10, circle size 20, triangle size 30")
print(result.output)
# --------------------------------------------------------------
# Output functions - function as output_type
# --------------------------------------------------------------
def uppercase(ctx: RunContext[None], message: ModelResponse) -> str:
"""Uppercase the model's text response."""
return message.text.upper()
agent = Agent(
"openai:gpt-4o-mini",
output_type=uppercase,
)
result = agent.run_sync("Tell me a quick joke")
print(result.output)
Principi correlati
- P4trustApplicare la divulgazione progressiva all'agenzia del sistemaFornire per impostazione predefinita le informazioni minime necessarie, consentendo agli utenti di ispezionare ulteriori dettagli quando è richiesta fiducia, comprensione o intervento.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 →
- P9orchestrationRappresentare il lavoro delegato come un sistema, non solo come una conversazioneDove il lavoro coinvolge più passaggi, agenti, dipendenze o attività concorrenti, dovrebbe essere rappresentato come un sistema strutturato piuttosto che solo come un flusso di messaggi.Apri il principio →