Cuando necesitas que Claude genere datos estructurados como JSON, código Python o listas con viñetas, a menudo te encontrarás con un problema común: Claude quiere ser útil y agregar texto explicativo alrededor de tu contenido. Si bien esto suele ser genial, a veces solo necesitas los datos en bruto sin nada más.

Considera construir una aplicación web que genere reglas de AWS EventBridge. Los usuarios ingresan una descripción, hacen clic en generar, y esperan ver un JSON limpio que puedan copiar y usar de inmediato. Si Claude devuelve el JSON envuelto en bloques de código markdown con encabezados y pies de página explicativos, los usuarios no pueden simplemente presionar "copiar todo"; tendrían que seleccionar manualmente solo la parte del JSON.

Este patrón aparece siempre que estás generando datos estructurados. Claude naturalmente quiere explicar su trabajo, pero en muchos casos, solo quieres el contenido que estás solicitando y nada más.

Combinando secuencias de parada con el prellenado de mensajes del asistente
La solución combina dos técnicas que ya hemos cubierto: las secuencias de parada y el prellenado de mensajes del asistente. Así es como funciona en la práctica:
messages = []
add_user_message(messages, "Generate a very short event bridge rule as json")
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])Cuando ejecutas este código, obtienes de vuelta solo el contenido JSON sin ningún formato markdown ni comentarios adicionales.
Cómo funciona detrás de escena

Esto es lo que sucede cuando Claude procesa tu solicitud:
- Claude lee tu mensaje de usuario y piensa "necesito escribir una regla completa y probablemente describirla"
- Ve el mensaje del asistente prellenado y asume que ya comenzó a escribir el bloque markdown de JSON
- Claude piensa "Ah, ya he comenzado la parte del JSON, así que solo necesito escribir el contenido JSON real"
- Genera el contenido JSON
- Cuando Claude intenta cerrar el bloque markdown con
```, alcanza la secuencia de parada y la generación se detiene de inmediato
El resultado es que obtienes todo lo que está entre el inicio prellenado y la secuencia de parada, exactamente el contenido que querías.
Limpiando la salida
El texto devuelto podría tener algunos saltos de línea adicionales, pero puedes limpiar esto fácilmente:
import json
# Analizar como JSON para validar y formatear
parsed_json = json.loads(text.strip())Esta técnica funciona para cualquier formato de datos estructurados, no solo JSON. Ya sea que estés generando código Python, listas con viñetas, o cualquier otro formato de contenido específico, puedes usar el prellenado de mensajes del asistente para comenzar la respuesta y las secuencias de parada para terminarla exactamente donde quieras.
Este enfoque te da control preciso sobre el formato de salida de Claude, asegurando que tus aplicaciones obtengan datos limpios y utilizables sin formato adicional ni comentarios que puedan interferir con el procesamiento posterior.