Validar salidas de herramientas (Pydantic)
Analice cada salida de herramienta mediante un modelo de Pydantic y falle de forma visible ante una respuesta malformada.
Validar salidas de herramientas (Pydantic) es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Confíe, pero verifique
Los resultados de las herramientas proceden del mundo exterior: API, páginas web y modelos. Una respuesta malformada o inesperada puede bloquear el agente o, peor aún, introducir silenciosamente datos incorrectos en el LLM.
Valide cada resultado de herramienta según un esquema.
Modelos de Pydantic
Defina las estructuras esperadas:
from pydantic import BaseModel, HttpUrl
class SearchResult(BaseModel):
title: str
url: HttpUrl
snippet: str
score: float = 0.0Validate at the Boundary
from pydantic import ValidationError
def search(query):
raw = requests.post('https://api.tavily.com/search', json={'query': query}).json()
results = []
for r in raw.get('results', []):
try:
results.append(SearchResult.model_validate(r))
except ValidationError as e:
log.warning('Bad search result skipped: %s', e)
return resultsListas con validación de modelos
Valide la respuesta completa:
from pydantic import BaseModel
class SearchResponse(BaseModel):
results: list[SearchResult]
response = SearchResponse.model_validate(raw)Validadores de campos
Comprobaciones personalizadas dentro de los campos:
from pydantic import field_validator
class SearchResult(BaseModel):
score: float
@field_validator('score')
@classmethod
def score_in_range(cls, v):
if not 0 <= v <= 1:
raise ValueError('score out of [0,1]')
return vEstricto frente a flexible
De forma predeterminada, Pydantic convierte los tipos (string -> int cuando es posible). Para realizar comprobaciones estrictas:
from pydantic import StrictInt
class User(BaseModel):
age: StrictInt # rejects '25' (string)Default Values for Missing Fields
class Tool(BaseModel):
name: str
description: str = 'No description provided' # fallbackValide la salida estructurada del LLM
Obligue al modelo a devolver JSON que se ajuste a un esquema de Pydantic; consulte la lección sobre salidas estructuradas. Vuelva a validar en el límite como defensa en profundidad.
Valide los argumentos de las herramientas
Valide tool_call.arguments del modelo antes de ejecutarlo:
class SearchArgs(BaseModel):
query: str
k: int = 5
args = SearchArgs.model_validate_json(tool_call.function.arguments)
results = search(args.query, args.k)Errores de validación como resultados de herramientas
Si la validación falla, devuelva el error al modelo para que pueda reintentarlo con los argumentos corregidos:
try:
args = SearchArgs.model_validate_json(...)
except ValidationError as e:
return {'error': f'Invalid arguments: {e}'}Versionado de esquemas
Cuando cambie el esquema de salida de una herramienta, cree una nueva versión:
class SearchResultV2(BaseModel):
title: str
url: HttpUrl
relevance: float # was 'score' in v1Genere un esquema JSON a partir de Pydantic
Para las definiciones de esquemas de herramientas, derive el esquema de su clase de Pydantic:
schema = SearchArgs.model_json_schema()
# Use directly as the 'parameters' for an OpenAI tool definition.Objetivo de la validación
¿Por qué usar Pydantic en cada resultado de herramienta?
Repaso
Pydantic en cada límite: argumentos de herramientas que entran, resultados de herramientas que salen y salidas estructuradas del LLM. Los fallos explícitos son preferibles a la corrupción silenciosa.
Preguntas frecuentes
¿La lección «Validar salidas de herramientas (Pydantic)» es gratis?
Sí — el texto completo de «Validar salidas de herramientas (Pydantic)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Validar salidas de herramientas (Pydantic)»?
Analice cada salida de herramienta mediante un modelo de Pydantic y falle de forma visible ante una respuesta malformada. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Validar salidas de herramientas (Pydantic)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Herramientas idempotentes y efectos secundarios
- Reintentos con retroceso exponencial
- Tiempo de espera y disyuntores
- Validar salidas de herramientas (Pydantic)