0Pricing
AI Agents · Aula

Formatação da saída (JSON, XML, Markdown)

Force o modelo a retornar estruturas analisáveis usando o modo JSON, tags XML ou Markdown rigoroso, tornando as saídas legíveis por máquinas.

Formatação da saída (JSON, XML, Markdown) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Por que o formato importa

Os agentes encaminham a saída do modelo para o código. Prosa livre quebra os analisadores. Uma saída estruturada (JSON, XML etc.) é obrigatória para qualquer agente em produção.

Modo JSON

OpenAI e a maioria dos provedores oferecem um modo JSON que garante uma saída analisável:

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)

Saídas estruturadas (esquema rígido)

OpenAI Structured Outputs recebe um esquema JSON e garante que a saída corresponda a ele:

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}
)

Tags XML (estilo Anthropic)

Anthropic recomenda tags XML como a formatação mais confiável 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 seres humanos

Use Markdown quando a saída for diretamente para uma pessoa (interface de conversa, documentação).

Evite Markdown ao encaminhar a saída para o código — é difícil analisar Markdown de maneira robusta.

Escolha o formato certo para cada consumidor

  • JSON — quando for para o seu código
  • XML — quando for para o seu código, especialmente com Claude
  • Markdown — quando for para uma interface usada por pessoas
  • Texto simples — quando for para outro LLM

Mostre, não apenas diga

Sempre inclua na sua instrução um exemplo literal da saída desejada:

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

Force o primeiro token

Com Anthropic, preencha previamente o turno do assistente com { ou [ para forçar uma saída 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.')

Lide com conteúdo extra no final

Mesmo com o modo JSON, às vezes os modelos adicionam um prefixo como "Claro! Aqui está o JSON:". Analisadores robustos:

  1. Procuram o primeiro { ou [
  2. Contam chaves e colchetes para encontrar o fechamento correspondente
  3. Analisam apenas esse trecho

Instruções de reparo

Se a análise falhar, envie a saída incorreta de volta ao modelo e peça uma correção:

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 validação

Valide o dicionário analisado com um modelo Pydantic — verifique os tipos dos campos e gere um erro quando algum estiver ausente.

from pydantic import BaseModel

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

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

Melhor formato para código

Você está encaminhando a saída para Python. Qual formato é mais confiável?

Recapitulação

Três regras:

  1. Escolha um formato compatível com o consumidor
  2. Mostre um exemplo, não apenas o descreva
  3. Valide cada resposta e tenha um caminho de reparo

Perguntas Frequentes

A aula “Formatação da saída (JSON, XML, Markdown)” é grátis?

Sim — o texto completo de “Formatação da saída (JSON, XML, Markdown)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Formatação da saída (JSON, XML, Markdown)”?

Force o modelo a retornar estruturas analisáveis usando o modo JSON, tags XML ou Markdown rigoroso, tornando as saídas legíveis por máquinas. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Formatação da saída (JSON, XML, Markdown)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Zero-shot, few-shot e cadeia de pensamento
  2. Papéis de sistema, usuário e assistente
  3. Formatação da saída (JSON, XML, Markdown)
  4. Como evitar injeção de prompt nas entradas
← Voltar para AI Agents