🏗️ Padrões estruturais
No módulo passado você abriu o bilhete e viu as peças. Agora vamos olhar a forma dessas peças: como os profissionais arrumam um system prompt para ele ficar claro, organizado e fácil de manter. São cinco "moldes" que aparecem em quase todo prompt de verdade — e um aviso de quando não usar o mais famoso deles.
Conteúdo detalhado
O Bloco de Identidade: "You are..."
Quase todo system prompt do mundo começa com as mesmas duas palavrinhas: "You are..." ("Você é..."). É a primeira linha, e ela faz um trabalho enorme: ancora quem a IA é antes de qualquer regra. Sem essa âncora, a IA deriva — muda de personalidade no meio do papo, inventa que tem ferramentas que não tem, fala de coisas que não conhece como se conhecesse.
🪪 A ideia em uma frase
O Bloco de Identidade responde três perguntas logo no começo: quem é a IA, onde ela opera e o que ela sabe (até quando vai o conhecimento dela). É a "âncora" que todo o resto do prompt referencia.
Pensa no crachá de um funcionário no primeiro dia: nome, cargo, setor. Em três linhas, todo mundo (e a própria IA) sabe com quem está falando. Nada de biografia — só o essencial pra fixar a autoimagem.
You are ChatGPT, a large language model trained by OpenAI, based on GPT 5.5.
Knowledge cutoff: 2025-08
Current date: 2026-06-01
Os três elementos canônicos em três linhas: persona ("You are ChatGPT..."), corte de conhecimento e data de hoje. Limpo, curto, sem enrolação.
You are Perplexity Computer.
Your goal is to solve as many things on your own as possible. Use tools to answer your own questions and explore.
Aqui a identidade vem com o objetivo colado: quem é + o que veio fazer. "Resolva o máximo sozinho" não é regra solta — é a missão que dá sentido a todas as outras instruções.
✓ COM uma boa identidade no topo
- ✓A IA mantém a mesma persona do começo ao fim
- ✓Sabe o que pode e o que não pode fazer
- ✓Não inventa fatos depois da data de corte
- ✓Curta: 3 a 5 linhas, só quem/onde/quando
✗ SEM identidade (ou enterrada no meio)
- ✗"Vira" outra IA no meio da conversa
- ✗Afirma ter ferramentas que não existem
- ✗Responde sobre eventos que não conhece
- ✗Inflada com backstory que ninguém usa
A Declaração de Capacidades: o que ela pode fazer
Logo depois de dizer quem é, um bom prompt diz o que a IA consegue fazer. Parece óbvio, mas é o passo que mais gente esquece — e o resultado é uma IA que se oferece pra gerar uma imagem que ela não sabe gerar, ou que ignora uma ferramenta que ela tinha o tempo todo. A Declaração de Capacidades é a lista de superpoderes da IA, cada um com a regrinha de quando usar.
O que é
Uma seção que lista cada capacidade com três coisas: o que faz, quando usar e a condição/limite ("se o usuário pedir...", "só quando for urgente..."). O segredo é que capacidade sem condição vira bagunça: a IA acaba usando a ferramenta certa na hora errada.
Por que aprender
Porque "dar poderes" não basta — é preciso ensinar quando usá-los. A diferença entre uma IA que tateia e uma que executa direto está aqui. E note: cada capacidade real carrega uma condição embutida, e é isso que evita a IA sair atropelando.
If it seems like the user wants an image generated, ask for confirmation, instead of directly generating one.
Veja como a capacidade ("gerar imagem") já vem com o protocolo ("peça confirmação primeiro"). Não é só "você pode gerar imagens" — é quando e como. Isso é uma capacidade bem declarada.
def concise_search(query: str, max_num_results: int = 3):
"""Does a search for the query and prints up to the max_num_results results."""
O Google declara capacidades como assinaturas de função: o escopo, os parâmetros e até o valor padrão (max_num_results = 3) ficam inequívocos. Não sobra dúvida do que dá pra fazer.
Identidade ≠ Capacidades (não confunda)
A Identidade diz quem a IA é; a Declaração de Capacidades diz o que ela consegue fazer. Em chat puro, sem ferramentas, essa seção vira "o que eu não posso fazer" — curtinha, mas útil pra IA não prometer o que não entrega.
O Compartimento XML: cada assunto na sua gaveta
Imagine um prompt de mil linhas escrito como um textão sem parágrafos. Achar uma regra ali seria um pesadelo. A solução que os labs adotaram é simples e poderosa: colocar cada assunto numa "gaveta" com etiqueta. Essas gavetas são as tags XML — <tone_and_style>, <tool_calling>, <safety> — e elas deixam o prompt navegável. É o diagrama lá do topo: blocos empilhados, cada um com seu nome.
1. A tag de abertura — <tone_and_style>
Marca o começo da gaveta e dá o nome dela.
O nome da tag funciona como etiqueta: a IA "puxa" o bloco certo na hora certa. Quando a conversa pede um tom, ela vai direto na gaveta tone.
2. O conteúdo — as regras daquele assunto
Tudo que diz respeito ao tom (e só ao tom) mora aqui dentro.
Nada de misturar: regra de segurança não entra na gaveta do tom. Cada assunto isolado — é isso que deixa o prompt fácil de ler e de mexer.
3. A tag de fechamento — </tone_and_style>
Fecha a gaveta. A próxima gaveta (outro assunto) começa logo abaixo.
Com início e fim claros, dá pra trocar uma gaveta inteira sem encostar nas outras — e dá pra comparar duas versões do prompt e dizer exatamente "mudou o bloco do tom".
<tone_and_formatting>
- Only use emojis if the user explicitly requests it...
</tone_and_formatting>
<tool_calling>
You have tools at your disposal...
</tool_calling>
Para mudar a política de tom, edita-se só o primeiro bloco — o resto fica intacto. As tags são planas (uma do lado da outra), não encaixadas uma dentro da outra. Voltamos a essa palavra "plana" no Tópico 6.
Por que isso ajuda gente, não só a IA
Um prompt compartimentado vira navegável por uma equipe. Dá pra fazer "code review" de um bloco, comparar versões e dizer "a Anthropic removeu o bloco <search_first>" — uma frase precisa. Sem as gavetas, seria "mudou alguma coisa em algum lugar".
A Regra por Exemplo: mostrar em vez de descrever
"Formate as citações adequadamente." Adequadamente como? Essa frase admite mil interpretações — e a IA vai escolher uma, provavelmente a errada. O molde que resolve isso é simples: mostre um exemplo em vez de (só) descrever. Um exemplo concreto elimina de uma vez a ambiguidade que três parágrafos de explicação não eliminam.
🎯 Mostrar > descrever
A IA casa padrão muito melhor do que segue especificação verbal. Em vez de explicar um formato em prosa, você cola um exemplo do certo (e, melhor ainda, um par certo × errado). O exemplo carrega a regra — às vezes antes mesmo de a prosa explicá-la.
É a diferença entre dizer "monte o móvel corretamente" e desenhar o móvel montado. O desenho não deixa dúvida.
The anchor text must be the source name, publication, or a natural descriptive phrase — never a generic word like "source" or "link", and never a raw URL.
WRONG: "The population grew 5% ([source](https://...))"
RIGHT: "The population grew 5% ([World Bank](https://...))"
RIGHT: "According to [World Bank data](https://...), the population grew 5%"
Repare na engenharia: a regra em prosa ("o texto do link tem que ser o nome da fonte, nunca uma palavra genérica como 'source' ou 'link'") já seria boa — mas vem reforçada por um par WRONG/RIGHT que mostra exatamente o errado e o certo. Impossível interpretar mal.
Example: <database url="URL" inline>Title</database>
Example: <database url="URL" locked>Title</database>
Duas linhas de exemplo substituem um parágrafo inteiro descrevendo atributos. A IA vê o formato e copia o padrão — não a palavra literal.
✓ Exemplo bem usado
- ✓Mostra o formato e a mecânica
- ✓Usa par certo × errado (WRONG/RIGHT)
- ✓É curto — atalho, não enciclopédia
- ✓Deixa óbvio o que é "preencher aqui"
✗ O perigo: "overfit" ao exemplo
- ✗A IA copia o exemplo literalmente
- ✗Trata a lista de exemplos como exaustiva
- ✗Exemplo tão longo quanto a saída esperada
- ✗Usar exemplo pra julgamento (engessa)
Nomear blocos: o nome já é uma instrução
Aqui vem um detalhe lindo e fácil de perder: o nome que você dá a um bloco também ensina a IA. Não é só uma etiqueta administrativa. Mude o nome — mesmo deixando o conteúdo igual — e a IA passa a se comportar de um jeito diferente. Tem um caso real, da Anthropic, que prova isso de forma quase poética.
<claude_prioritizes_copyright_compliance>
<core_copyright_principle>
A regra dura por dentro continua a mesma ("Copyright compliance is NON-NEGOTIABLE"). Só o nome do bloco mudou: de compliance ("cumpra as regras") para principle ("respeite a propriedade intelectual").
🧠 Por que isso muda tudo
"Compliance" é uma ordem: a IA obedece nos casos listados, e só neles. "Principle" é um valor: a IA raciocina a partir dele e cobre até os casos que ninguém previu. O nome muda a postura da IA diante de uma situação nova.
Ou seja: o nome do bloco é a primeira linha que a IA lê daquele assunto — e ela já "entra no clima" certo por causa dele. Por isso escolher bons nomes é parte do trabalho, não enfeite.
Nomeie por valor, não por mecânica
Prefira <respects_user_privacy> a <privacy_rules_v2>. O primeiro nome diz por quê e convida a IA a raciocinar; o segundo é só uma gaveta sem alma. Esse princípio volta com força no Módulo 1.6 ("de regra para princípio").
Quando NÃO usar XML (sim, às vezes ele atrapalha)
Depois de tanto elogio às gavetas XML, vem o contrapeso honesto: nem todo prompt precisa delas. Estrutura demais, no lugar errado, vira cerimônia — só atrapalha. Saber quando não usar um molde é tão importante quanto saber usá-lo. Aqui vão os três casos em que o XML sobra.
⚠️ Os três casos em que o XML sobra
- ① Prompt curtinho (menos de ~50 linhas). Se cabe numa tela, as tags viram enfeite. Um pedido de uma tarefa só não precisa de gaveta — escreve direto.
- ② Quando markdown já resolve. Agentes de código (como o Claude Code) usam # Títulos em markdown no lugar de XML — cumpre o mesmo papel de separar assuntos, e fica mais natural ali.
- ③ Aninhamento profundo de tags. Os prompts reais mantêm os blocos planos — raramente passam de 2 níveis. Encaixar gaveta dentro de gaveta dentro de gaveta vira labirinto.
✓ XML faz sentido quando...
- ✓O prompt é longo (muitos assuntos)
- ✓Vai ser versionado e mantido por um time
- ✓Você quer comparar versões por bloco (diff)
- ✓Há políticas que se beneficiam de fronteira clara
✗ XML sobra quando...
- ✗É uma instrução curta de uma tarefa só
- ✗Markdown com títulos já organiza bem
- ✗Você se pegou aninhando 3+ níveis de tags
- ✗A estrutura tomou mais espaço que o conteúdo
A regra de bolso
Estrutura existe pra servir a clareza, não o contrário. Se a gaveta deixa o prompt mais fácil de ler e manter, use. Se ela só adiciona ruído, tire. O molde é ferramenta — você manda nele, não o contrário.
📝 Resumo do Módulo
- ✓O Bloco de Identidade ("You are...") ancora quem/onde/quando logo na 1ª linha
- ✓A Declaração de Capacidades lista o que a IA pode fazer — cada uma com sua condição
- ✓O Compartimento XML põe cada assunto numa gaveta nomeada (<tag>), plana e modular
- ✓A Regra por Exemplo mostra o formato (par WRONG/RIGHT) em vez de só descrever
- ✓O nome do bloco também é instrução: compliance (ordem) vs principle (valor)
- ✓Nem todo prompt precisa de XML — em texto curto ou código, ele vira cerimônia
➡️ Próximo Módulo
1.4 — 🎚️ Padrões comportamentais. Você já tem a forma dos blocos. Agora vamos ao conteúdo: como escrever as regras dentro deles — com porquê, com contraste always/never, com orçamento de concisão — pra a IA não só obedecer, mas entender.