Miércoles, 11 de noviembre de 2026  ·  Español
tecnica

Salida estructurada (Structured Outputs)

La salida estructurada es la función de la API de Claude que obliga al modelo a responder ajustándose exactamente a un JSON Schema definido por el desarrollador, garantizando un JSON válido y parseable sin reintentos.

También: structured outputs · salidas estructuradas · JSON outputs · salida JSON en Claude · strict tool use · JSON schema en Claude
Daniel Puentes Prias
Consultor de IA · Actualizado el 7 de noviembre de 2026

La salida estructurada (structured outputs) es una capacidad de la API de Claude que garantiza que la respuesta del modelo cumpla un JSON Schema que tú defines: campos obligatorios, tipos y enumeraciones. No es una petición amable en el prompt, sino una restricción aplicada durante la generación, de modo que el resultado siempre se puede parsear y validar contra el esquema.

Cómo funciona

Se basa en decodificación restringida (constrained decoding). La API compila tu esquema en una gramática y, en cada paso de generación, solo permite los tokens que mantienen el texto dentro de esa gramática. Si el esquema exige un campo precio numérico, el modelo no puede escribir una cadena ni olvidarse de la clave.

En Claude se presenta de dos formas complementarias:

Anthropic la lanzó en beta a finales de 2025 para modelos concretos de la familia Claude 4.x. El nombre exacto del parámetro, la cabecera beta y los modelos compatibles han ido cambiando, así que conviene revisar la documentación vigente antes de implementarla.

Por qué importa

Antes, conseguir JSON fiable exigía trucos: instrucciones insistentes en el system prompt, prefill con {, o forzar una herramienta ficticia con tool_choice. Funcionaba casi siempre, y ese "casi" obligaba a escribir validadores, bucles de reintento y manejo de errores de parseo.

Con salida estructurada:

Si vas a construir aplicaciones sobre la API de Claude que extraen datos o alimentan otros sistemas, es de las primeras funciones que conviene dominar.

Ejemplo: extracción de datos de una factura

esquema = {
  "type": "object",
  "properties": {
    "proveedor": {"type": "string"},
    "total": {"type": "number"},
    "moneda": {"type": "string", "enum": ["EUR", "USD", "MXN"]}
  },
  "required": ["proveedor", "total", "moneda"],
  "additionalProperties": false
}
# Se envía junto al mensaje en el parámetro de formato
# de salida que indique la documentación actual.

La respuesta llegará siempre con esas tres claves, con total numérico y moneda dentro de los valores permitidos. Lo que el esquema no garantiza es que el total extraído sea el correcto: eso sigue dependiendo de la calidad del modelo y del documento.

Errores comunes

Preguntas frecuentes

¿Qué diferencia hay entre salida estructurada y pedir JSON en el prompt?

Pedir JSON en el prompt depende de que el modelo obedezca y puede fallar de vez en cuando. La salida estructurada restringe la generación token a token, así que el resultado siempre es JSON válido conforme al esquema.

¿Puedo usar salida estructurada con tool use?

Sí. Es una de sus dos variantes: al marcar una herramienta como estricta, los argumentos que Claude genera respetan exactamente el input_schema, lo que hace más fiables los agentes.

¿Está disponible en todos los modelos de Claude?

No necesariamente. Se lanzó en beta para modelos concretos de la familia Claude 4.x y la lista ha ido ampliándose. Revisa la documentación oficial para saber qué modelos la soportan hoy.

¿Funciona en la app de Claude.ai o solo en la API?

Es una función pensada para la API y plataformas de desarrollo. En la app de chat puedes pedir JSON, pero sin la garantía de la decodificación restringida.

Términos relacionados

Tutoriales donde se usa

Fuentes