0Pricing
AI Agents · Lección

Definir esquemas de herramientas (JSON Schema)

Escriba definiciones de JSON Schema para los parámetros de las herramientas con tipos, descripciones, enumeraciones y campos obligatorios.

Definir esquemas de herramientas (JSON Schema) es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 2 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.

Los esquemas de herramientas son JSON Schema

OpenAI, Anthropic y la mayoría de los demás proveedores usan JSON Schema para los parámetros de las herramientas.

Si ha usado OpenAPI / Swagger, ya conoce el 90 % de este tema.

Los tres campos obligatorios

Cada definición de herramienta tiene:

  1. name: identificador único (snake_case)
  2. description: qué hace la herramienta y cuándo usarla
  3. parameters: JSON Schema de las entradas

Un esquema mínimo

Un objeto con un único campo de cadena obligatorio:

schema = {
    'name': 'search_orders',
    'description': 'Find orders by customer email',
    'parameters': {
        'type': 'object',
        'properties': {
            'email': {
                'type': 'string',
                'description': 'Customer email address'
            }
        },
        'required': ['email']
    }
}
import json
print(json.dumps(schema, indent=2))

Tipos de JSON Schema

  • string: texto
  • integer, number: números
  • boolean: true/false
  • array: lista (también necesita items)
  • object: dict (también necesita properties)

Enumeraciones para conjuntos cerrados

Use enum cuando haya exactamente N valores permitidos:

unit_param = {
    'unit': {
        'type': 'string',
        'enum': ['C', 'F'],
        'description': 'Temperature unit'
    }
}
# The model will only ever output C or F
print(unit_param)
print("Allowed values:", unit_param['unit']['enum'])

Parámetros de tipo array

Para las entradas de tipo lista, establezca items:

tags_param = {
    'tags': {
        'type': 'array',
        'items': {'type': 'string'},
        'description': 'List of tags to filter by'
    }
}
print(tags_param)

Objetos anidados

Puede anidar objetos, pero mantenga los esquemas poco profundos (2-3 niveles como máximo) para mejorar la fiabilidad del modelo:

filter_param = {
    'filter': {
        'type': 'object',
        'properties': {
            'min_price': {'type': 'number'},
            'in_stock': {'type': 'boolean'}
        }
    }
}
print(filter_param)

Los campos description son fundamentales

El modelo elige las herramientas y completa los argumentos basándose en description. Trate las descripciones como documentación de API:

# Bad
bad = {'description': 'gets data'}

# Good
good = {'description': 'Fetch the most recent 50 orders for the given customer email. Returns order_id, status, total. Use this when the user asks about their order history or order status.'}
print("Bad description:", bad['description'])
print("Good description:", good['description'])

Matriz required

Marque explícitamente los campos obligatorios. El modelo siempre los completará; los campos opcionales solo se completan cuando son relevantes:

tool_params = {
    'parameters': {
        'properties': {
            'city': {'type': 'string'},
            'unit': {'type': 'string', 'enum': ['C', 'F']}
        },
        'required': ['city']
    }
}
print(tool_params)
print("Required fields:", tool_params['parameters']['required'])

Pydantic -> JSON Schema

Puede generar esquemas automáticamente a partir de modelos de Pydantic:

from pydantic import BaseModel, Field

class SearchArgs(BaseModel):
    email: str = Field(description='Customer email')
    limit: int = Field(50, description='Max orders to return')

schema = SearchArgs.model_json_schema()

Modo estricto (OpenAI Structured Outputs)

Añadir strict: true y additionalProperties: false garantiza que la salida del modelo coincida exactamente con el esquema:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'strict': True,
        'parameters': {
            'type': 'object',
            'properties': {'city': {'type': 'string'}},
            'required': ['city'],
            'additionalProperties': False
        }
    }
}]
import json
print(json.dumps(tools, indent=2))

Importancia de la descripción

¿Por qué es tan importante la description de una herramienta?

Repaso

Los esquemas guían al modelo. Las buenas descripciones, las enumeraciones para conjuntos cerrados, las matrices required y el modo estricto son sus mecanismos para mejorar la fiabilidad.

Preguntas frecuentes

¿La lección «Definir esquemas de herramientas (JSON Schema)» es gratis?

Sí — el texto completo de «Definir esquemas de herramientas (JSON Schema)» 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 «Definir esquemas de herramientas (JSON Schema)»?

Escriba definiciones de JSON Schema para los parámetros de las herramientas con tipos, descripciones, enumeraciones y campos obligatorios. 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 2 de 4.

¿Cuánto tiempo toma la lección «Definir esquemas de herramientas (JSON Schema)»?

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. Cómo funciona la llamada a funciones
  2. Definir esquemas de herramientas (JSON Schema)
  3. Elegir herramientas en tiempo de ejecución
  4. Devolver resultados al modelo
← Volver a AI Agents