Menu

Prompt de sistema: o que é e exemplos para copiar

O prompt de sistema (system prompt) é um conjunto de instruções permanentes que vale para uma conversa inteira com um modelo de IA. Veja onde ele fica, o que colocar nele e como ele difere de uma mensagem do usuário.

Você pode editar cada prompt desta página e depois abri-lo no ChatGPT, no Claude ou em outro app de IA.

O prompt de sistema (system prompt) é um conjunto de instruções que o modelo de IA recebe antes de a conversa começar, e ele vale para todas as mensagens seguintes. Ele define o papel do modelo, o público, as regras e o formato padrão das respostas, para que você não precise repetir isso em cada mensagem. O usuário escreve os prompts; o prompt de sistema molda como o modelo responde a todos eles.

Todo app de chat já usa um. Quando você abre o ChatGPT, o Claude ou o Gemini, o modelo já tem instruções da empresa por trás dele, que a janela do chat não mostra. Quando desenvolvedores criam um app em cima de um modelo, é no prompt de sistema que eles transformam um modelo genérico em um tutor de programação, um assistente de suporte ou um redator de mensagens de commit.

O que um prompt de sistema faz

A entrada de um modelo em um chat tem uma estrutura: primeiro o prompt de sistema, depois a conversa, com mensagens do usuário e do assistente se alternando. O prompt de sistema fica acima de toda a troca, então ele está à frente do modelo em cada resposta, por mais longa que a conversa fique.

Essa posição faz dele o lugar certo para tudo o que deve valer sempre: com quem o modelo está falando, o que ele pode e não pode fazer, como uma resposta deve ser por padrão. Os modelos também são treinados para dar a ele mais peso do que a uma mensagem do usuário quando os dois entram em conflito. Isso é uma tendência, não uma trava. Um usuário insistente às vezes consegue convencer o modelo a deixar o prompt de sistema de lado, e é por isso que ele nunca deve ser a sua única proteção.

Prompt de sistema e mensagem do usuário

Prompt de sistemaMensagem do usuário
Quem escreveO desenvolvedor, ou você nas configurações do appVocê, na caixa do chat
AlcanceA conversa inteiraUm pedido
Conteúdo típicoPapel, público, regras, fatos, formato padrãoA tarefa e o material para ela
Quando mudaRaramenteA cada mensagem
Peso em um conflitoNormalmente maiorNormalmente menor

Um teste útil: se uma frase valeria para todas as mensagens do chat, ela pertence ao prompt de sistema. Se ela é sobre este pedido específico, pertence à mensagem do usuário. "Responda em menos de 100 palavras" pode ir em qualquer um dos dois; "resuma o e-mail abaixo" é sempre uma mensagem do usuário.

Onde definir um prompt de sistema

Na API, o prompt de sistema é uma entrada separada. Com a biblioteca Python da OpenAI, ele é a primeira mensagem da lista, com o papel system. A documentação da OpenAI também usa o nome developer message para o mesmo tipo de instrução nos modelos mais novos.

from openai import OpenAI

client = OpenAI()
MODEL = "your-model-id"  # e.g. from your provider's model list

response = client.chat.completions.create(
    model=MODEL,
    messages=[
        {"role": "system", "content": "You are a patient Python tutor. Give hints, not full solutions."},
        {"role": "user", "content": "Why does my loop stop at 9?"},
    ],
)
print(response.choices[0].message.content)

Com a biblioteca Python da Anthropic, ele é um parâmetro system de nível superior, e a lista messages guarda só a conversa:

import anthropic

client = anthropic.Anthropic()
MODEL = "your-model-id"  # e.g. from your provider's model list

message = client.messages.create(
    model=MODEL,
    max_tokens=500,
    system="You are a patient Python tutor. Give hints, not full solutions.",
    messages=[{"role": "user", "content": "Why does my loop stop at 9?"}],
)
print(message.content[0].text)

A API do Gemini, do Google, chama isso de system instruction. O nome muda, a ideia é a mesma.

Nos apps de chat, você não tem acesso ao campo de sistema bruto, porque o app já tem o dele. O que você tem é um lugar para acrescentar instruções permanentes que o app inclui por você. No ChatGPT, são as instruções personalizadas, as instruções de projeto e as instruções de um GPT personalizado. No Claude, são as instruções de projeto e as preferências do seu perfil. No Gemini, são as instruções de um Gem. Como exatamente cada app junta o seu texto com as instruções dele não está totalmente documentado, mas na prática elas se comportam como um prompt de sistema que você divide com o app.

O que colocar em um prompt de sistema

  • Papel e público. "Você é um tutor para alunos no primeiro mês de programação" define o vocabulário e o nível de cada resposta. Prompt de papel mostra o que um papel muda e o que não muda.
  • Regras que valem em toda mensagem. O que o modelo deve sempre ou nunca fazer: dar dicas em vez de soluções completas, responder só a perguntas sobre o produto, responder no idioma do usuário.
  • O que fazer quando não souber. "Se a resposta não estiver nos fatos abaixo, diga que não sabe" faz mais contra respostas inventadas do que um genérico "seja preciso".
  • Fatos de que o modelo precisa. Detalhes do produto, políticas, a data atual, o plano do usuário. Um modelo não consegue responder perguntas sobre o seu app a partir dos dados de treinamento.
  • Formato padrão. Tamanho, estrutura, se deve usar blocos de código. Se um programa lê a saída, dê a forma exata; veja saída estruturada.

O que deixar de fora

Segredos. Um prompt de sistema não é privado. Os usuários podem pedir ao modelo que repita as instruções ou enganá-lo para isso, e os modelos não se recusam de forma confiável. Chaves de API, senhas e qualquer coisa que você não gostaria de ver publicada não têm lugar ali. Trate o prompt de sistema como um texto que o usuário pode ler um dia, e veja prompt injection para entender como as instruções são sobrescritas.

A tarefa de uma única mensagem. Se o prompt de sistema diz "resuma este artigo", a segunda mensagem do chat não tem para onde ir.

Pilhas de regras sobrepostas. Vinte regras escritas em momentos diferentes tendem a se contradizer, e o modelo precisa adivinhar qual vence. Agrupe as regras, remova as duplicadas e diga a prioridade quando duas puderem colidir.

Enchimento. O prompt de sistema é enviado de novo em cada requisição e conta para a janela de contexto do modelo, então cada parágrafo desnecessário é pago a cada mensagem.

Exemplos de prompt de sistema

O primeiro exemplo é um assistente de produto. O prompt de sistema define um escopo, um tamanho e uma regra para perguntas que ele não sabe responder, e traz os fatos de que o modelo precisa. Alterne entre as abas para mandar mensagens diferentes: o mesmo prompt de sistema molda as três respostas.

System prompt
Você é o assistente de ajuda dentro de um app de controle financeiro. Responda só a perguntas sobre como usar o app. Mantenha cada resposta com menos de 80 palavras. Se uma pergunta for sobre qualquer outro assunto, diga que só pode ajudar com o app e ofereça algo relacionado em que você possa ajudar. Se os fatos abaixo não cobrirem uma pergunta, diga que não tem certeza e sugira falar com o suporte. Nunca invente nomes de menus ou recursos. Fatos: As transações podem ser divididas: abra a transação, toque em Dividir e escolha as categorias e os valores. Os orçamentos são reiniciados no primeiro dia de cada mês.
Fill in
Como divido uma compra entre mercado e casa?
Try it
Chat apps receive the system prompt as the start of your message, so this tries its wording, not its priority. To test it as standing instructions, put it in the app's custom instructions or the API's system field.
Example replyReplies vary between models and runs.

Abra a compra nas suas transações e toque em Dividir. Depois escolha as duas categorias, Mercado e Casa, e informe o valor que pertence a cada uma.

O segundo exemplo é o tipo de texto que você colocaria nas instruções personalizadas ou nas instruções de projeto de um app de chat. Ele descreve você e como você quer as respostas, então toda conversa começa a partir disso.

Prompt
System prompt
Sobre mim: sou desenvolvedor backend e trabalho com TypeScript em Node.js. Parta do princípio de que eu sei o básico e pule explicações para iniciantes. Como quero as respostas: código primeiro, depois no máximo três frases de explicação. Avise quando uma resposta depender de uma versão ou configuração específica.
Fill in
Como leio um arquivo JSON?
Try it
Chat apps receive the system prompt as the start of your message, so this tries its wording, not its priority. To test it as standing instructions, put it in the app's custom instructions or the API's system field.
Example replyReplies vary between models and runs.
import { readFile } from "node:fs/promises";

const config = JSON.parse(await readFile("config.json", "utf8"));

Passar uma codificação faz o readFile retornar uma string, que o JSON.parse transforma em objeto. O await de nível superior só funciona em um módulo ES ("type": "module" no package.json ou um arquivo .mts); caso contrário, coloque a chamada dentro de uma função async. Acrescente um try/catch se o arquivo puder não existir ou estar malformado.

Sem o prompt de sistema, uma pergunta tão curta quanto "como leio um arquivo JSON?" deixa o modelo adivinhar a linguagem, e a resposta muitas vezes vem em Python ou em JavaScript puro, com um parágrafo sobre o que é JSON. Com ele, a resposta escolhe a linguagem e o runtime certos, pula o básico e segue a forma pedida.

A mesma estrutura funciona para qualquer assistente que você configurar: a quem ele atende, as regras, o que fazer quando não souber, os fatos de que precisa e o formato da resposta. Escreva uma vez, teste com uma pergunta normal, uma fora do assunto e uma que tenta furar uma regra, e ajuste até que as três respostas sejam as que você quer.

Perguntas frequentes

O que é um prompt de sistema?

Prompt de sistema (system prompt) é um conjunto de instruções dado a um modelo de IA antes de a conversa começar, e ele vale para todas as mensagens seguintes. Normalmente define o papel, o público, as regras e o formato padrão da resposta. Na API ele é um campo ou mensagem de sistema separado; nos apps de chat, as instruções personalizadas e as instruções de projeto cumprem o mesmo papel.

Qual é a diferença entre system prompt e user prompt?

O prompt de sistema guarda instruções permanentes para a conversa inteira e costuma ser escrito pelo desenvolvedor ou definido uma vez nas configurações. O prompt do usuário é uma única mensagem que pede uma coisa. Quando os dois entram em conflito, os modelos são treinados para dar mais peso ao prompt de sistema, mas isso é uma tendência, não uma garantia.

Dá para definir um system prompt no ChatGPT, no Claude ou no Gemini?

Não o campo de sistema bruto, mas algo bem próximo. O ChatGPT tem instruções personalizadas, instruções de projeto e instruções para GPTs personalizados. O Claude tem instruções de projeto e preferências de perfil. O Gemini tem instruções para Gems. O app combina o que você escreve ali com as próprias instruções de sistema e aplica isso às suas conversas.

Os usuários conseguem ver ou extrair um system prompt?

Muitas vezes, sim. Um usuário pode pedir ao modelo que repita as instruções ou enganá-lo para que faça isso, e os modelos não as mantêm em segredo de forma confiável. Nunca coloque senhas, chaves de API ou detalhes confidenciais do negócio em um prompt de sistema, e não conte com ele como barreira de segurança.

Qual deve ser o tamanho de um prompt de sistema?

O suficiente para cobrir o que vale para todas as mensagens, e nada além disso. Um pessoal pode ter três ou quatro frases. O prompt de sistema de um produto muitas vezes chega a uma página, com o papel, as regras, os fatos e o formato da saída. Cada palavra é enviada em cada requisição, então ele também custa tokens toda vez.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR