0Pricing
AI Agents · Lección

Formato de salida (JSON, XML, Markdown)

Obligue al modelo a devolver estructuras analizables mediante el modo JSON, etiquetas XML o Markdown estricto para que las salidas puedan leerlas las máquinas.

Formato de salida (JSON, XML, Markdown) es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 3 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.

Por qué importa el formato

Los agentes envían la salida del modelo a código. La prosa libre rompe los analizadores. La salida estructurada (JSON, XML, etc.) es obligatoria para cualquier agente en producción.

Modo JSON

OpenAI y la mayoría de los proveedores ofrecen un modo JSON que garantiza una salida que se puede analizar:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    response_format={'type': 'json_object'},
)
import json
data = json.loads(response.choices[0].message.content)

Structured Outputs (esquema estricto)

Structured Outputs de OpenAI acepta un JSON Schema y garantiza que la salida coincida con él:

schema = {
    'name': 'extract_person',
    'schema': {
        'type': 'object',
        'properties': {
            'name': {'type': 'string'},
            'age': {'type': 'integer'}
        },
        'required': ['name', 'age'],
        'additionalProperties': False
    },
    'strict': True
}

response = client.chat.completions.create(
    model='gpt-4o-2024-08-06',
    messages=messages,
    response_format={'type': 'json_schema', 'json_schema': schema}
)

Etiquetas XML (estilo Anthropic)

Anthropic recomienda las etiquetas XML como el formato más fiable para Claude:

system = '''
Return your answer wrapped in XML tags:

<reasoning>Your step-by-step thinking</reasoning>
<answer>The final answer</answer>
'''

# Parse with a simple regex or BeautifulSoup
import re
ans = re.search(r'<answer>(.*?)</answer>', text, re.S).group(1)

Markdown para personas

Utilice Markdown cuando la salida se muestre directamente a una persona (interfaz de chat, documentación).

Evite Markdown cuando envíe la salida a código; analizar Markdown de forma robusta es difícil.

Elija el formato adecuado para cada consumidor

  • JSON — se envía a su código
  • XML — se envía a su código, especialmente con Claude
  • Markdown — se muestra en una interfaz para personas
  • Texto plano — se envía a otro LLM

Muestre, no se limite a describir

Incluya siempre en su prompt un ejemplo literal de la salida deseada:

system = '''
Return a JSON object like:
{
  "action": "reply",
  "content": "Hi there!",
  "confidence": 0.95
}
'''
print(system.strip())

Fuerce el primer token

En Anthropic, rellene previamente el turno assistant con { o [ para forzar la salida JSON:

messages = [
    {'role': 'user', 'content': 'Return JSON with name and age.'},
    {'role': 'assistant', 'content': '{'}
]
# Output will start at '{ "name": ...' guaranteed.
for m in messages:
    print(f"{m['role']}: {m['content']}")
print('Output will start at \'{ "name": ...\' guaranteed.')

Gestione el contenido basura final

Incluso con el modo JSON, a veces los modelos añaden un prefijo como "¡Claro! Aquí está el JSON:". Los analizadores robustos:

  1. Buscan el primer { o [
  2. Cuentan los corchetes para encontrar el de cierre correspondiente
  3. Analizan solo ese fragmento

Prompts de reparación

Si el análisis falla, devuelva la salida incorrecta al modelo y pídale que la corrija:

repair_prompt = f'''
The previous output failed to parse with error: {error}.
Return ONLY a valid JSON object matching the schema. No prose.

Previous output:
{bad_output}
'''

Pydantic para la validación

Valide el dict analizado con un modelo de Pydantic: compruebe los tipos de los campos y genere un error si falta alguno.

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

person = Person.model_validate_json(response_text)
print(person.name, person.age)

El mejor formato para código

Está enviando la salida a Python. ¿Qué formato es el más fiable?

Repaso

Tres reglas:

  1. Elija un formato que corresponda al consumidor
  2. Muestre un ejemplo; no se limite a describirlo
  3. Valide cada respuesta y disponga de una vía de reparación

Preguntas frecuentes

¿La lección «Formato de salida (JSON, XML, Markdown)» es gratis?

Sí — el texto completo de «Formato de salida (JSON, XML, Markdown)» 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 «Formato de salida (JSON, XML, Markdown)»?

Obligue al modelo a devolver estructuras analizables mediante el modo JSON, etiquetas XML o Markdown estricto para que las salidas puedan leerlas las máquinas. 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 3 de 4.

¿Cuánto tiempo toma la lección «Formato de salida (JSON, XML, Markdown)»?

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. Zero-shot, few-shot y cadena de pensamiento
  2. Roles de sistema, usuario y asistente
  3. Formato de salida (JSON, XML, Markdown)
  4. Cómo evitar la inyección de prompts en las entradas
← Volver a AI Agents