Migrando agentes do GPT-5.6 Terra para o GPT-6.1 Terra no Bedrock
cerca de 8 min · áudio gerado ao tocar
O anúncio do GPT-6.1 Terra no Amazon Bedrock, em 26/10/2026, vende a troca como óbvia: 15 pontos percentuais a mais que o GPT-5.6 Terra no Agents' Last Exam da OpenAI e preço de token pelo menos 50% menor. A pergunta que me interessa não é se o modelo novo é melhor, é o que quebra na sua conta AWS no dia em que você troca o ID do modelo. Li o model card linha a linha contra o do 5.6 Terra, e a resposta tem nome: região de origem, API escolhida, cache e quota. Este é o roteiro que eu seguiria para migrar um agente em produção sem descobrir isso pelo plantão.
O ponto de partida
O cenário que uso como referência é comum em ambiente financeiro: um agente interno que lê políticas, consulta dois ou três sistemas por tool-use e devolve JSON estruturado para um fluxo em Step Functions. Ele roda em bedrock-runtime com o perfil us.openai.gpt-5.6-terra, porque a área de risco não aceita roteamento global, e o perfil geográfico dos EUA, com origem na Virgínia, fica restrito a us-east-1, us-east-2 e us-west-2.
Uma execução típica tem cerca de 40 mil tokens de entrada, dos quais 30 mil são prefixo estável (instruções, definição das ferramentas, trechos de política), e 3 mil tokens de saída. Com o preço de tabela do 5.6 Terra em US CRIS (US$ 2,20 por milhão de entrada, US$ 0,22 por milhão de leitura de cache e US$ 13,20 por milhão de saída), essa execução custa perto de US$ 0,068 em regime estável. Parece pouco até multiplicar por 200 mil execuções por mês: são cerca de US$ 13,6 mil só de inferência.
Esses números são conta sobre preço publicado, não medição de cliente. Servem para dimensionar a decisão. O que pesa de verdade é o calendário: o model card do 5.6 Terra garante EOL não antes de 13/07/2027, com período legado de pelo menos seis meses. Há tempo, mas não há folga para uma migração feita às pressas no último trimestre, que é exatamente quando o time está ocupado com outra coisa.
O que o model card diz e o anúncio não
O anúncio fala de capacidade, velocidade e preço. O model card fala de operação, e é nele que mora o risco da migração. Comparando os dois cards lado a lado, quatro diferenças mudam o desenho.
Região no bedrock-mantle: o 5.6 Terra roda in-Region no endpoint bedrock-mantle em us-east-1, us-east-2, us-west-2 e nas duas regiões GovCloud. O 6.1 Terra, no lançamento, só em us-east-1. Quem usa o SDK da OpenAI apontado para bedrock-mantle.us-west-2.api.aws não migra trocando uma string.
Região de origem no bedrock-runtime: a tabela do 6.1 Terra não lista sa-east-1 nem me-central-1 como origem do perfil global, e não traz o perfil geográfico in. que o 5.6 Terra oferece para Mumbai e Hyderabad. Para quem chama de São Paulo, isso decide onde o cliente da carga precisa rodar.
API Invoke: a tabela de APIs do 6.1 Terra marca InvokeModel como suportado no bedrock-runtime; a do 5.6 Terra marca como não suportado. Isso abre caminho para quem tem código legado em Invoke, mas não muda as restrições de Guardrails e de perfis de aplicação, que continuam presas ao Converse.
Tiers de serviço: só Standard. Sem Priority, Flex ou Reserved. Se o seu plano de capacidade dependia de reservar throughput, ele não existe para este modelo hoje.
Nada disso aparece no What's New. Anúncio é gatilho; o contrato operacional está na documentação.
A jornada, em seis decisões
- 1
Inventariar como o modelo é chamado hoje
Antes de tocar em código, extraia dos invocation logs e do CloudTrail quatro dados por aplicação: endpoint (
bedrock-runtimeoubedrock-mantle), API (Converse, Responses, Chat Completions), região de origem e distribuição do tamanho de entrada. O campoadditionalEventData.inferenceRegiondo CloudTrail, registrado na região de origem, mostra onde cada requisição foi de fato processada. Conte quantas requisições passam de 272 mil tokens: elas mudam de faixa de preço. - 2
Preparar IAM e SCP antes do primeiro request
O model card exige
bedrock:InvokeModelno projeto default da conta (arn:aws:bedrock:{region}:{account-id}:project/default) além do perfil de inferência. Esquecer isso geraAccessDeniedExceptionque parece bug de credencial. Para perfil geográfico, a SCP precisa liberar todas as regiões de destino do perfil; para perfil global, precisa permitiraws:RequestedRegionigual aunspecified, o que muitas landing zones bloqueiam por padrão. - 3
Avaliar offline com tráfego real
Reexecute de 300 a 500 execuções registradas, já sanitizadas, contra
us.openai.gpt-6.1-terra. Compare três sinais por tarefa: taxa de JSON válido contra o schema comstrict: true, acerto na escolha e nos argumentos das ferramentas, e tokens de saída por tarefa. O benchmark da OpenAI é hipótese; a sua carga é a prova. - 4
Reposicionar o cache
No Responses, marque o fim do prefixo estável com
prompt_cache_breakpointe useprompt_cache_options.mode: explicitpara o breakpoint automático não consumir as quatro escritas por requisição. O prefixo mínimo é 1.024 tokens e o TTL é 30 minutos. Acompanhecached_tokenscontracache_write_tokens: escrita custa 1,25x a entrada sem cache. - 5
Canário com critério de promoção escrito
Divida o tráfego por flag (5%, 25%, 100%), com o ID do modelo vindo de configuração e não de código. Escreva antes o que promove e o que reverte: falha de schema não acima da linha de base, p95 de latência igual ou menor, custo por execução e
InvocationThrottlesdentro do orçamento. Critério decidido depois do resultado é racionalização. - 6
Desligar o caminho antigo de propósito
Mantenha o perfil do 5.6 Terra como rollback por 30 dias depois dos 100%. Depois, remova-o da política IAM. Permissão esquecida vira rota de fuga: alguém volta ao modelo antigo num hotfix e ninguém percebe até a fatura.
Converse ou Responses: a decisão que trava a migração
No bedrock-runtime, o model card do 6.1 Terra amarra recursos a APIs diferentes, e eles não se somam. Guardrails só funcionam pelo Converse. Perfis de inferência de aplicação, que é como você atribui custo por time com tags, também só pelo Converse. Já o cache explícito só existe no Responses. No Converse você fica com o cache implícito, que a própria documentação chama de best effort.
Há duas restrições a mais no Converse: ele não aceita bloco document e rejeita imagem dentro de toolResult com ValidationException. Um agente que devolve captura de tela de uma ferramenta para o modelo quebra na primeira chamada.
O custo dessa escolha é calculável. No cenário de referência, o prefixo de 30 mil tokens custa US$ 0,033 sem cache e US$ 0,00165 com leitura de cache, a US$ 1,10 e US$ 0,055 por milhão. Cada miss custa 20 vezes mais no prefixo. Se o cache implícito acertar 60% e o explícito 95%, a diferença em 200 mil execuções por mês fica perto de US$ 2,2 mil.
Use o Converse quando Guardrails da AWS e alocação de custo por perfil de aplicação forem exigência de auditoria, e meça o acerto real por cacheReadInputTokens antes de aceitar a perda. Use o Responses quando o prefixo for grande e estável e a filtragem de conteúdo já acontecer em outra camada que você controla. Fazer metade da frota em cada API sem decidir é o pior caso: duas trilhas de auditoria, dois modelos de custo.
Migração por canário com evidência
O diagrama responde a uma pergunta: onde fica o controle da troca de modelo. O roteador lê o ID do modelo de uma flag e divide o tráfego entre os dois perfis US CRIS. As setas tracejadas são assíncronas: os logs de invocação chegam depois, e a promoção é uma decisão humana baseada no harness, não um gatilho automático. Simplifiquei IAM, SCP e as regiões de destino do perfil.
- Agent service · ECS / Lambda
- Model router · AppConfig flag
- GPT-5.6 Terra · us.openai.gpt-5.6-terra
- GPT-6.1 Terra · us.openai.gpt-6.1-terra
- Invocation logs · S3 + CloudWatch
- Eval harness · replay + diff
Antes e depois, em preço de tabela US CRIS
Quota, contexto longo e o custo que aparece depois
O desconto de preço é a parte fácil. O que derruba a migração é a quota. No bedrock-runtime, o limite é medido em tokens por minuto com burndown de 10x na saída: cada token de saída consome 10 da quota. Tokens lidos do cache não contam na quota de entrada. No cenário de referência, uma execução consome 10 mil tokens de entrada sem cache mais 30 mil equivalentes de saída. Três quartos da quota vão para a saída.
Isso cria um modo de falha silencioso. Se o modelo novo responder com 20% mais tokens de saída, porque raciocina mais ou escreve mais, o custo ainda cai bastante e nenhum alarme de FinOps dispara. A quota, porém, sobe 15% por execução, e o primeiro sinal é ThrottlingException no pico da manhã. Por isso o canário observa OutputTokenCount e InvocationThrottles no CloudWatch, não só a fatura.
O segundo custo tardio é o contexto longo. O 6.1 Terra aceita 1.050.000 tokens de contexto (a página da OpenAI fala em 922 mil de entrada máxima), mas acima de 272 mil tokens de entrada a requisição inteira muda de faixa: entrada a US$ 2,20 e saída a US$ 8,25 por milhão em US CRIS. Um agente que acumula histórico sem resumir atravessa essa linha na vigésima volta e dobra o custo de entrada daquela chamada em diante. Coloque um teto explícito de histórico, perto de 250 mil tokens, e resuma acima dele. Ter 1 milhão de tokens de contexto não obriga ninguém a usar 1 milhão.
O contrato operacional de cada modelo
| Critério | GPT-5.6 Terra | GPT-6.1 Terra | GPT-6.1 Sol |
|---|---|---|---|
| Entrada / saída US CRIS (US$ por milhão) | 2,20 / 13,20 | 1,10 / 5,50 | 2,20 / 11,00 |
| Leitura de cache (US$ por milhão) | 0,22 | 0,055 | 0,11 |
In-Region no bedrock-mantle | us-east-1, us-east-2, us-west-2, GovCloud | us-east-1 | us-east-1 |
InvokeModel no bedrock-runtime | Não | Sim | Sim |
Guardrails no bedrock-runtime | Só Converse | Só Converse | Chat Completions, InvokeModel e Converse |
| Tiers além de Standard | Nenhum | Nenhum | Ultrafast (6x Standard) |
| Ciclo de vida | EOL não antes de 13/07/2027 | EOL não antes de 26/10/2027 | Regra da OpenAI, aviso mínimo de 6 meses |
Riscos que eu trataria antes do canário
Origem em São Paulo: a tabela do 6.1 Terra não lista sa-east-1 como origem do perfil global; quem chama de lá precisa mover o cliente ou esperar. GovCloud e bedrock-mantle fora de us-east-1: sem caminho no lançamento. Saída mais longa: com burndown de 10x, 20% a mais de saída vira 15% a mais de quota por execução no cenário de referência, sem alarme de custo. Linha de 272 mil tokens: atravessou, a requisição inteira paga a faixa longa. Benchmark do fornecedor: os 15 pontos e o "três vezes mais rápido" são do Agents' Last Exam da OpenAI, não da sua carga.
Anti-padrões desta migração
- Trocar o model ID e chamar de migração: sem inventário de endpoint, API e região de origem, a primeira falha vem do
bedrock-mantleemus-west-2ou de um cliente emsa-east-1, não do modelo. - Promover pelo benchmark do fornecedor: o Agents' Last Exam não conhece o seu schema nem as suas ferramentas; promoção sem replay de tráfego real é aposta.
- Medir só a fatura: o custo cai mesmo se a saída crescer, e a quota com burndown de 10x estoura antes de qualquer alarme de FinOps.
- Ligar o perfil global para fugir da tabela de regiões: resolve a disponibilidade e cria um problema de residência de dados, além de exigir
aws:RequestedRegionunspecifiedna SCP.
Eu começaria esta migração em novembro, não em junho de 2027. A primeira semana iria toda para o inventário e para a decisão entre Converse e Responses, porque é ela que define auditoria, cache e atribuição de custo pelos próximos dois anos. Depois de 16 anos operando plataformas financeiras, a lição que mais se repete em troca de dependência é esta: o custo da migração não é o de trocar o componente, é o de descobrir tarde o contrato que mudou junto. Com modelo de linguagem isso dobra, porque o comportamento também muda e nenhum teste de unidade pega.
Referências
Veredito
Migre, e comece agora. Use o GPT-6.1 Terra quando a sua carga rodar em bedrock-runtime com perfil us. ou global. a partir de uma região de origem listada no model card, quando o replay de tráfego real mostrar schema e tool-use iguais ou melhores, e quando a quota aguentar a saída nova com burndown de 10x. Fique no 5.6 Terra por enquanto se você depende de bedrock-mantle fora de us-east-1, de GovCloud ou de origem em sa-east-1 com exigência de residência; o EOL de 13/07/2027 dá margem para esperar a tabela de regiões crescer. Em qualquer caso, decida Converse ou Responses antes do canário: é essa escolha que você vai manter, auditar e pagar pelos próximos dois anos.
Continue lendo
Deep dives de arquitetura, AWS, IA e mercado: direto no seu email. Grátis.
Sem spam · cancele quando quiser
Pergunte ao Fernando sobre isto
Uma resposta focada sobre este artigo, do meu assistente de IA, baseada no meu trabalho.
Participe da conversa
Entre para comentar
Confirme seu e-mail para participar, você também recebe a newsletter. Sem senha.