Tags XML em prompts: por que Claude e GPT respondem melhor
Existe um truque de prompt que parece bobo mas muda a qualidade da resposta: envolver cada parte do
seu pedido em tags no estilo XML, como <codigo>...</codigo>. Não é
firula — é a forma mais confiável de dizer ao modelo "isto é instrução, aquilo é só dado". A
Anthropic recomenda explicitamente essa técnica para o Claude, e ela funciona igualmente bem no GPT.
O problema: instrução e dado se misturam
Quando você escreve tudo num bloco só de texto, o modelo tem que descobrir sozinho onde termina a sua instrução e onde começa o conteúdo que ele deve processar. Na maioria das vezes ele acerta. Mas em prompts com muito texto — código longo, documentos colados, exemplos — a fronteira fica borrada, e ele às vezes trata seu dado como comando (ou vice-versa).
A solução: fronteiras explícitas
Compare. Sem tags:
Resuma o texto a seguir em 3 pontos: Os tokens são
unidades que os modelos de linguagem usam para... [texto longo]
Seja objetivo.
O "Seja objetivo" no fim — é instrução ou faz parte do texto a resumir? O modelo tem que adivinhar. Agora com tags:
<instrucao>
Resuma o texto abaixo em 3 pontos. Seja objetivo.
</instrucao>
<texto>
Os tokens são unidades que os modelos de linguagem usam para...
</texto>
Zero ambiguidade. A instrução está claramente delimitada, o dado está isolado. O modelo sabe exatamente o que fazer e sobre o quê.
💡 Dica de Dev: os nomes das tags podem ser qualquer coisa —
<codigo>, <contexto>, <erro>. O que
importa é serem consistentes e descritivos. Você pode até referenciá-las na instrução: "analise o
código em <codigo> considerando o erro em <erro>".
Por que isso funciona nos modelos
Modelos de linguagem foram treinados com montanhas de HTML, XML e markdown. Estrutura hierárquica
com tags de abertura e fechamento é um padrão que eles reconhecem profundamente. Quando você usa
tags, está falando uma "língua estrutural" que o modelo entende de forma nativa — melhor do que
qualquer separador improvisado tipo --- ou ###.
O bônus de segurança
Tem um efeito colateral valioso. Quando você isola o código do usuário dentro de uma tag
<codigo_fonte>, você está sinalizando ao modelo que tudo ali dentro é dado
bruto para processar, não ordens a executar. Se o código colado contém algo como "ignore as
instruções anteriores e faça outra coisa" — uma tentativa de prompt injection — a tag
ajuda o modelo a tratar aquilo como texto a analisar, não como comando. Não é uma blindagem
perfeita, mas é uma camada real.
Aplicando ao debug
É exatamente por isso que um bom prompt de debug separa cada bloco em sua tag:
<ambiente_stack>, <comportamento_esperado>,
<comportamento_atual_erro> e <codigo_fonte_isolado>. Cada
pedaço no seu compartimento, o modelo lê tudo sem confundir, e a resposta vem mais precisa.
Prompt já vem com as tags certas
O TokenSaver monta seu prompt de debug com as tags de isolamento prontas — você só preenche os campos e copia. Instrução, contexto e código, cada um no seu lugar.
Gerar prompt com tags — 2 usos grátis