Cuando necesitas datos estructurados de Claude, tienes dos enfoques principales: técnicas basadas en prompts que usan prellenado de mensajes y secuencias de parada, o un método más robusto que usa herramientas. Si bien el enfoque basado en prompts es más simple de configurar, las herramientas proporcionan una salida más confiable a costa de una complejidad adicional.
Herramientas para datos estructurados
El enfoque basado en herramientas funciona creando un esquema JSON que define la estructura exacta de los datos que deseas extraer. En lugar de esperar que Claude formatee su respuesta correctamente, básicamente le estás dando a Claude una función para llamar con parámetros específicos que coinciden con la estructura de salida deseada.

Así es como funciona el proceso:
- Escribe un esquema que describa la estructura de los datos que estás buscando
- Obliga a Claude a usar una herramienta con el parámetro
tool_choice - Extrae los datos estructurados de la respuesta de uso de herramientas
- No es necesario proporcionar una respuesta de seguimiento: has terminado una vez que obtienes los datos
Por ejemplo, si deseas extraer un saldo financiero y conclusiones clave de un estado de cuenta, tu esquema definiría esos elementos como un entero y un arreglo de cadenas respectivamente.
Controlando el uso de herramientas
Una parte crítica de esta técnica es asegurarse de que Claude realmente llame a tu herramienta. Puedes controlar este comportamiento usando el parámetro tool_choice:

{"type": "auto"}- El modelo decide si necesita usar una herramienta (predeterminado){"type": "any"}- El modelo debe usar una herramienta, pero puede elegir cuál{"type": "tool", "name": "TOOL_NAME"}- El modelo debe usar la herramienta especificada
Para la extracción de datos estructurados, normalmente querrás la tercera opción para garantizar que Claude llame a tu herramienta de esquema específica.
Ejemplo de implementación
Supongamos que deseas extraer un título, autor y conclusiones clave de un artículo. Primero, crearías un esquema de herramienta:
article_summary_schema = {
"name": "article_summary",
"description": "Extracts structured data from articles",
"input_schema": {
"type": "object",
"properties": {
"title": {"type": "string"},
"author": {"type": "string"},
"key_insights": {
"type": "array",
"items": {"type": "string"}
}
}
}
}Luego llamarías a Claude con la herramienta y forzarías su uso:
response = chat(
messages,
tools=[article_summary_schema],
tool_choice={"type": "tool", "name": "article_summary"}
)La respuesta contendrá un bloque de uso de herramientas con tus datos estructurados en el campo input. Puedes acceder a él directamente:
structured_data = response.content[0].inputCuándo usar cada enfoque
Elige la salida estructurada basada en prompts cuando necesites algo rápido y simple. Usa herramientas cuando necesites confiabilidad garantizada y puedas manejar la complejidad adicional de configuración. Ambas técnicas son valiosas dependiendo de tu caso de uso y requisitos específicos.