System prompt para agente com GPT-6 Astra: o que deixar fixo e o que mudar a cada tarefa?

diagrama mostrando o que fixar no system prompt GPT-6 Astra e o que deixar variável por tarefa
Resposta rápida

Montar um system prompt GPT-6 Astra é decidir fronteira: o que vale para toda tarefa fica fixo (papel, limites, formato de saída, hierarquia de prioridade, política de ferramentas) e o que muda a cada pedido vai no input. O guia oficial da OpenAI avisa que o Astra segue instrução longa melhor, porém é mais sensível a conflito no contexto, e orientação confusa em arquivo de skill pode travar o trabalho cedo. Some a isso o cache: bloco fixo no início, variável no fim, prefixo mínimo de 1.024 tokens. Contexto de 1.050.000 tokens não é desculpa pra inchar o permanente

Fala aí, beleza? Tem um erro clássico que todo mundo comete no primeiro agente sério: empilhar TUDO no system prompt e depois ficar olhando pro terminal sem entender por que o bicho parou no meio da tarefa

O GPT-6 Astra é o modelo de fronteira mais capaz da OpenAI, sucessor do GPT-5.6 Sol, voltado a raciocínio complexo, código, uso de computador, pesquisa e criação de documentos

O rollout começou em 3 de setembro de 2026, então a maioria dos agentes que tu vê por aí ainda está rodando com system prompt herdado da geração anterior

E aqui mora o problema: o guia oficial diz que o Astra segue instruções longas melhor que os modelos anteriores, mas é MAIS sensível a informação no contexto

Ou seja, aquele bloco gigante de regras que antes era ignorado agora é levado a sério, inclusive as partes que se contradizem

A promessa deste post é simples: separar o que fica permanente no system prompt do que vai por tarefa, com passo a passo, tabela de decisão e a conta de custo no fim

O que você precisa antes de montar o system prompt

Antes de escrever a primeira linha, vale checar o terreno

Acesso ao modelo. O GPT-6 Astra está disponível na API da OpenAI e também via Microsoft Azure e Amazon Bedrock

Segundo a própria OpenAI, ele chegou para usuários Pro, Enterprise e Business Premium no ChatGPT Work e no Codex, além da API, com o rollout para Plus e Business levando alguns dias

Model ID. Na API, o identificador é gpt-6-astra

Os limites que moldam a decisão. Isso aqui não é trivia, é o que define quanto cabe no fixo:

  • Janela de contexto: 1.050.000 tokens
  • Saída máxima: 128.000 tokens
  • Knowledge cutoff: 30 de abril de 2026

Esse cutoff importa mais do que parece: tudo que aconteceu depois dele precisa entrar no contexto, e contexto é justamente o recurso que tu não quer desperdiçar com instrução fixa repetida

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 114 aulas
  • 4 projetos
  • 9h 18min

Níveis de esforço de raciocínio. O Astra aceita reasoning.effort em low, medium, high, xhigh e max

Atenção nessa: o nível none NÃO é suportado

Mapa dos arquivos que o agente já enxerga. Antes de adicionar instrução nova, saiba o que já existe

Skills carregam instrução sob demanda, e no Codex o arquivo de instruções customizadas é o AGENTS.md

Se tu não sabe quais arquivos o teu agente lê, tu não tem um system prompt, tu tem um palpite 😅

Como montar o system prompt do agente com GPT-6 Astra, passo a passo

A lógica geral: permanente é o que vale pra toda tarefa, variável é tudo que depende do pedido

Vamos por partes

  1. Definir papel e escopo

Começa pelo que o agente é e, principalmente, pelo que ele NÃO é

Você é um agente de manutenção de código em um repositório Node.js.
Seu escopo: corrigir bugs, escrever testes e atualizar documentação do repositório atual.
Fora do escopo: alterar infraestrutura, tocar em credenciais, publicar pacotes.

O erro comum deste passo: escrever o papel do agente e já emendar o pedido da semana no mesmo bloco

Papel é fixo, pedido é variável, e misturar os dois é o começo do inchaço

Se tu ainda está calibrando o tom das instruções, ajuda entender o que muda ao escrever prompt para modelo de raciocínio antes de fechar esse bloco

  1. Declarar a hierarquia de prioridade explicitamente

A OpenAI recomenda tornar a precedência explícita: as instruções do usuário vencem as diretrizes de uma skill, e em conflito o modelo prioriza o usuário

Hierarquia de prioridade:
1. Instrução direta do usuário nesta tarefa
2. Diretrizes de skills e arquivos de instrução do repositório
Em caso de conflito entre as duas, siga o usuário e avise em uma linha qual diretriz foi deixada de lado.

O erro comum deste passo: assumir que a hierarquia é óbvia pro modelo

Não é. Se tu não escreve, o Astra fica tentando conciliar as duas fontes, e é exatamente aí que ele empaca

  1. Definir o formato de saída

O guia oficial diz que o Astra tende a usar listas, tabelas e Markdown pra deixar a resposta escaneável

Se a tua aplicação precisa de prosa corrida, ou de JSON puro, tu PRECISA especificar

Formato de saída padrão: prosa curta, no máximo 2 parágrafos, sem listas,
sem tabelas e sem Markdown. Código apenas quando for entregar arquivo.

O erro comum deste passo: reclamar que "o modelo enche de bullet point" sem nunca ter pedido o contrário

  1. Escrever os nunca faça e os limites de ferramenta

Aqui entram as proibições duras e a política de uso de ferramenta

Nunca faça:
- executar comandos destrutivos sem confirmação explícita
- alterar arquivos fora do diretório do projeto
- inventar valores de configuração que você não leu no repositório
Ferramentas: leitura de arquivo é livre. Escrita e execução exigem preâmbulo
explicando o motivo antes da chamada.

O erro comum deste passo: transformar a lista de proibições num romance

Cada regra que tu adiciona é uma chance a mais de conflitar com outra regra que já está lá

  1. Calibrar iniciativa e persistência

Esse é o ajuste mais importante do Astra na prática

O guia oficial afirma que ele tende a perguntar ao usuário quando informação adicional pode mudar materialmente o resultado

Ótimo pra decisão de negócio, péssimo pra agente que deveria assumir premissa razoável e seguir

A saída indicada é orientação de iniciativa e follow-through, incluindo a instrução de resolver a consulta inteira antes de devolver o controle:

Você é um agente: continue trabalhando até a consulta do usuário estar
completamente resolvida antes de devolver o controle.
Quando faltar um dado que não muda o resultado de forma material,
assuma a premissa mais razoável, registre a premissa em uma linha e siga.
Só pergunte quando a informação faltante mudar materialmente o resultado.

O erro comum deste passo: exagerar na dose e desligar a pergunta por completo

Agente que nunca pergunta erra em silêncio, e aí tu descobre tarde

  1. Aplicar as práticas agênticas do guia

Pra uso agêntico, a OpenAI recomenda três coisas no prompt: planejar a tarefa até a resolução completa, dar preâmbulos claros antes de decisões importantes de uso de ferramenta e usar uma ferramenta de TODO pra rastrear progresso

Antes de agir, decomponha a tarefa em subtarefas e registre no TODO.
Antes de cada decisão importante de ferramenta, escreva uma frase dizendo
o que vai fazer e por quê.
Após cada chamada de ferramenta, reflita sobre o resultado antes do próximo passo.
Atualize o TODO conforme avança.

O erro comum deste passo: pedir plano e TODO, mas não dar ferramenta de TODO nenhuma pro agente

Aí ele simula o controle no texto e tu não tem rastro de nada

  1. Ordenar o prompt: fixo no início, volátil no fim

A OpenAI orienta manter o começo do prompt estável, com o conteúdo duradouro no início e o conteúdo volátil (entrada do usuário, valores dinâmicos, dados de sessão) no fim

O motivo é mecânico: qualquer alteração nos tokens iniciais invalida o match de prefixo e derruba o cache

E o prompt caching exige um prefixo mínimo cacheável de 1.024 tokens em modelos GPT-5.6 e posteriores

{
  "model": "gpt-6-astra",
  "instructions": "<bloco fixo: papel, hierarquia, formato, nunca faça, iniciativa>",
  "input": "<bloco variável: objetivo do pedido, arquivos, dados de sessão>",
  "reasoning": { "effort": "high" }
}

O erro comum deste passo: injetar data, nome do usuário ou ID da sessão logo na primeira linha do bloco fixo

Parece inofensivo, mas muda os tokens iniciais a cada requisição e mata o cache do prompt inteiro

  1. Reenviar as instruções a cada requisição

Na Responses API, o parâmetro instructions carrega as instruções de alto nível de comportamento (tom, objetivos, exemplos) e tem prioridade sobre o prompt enviado em input

É esse par que monta o system prompt do agente neste post: o permanente vai em instructions, o que muda a cada pedido vai em input

Só que ele NÃO é herdado entre turnos quando tu usa previous_response_id

As instruções do turno anterior não ficam no contexto, precisam ser reenviadas em cada request

O erro comum deste passo: montar conversa multi-turno com previous_response_id, mandar instructions só no primeiro turno e depois jurar que o agente "esqueceu as regras"

Ele não esqueceu, tu que não mandou 😀

O que deixar fixo e o que mandar por tarefa: exemplos reais

A fronteira fica bem mais clara com cenário na mesa

Agente de código no Codex:

Linha fixa: papel de mantenedor do repositório, hierarquia usuário acima de skill, formato de saída (diff mais explicação curta), lista de nunca faça, política de preâmbulo antes de escrita e execução

Linha por pedido: qual bug, qual arquivo, qual branch, qual critério de aceite, qual comando de teste rodar nesta tarefa

O AGENTS.md do repositório é o lugar natural do que vale pra todo mundo que toca naquele projeto, não do que vale pra tarefa de hoje

Agente de pesquisa:

Linha fixa: papel de pesquisador, regra de citar a fonte de cada afirmação, formato de saída, regra de nunca completar lacuna com achismo, lembrete de que o knowledge cutoff é 30 de abril de 2026 e que tudo posterior precisa vir de ferramenta

Linha por pedido: a pergunta, o recorte de tempo, as fontes permitidas, o formato do entregável daquela vez

Como pesquisa vira insumo de código com frequência, vale combinar isso com um processo pra validar a resposta antes de usar no projeto

Agente que delega para outros agentes:

Em sistemas multiagente, o guia recomenda usar o prompt pra calibrar quanto o Astra deve delegar e paralelizar trabalho

E tem um detalhe que muita gente esquece: pedir que as mensagens entre agentes e a resposta final sejam legíveis, porque um humano pode ler aquilo

Delegue subtarefas independentes em paralelo. Tarefas que dependem do
resultado de outra ficam em sequência.
Toda mensagem enviada a outro agente e a resposta final devem ser legíveis
por um humano: sem código interno, sem abreviação particular.

Linha fixa: essa política de delegação e legibilidade

Linha por pedido: quantos agentes, qual o objetivo do lote, qual o orçamento de tempo daquela rodada

Agente que gera documento:

Linha fixa: papel, tom, estrutura padrão do documento, o que nunca entra (dado não verificado, promessa comercial), formato de saída explícito

Linha por pedido: o tema, o público, o tamanho, os dados daquele documento específico

Instrução fixa x instrução por tarefa: tabela de decisão

Antes da tabela, um lembrete do guia oficial: o Astra segue instruções de forma muito precisa e o resultado varia conforme o tipo de prompt usado, system, developer, user ou uma combinação deles

Só que isso é sobre os papéis de prompt citados no guia, e não sobre o esquema que a gente montou aqui: neste post o bloco fixo vai no parâmetro instructions da Responses API e o variável vai no input, com instructions tendo prioridade sobre o input

Então "onde colocar" não é detalhe de organização, muda a saída

Tipo de informação Onde colocar Por quê
Papel e escopo do agente Fixo (instructions) Vale para toda tarefa e nunca muda entre pedidos
Limites e proibições Fixo Regra de segurança não pode depender de o usuário lembrar de repetir
Formato de saída Fixo O Astra tende a listas, tabelas e Markdown; a preferência precisa ser declarada
Hierarquia de prioridade Fixo Recomendação oficial: usuário vence diretriz de skill, e isso precisa estar escrito
Política de ferramentas Fixo Preâmbulo antes de decisão de ferramenta e TODO de progresso valem para qualquer tarefa
Objetivo do pedido Por tarefa (input) Muda a cada requisição, por definição
Dados de sessão Por tarefa, no fim do prompt Conteúdo volátil no início invalida o match de prefixo e derruba o cache
Arquivos do momento Por tarefa O conjunto relevante muda a cada pedido e inchar o fixo com ele desperdiça contexto
Critérios de aceite Por tarefa "Pronto" para esta tarefa raramente é "pronto" para a próxima

Por que instrução fixa inchada trava o agente em tarefas longas

Os sintomas são bem reconhecíveis

Sintoma 1: o agente pausa e bloqueia o trabalho cedo. Ele começa, dá dois passos e para esperando alguma coisa

Sintoma 2: pergunta demais. Em vez de assumir premissa razoável, devolve pergunta e fica parado

Sintoma 3: ignora o formato pedido. A resposta volta em bullet quando tu queria prosa, ou em prosa quando tu queria JSON

Sintoma 4: o custo explode. A conta sobe sem a tarefa ficar maior

As causas, ancoradas na doc:

O guia do modelo é bem direto: o Astra segue instruções longas melhor que modelos anteriores, mas é mais sensível a informação no contexto

E afirma que orientação pouco clara ou conflitante em um arquivo de skill pode fazer o modelo pausar e bloquear o trabalho cedo

Junta com o comportamento de perguntar quando informação adicional pode mudar materialmente o resultado, e tu tem o combo: regra ambígua no fixo mais tendência a perguntar igual a agente parado

No custo, o degrau é objetivo: requisições com mais de 272 mil tokens de input passam a ser cobradas em 2x nas taxas de input e cache e 1,5x no output, valendo pra requisição INTEIRA

Repare no detalhe: não é só o excedente, é o request completo

As soluções:

Auditar os arquivos de instrução. A OpenAI recomenda auditar skills e outros arquivos acessíveis ao modelo, como o AGENTS.md, procurando instruções que possam influenciar o comportamento

O guia inclusive oferece um prompt pronto pra encontrar orientação silenciosa ou conflitante quando a aplicação carrega muitos arquivos de instrução, vale pegar direto lá

Mover fluxo repetível para skill. A doc da OpenAI descreve skills na API como adequadas para fluxos repetíveis, porque carregam instruções mais ricas, scripts e referências sem inchar o contexto do agente logo de início

Traduzindo: o passo a passo detalhado do fluxo de deploy não precisa estar no system prompt de toda tarefa, ele carrega sob demanda

Declarar prioridade explícita. Já falei no passo 2, e repito porque é o que resolve conflito sem tu ter que caçar cada contradição

Custo: como a divisão fixo x variável afeta a conta

Essa parte convence até quem não liga pra organização de prompt 😛

O preço padrão do GPT-6 Astra na API, por 1 milhão de tokens:

  • Input: US$ 10,00
  • Input cacheado: US$ 1,00
  • Output: US$ 50,00

A escrita de cache é cobrada a 1,25x a taxa de token de input não cacheado

A leitura de cache custa 0,1x a taxa de input não cacheado

Agora repara na matemática: o mesmo bloco fixo que custa US$ 10,00 por milhão sem cache passa a custar US$ 1,00 por milhão quando o prefixo bate

E ele só bate se tu mantiver os tokens iniciais estáveis, com o conteúdo duradouro no começo e o volátil no fim, respeitando o prefixo mínimo cacheável de 1.024 tokens

Qualquer alteração nos tokens iniciais invalida o match de prefixo

Então aquele timestamp inocente no topo do system prompt não é só desleixo, é a diferença entre pagar 1x e pagar 0,1x pelo bloco que se repete em TODA requisição

E tem o degrau: acima de 272.000 tokens de input, a requisição inteira passa a 2x em input e cache e 1,5x no output

Contexto de 1.050.000 tokens não é convite pra encher, é margem de manobra

Inchar o permanente empurra tuas requisições pra cima desse degrau sem tu perceber, porque o fixo entra em todas elas

Resumo e próximo passo

A regra de bolso cabe em uma linha: permanente é o que vale pra toda tarefa, variável é tudo que depende do pedido

No fixo: papel, escopo, hierarquia de prioridade, formato de saída, os nunca faça, política de ferramenta, calibragem de iniciativa e persistência

No variável: objetivo do pedido, arquivos do momento, dados de sessão, critérios de aceite

E lembra do detalhe operacional que pega muita gente: instructions não é herdado com previous_response_id, então reenvia a cada requisição

O próximo passo é bem concreto

Roda a auditoria dos arquivos de instrução do teu agente, skills e AGENTS.md incluídos, usando o prompt que o guia da OpenAI oferece pra isso

Corta o que conflita, move fluxo repetível pra skill, deixa o fixo estável no início do prompt

Depois mede de novo: quantas vezes o agente parou pra perguntar, quantas vezes ele ignorou o formato, quanto caiu o custo de input

É chato? Um pouco. Mas é isso que separa agente que entrega de agente que fica pedindo permissão pra respirar 😀

até o próximo post!

Perguntas frequentes

Qual a diferença entre o parâmetro instructions e o texto que vai dentro de input na Responses API do GPT-6 Astra?

O parâmetro instructions carrega as instruções de alto nível (tom, objetivos, exemplos) e tem prioridade sobre o que está em input. Mas atenção: instructions não é herdado entre turnos quando tu usa previous_response_id, então precisa reenviar essas instruções a cada requisição.

Por que o system prompt do GPT-6 Astra pode sair mais caro em tarefas com muito contexto?

Porque requisições com mais de 272 mil tokens de input passam a ser cobradas em 2x nas taxas de input e cache, e 1,5x no output, valendo pra requisição inteira. Se o teu system prompt fixo já é grande e ainda soma com dado volátil grande, essa conta sobe rápido.

Quanto custa manter o system prompt em cache no GPT-6 Astra?

A escrita de cache é cobrada a 1,25x a taxa de input padrão, e a leitura sai por 0,1x essa mesma taxa. O prefixo mínimo cacheável é de 1.024 tokens, por isso a OpenAI orienta deixar conteúdo fixo no início do prompt e o variável no fim.

O que acontece se o system prompt tiver instrução conflitante com uma skill carregada pelo agente?

O guia oficial diz que o Astra é mais sensível a informação no contexto, e orientação pouco clara ou conflitante em um arquivo de skill pode fazer ele pausar e bloquear o trabalho cedo. Por isso a recomendação é declarar hierarquia explícita: usuário tem precedência sobre skill.

Dá pra usar reasoning.effort none pra economizar no system prompt do GPT-6 Astra?

Não. O Astra aceita os níveis low, medium, high, xhigh e max, mas não suporta o nível none. Se o objetivo é reduzir custo de raciocínio, o piso é low.

O system prompt do GPT-6 Astra funciona igual quando o agente usa system, developer e user juntos?

Não necessariamente. O guia oficial afirma que o Astra segue instruções de forma muito precisa e que os resultados variam conforme o tipo de prompt usado, seja system, developer, user ou uma combinação deles. Isso é sobre os papéis de prompt citados no guia, e não sobre o esquema descrito neste post, que monta o bloco fixo no parâmetro instructions da Responses API e o variável no input, com instructions tendo prioridade sobre o input. Se o teu agente usa esses papéis separados, vale testar a combinação antes de fixar em produção.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares