0Pricing
AI Agents · Lección

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.0

Validate 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 results

Listas 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 v

Estricto 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'   # fallback

Valide 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 v1

Genere 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

  1. Herramientas idempotentes y efectos secundarios
  2. Reintentos con retroceso exponencial
  3. Tiempo de espera y disyuntores
  4. Validar salidas de herramientas (Pydantic)
← Volver a AI Agents