Otimizando System Prompts de Agentes com o Amazon Bedrock AgentCore

O problema clássico de melhorar um agente

Quem já trabalhou com agentes de IA sabe que melhorar a qualidade de um agente com desempenho abaixo do esperado costuma ser um processo manual e demorado. O fluxo típico envolve revisar traces longos para identificar onde o agente erra, ajustar componentes individuais como prompts, descrições de ferramentas e habilidades, e então rodar as avaliações novamente para verificar se houve melhora. É iterativo, custoso e difícil de escalar.

É justamente esse problema que a AWS busca resolver com o AgentCore optimization, uma funcionalidade do Amazon Bedrock AgentCore. Em um post de lançamento anterior, a AWS apresentou a capacidade de forma geral. Agora, o time técnico aprofunda como o mecanismo de recomendação funciona por dentro — e os números de desempenho são bastante expressivos.

Como o fluxo de otimização funciona

O AgentCore optimization parte dos traces de produção já registrados pelo AgentCore Observability. Esses traces são combinados com um sinal de recompensa (reward signal) para alimentar o otimizador, que propõe mudanças na configuração do agente. O ciclo completo envolve três etapas principais: gerar recomendações de configuração, validá-las por meio de avaliação em lote offline e testes A/B com tráfego real, e então promover as versões vencedoras para produção.

O componente central desse processo é o reflector — o módulo de raciocínio do otimizador. Ele analisa o comportamento avaliado do agente, identifica padrões que diferenciam execuções bem-sucedidas de falhas, e propõe alterações direcionadas na configuração. O output principal é um system prompt revisado, acompanhado de uma explicação sobre por que as mudanças propostas devem melhorar a qualidade do agente.

Um detalhe importante de design: traces de agentes costumam ser longos, e mesmo algumas dezenas deles podem facilmente ultrapassar a janela de contexto de um modelo. Em vez de truncar ou pré-resumir os traces para que caibam no prompt do reflector, a AWS optou por disponibilizar o corpus completo de traces via sistema de arquivos. O reflector recebe uma ferramenta de shell e é direcionado ao diretório com os traces, podendo inspecioná-los conforme necessário — listando arquivos, buscando com grep, lendo com cat, comparando saídas com diff. Não existe um pipeline fixo de extração de sinais; o próprio reflector determina quais evidências são relevantes e como traduzi-las em mudanças de configuração.

Dois modos de reflexão: Single Agent e Sub-Agent

Single Agent Reflector

O Single Agent Reflector é o modo que impulsiona as recomendações de system prompt no AgentCore optimization atualmente. Um único agente reflector percorre todo o conjunto de traces em uma única passagem. Ele analisa a distribuição de scores, examina os segmentos mais informativos de traces individuais, contrasta sucessos com falhas e retorna um conjunto coerente de edições para a configuração do agente.

Cada época de otimização repete esse ciclo: pontuar os traces, refletir e aceitar as edições que passam pelos guardrails. É possível executar épocas adicionais para trocar tempo de otimização por ganhos adicionais de qualidade.

Sub-Agent Reflector

O Sub-Agent Reflector estende o Single Agent Reflector, trocando um pouco de eficiência por um teto de qualidade mais alto. Em vez de um único agente percorrendo todos os traces, ele utiliza um swarm de agentes para explorar diferentes partes do conjunto de traces de forma dinâmica.

O problema que essa abordagem resolve é real: uma única passagem de reflexão pode se fixar nos padrões dos primeiros 5 a 10 traces analisados e deixar passar modos de falha que aparecem apenas em uma parcela menor do corpus. Com o Sub-Agent Reflector, cada sub-agente realiza uma análise em três níveis sobre um único trace:

  • Superfície: extrai a recompensa, a dificuldade e o resultado da execução.
  • Nível de turno: localiza o ponto de decisão onde a trajetória divergiu do caminho ótimo, usando comandos de shell como jq e grep para analisar o JSON do rollout.
  • Cognitivo: diagnostica por que o agente falhou naquele ponto de decisão e fornece orientação reflexiva.

Cada sub-agente retorna uma descoberta concisa e uma regra corretiva. Como cada sub-agente opera em sua própria janela de contexto, ele consegue se concentrar em um único trace sem ser influenciado pelos demais. O orquestrador então agrega as descobertas, generaliza padrões recorrentes, remove duplicatas e condensa os insights em mudanças de configuração.

Essa funcionalidade experimental foi lançada como release preliminar no repositório open source do Strands no GitHub.

Guardrails: evitando que a otimização vá na direção errada

Um risco conhecido em otimização automática de configurações é o desvio em direções indesejadas: prompts que crescem indefinidamente após cada otimização, prompts que reproduzem literalmente frases dos traces de treinamento, ou restrições de segurança que são suavizadas na busca por um score melhor no avaliador.

Para evitar esses problemas, a AWS aplica guardrails baseados em rubrica a cada candidato de atualização antes que ele seja aceito:

  • Teto de tamanho: candidatos que aumentam a configuração em mais de 20% em relação à versão anterior são rejeitados, e o otimizador é solicitado a compactar a proposta.
  • Verificação de segurança: candidatos são avaliados contra padrões de segurança antes da promoção.
  • Sem frases verbatim dos traces: candidatos não podem reutilizar frases exatas dos traces usados na otimização, o que ajuda a evitar overfitting em características superficiais dos traces de treinamento.

O post da AWS deixa claro que as recomendações devem ser revisadas e testadas antes do uso em produção — os guardrails são uma camada de proteção, não uma garantia absoluta de qualidade.

Resultados de avaliação nos benchmarks AppWorld e WebShop

A AWS avaliou o Single Agent Reflector e o Sub-Agent Reflector ao lado de duas linhas de base estabelecidas — GEPA e MIPROv2 — em dois benchmarks públicos: AppWorld e WebShop. Para cada método, o espaço de configuração foi varrido e o melhor resultado foi reportado junto com o número de turnos e o tempo de otimização em relógio de parede.

Dois padrões se destacam nos resultados:

Single Agent Reflector oferece a melhor relação qualidade-custo. No AppWorld, ele atinge 81,55% em 6 minutos e 20 turnos — 18 vezes mais rápido que o GEPA e 36 vezes mais rápido que o MIPROv2 para um score comparável ou superior. No WebShop, atinge 78,31% com apenas 5 turnos e 1 minuto de tempo de otimização. Esse modo é ideal quando ciclos de iteração rápidos são prioridade.

Sub-Agent Reflector alcança a maior qualidade nos dois benchmarks. No AppWorld, chega a 95,83% — um ganho de 23 pontos percentuais sobre a baseline e 16 pontos acima do segundo melhor método. No WebShop, atinge 79,15%, com ganho de 4 pontos sobre a baseline. A análise por sub-agente tem maior impacto no AppWorld, onde os modos de falha são mais diversos e uma única passagem de reflexão tende a perder padrões minoritários.

A tabela abaixo resume os melhores resultados por método em cada benchmark. As configurações são expressas como n_samples × épocas para os reflectors e n_samples × iterações para GEPA e MIPROv2. O modelo reflector utilizado foi o Opus 4.6 e o modelo de tarefa foi o Sonnet 4.5.

GEPA MIPROv2 Single Agent Reflector Sub-Agent Reflector
AppWorld (baseline 72,62%)
Taxa de sucesso 79,63% 74,40% 81,55% 95,83%
Configuração 20 × 5 20 × 5 20 × 1 10 × 10
Número de turnos 100 100 20 100
Tempo de otimização 108 min 216 min 6 min 193 min
WebShop (baseline 75,03%)
Recompensa 74,77% 72,12% 78,31% 79,15%
Configuração 10 × 5 5 × 5 5 × 1 20 × 10
Número de turnos 50 25 5 200
Tempo de otimização 48 min 60 min 1 min ~20 min

Boas práticas para usar o otimizador

Com base na experiência acumulada, a AWS compartilha algumas orientações práticas para quem for usar o AgentCore optimization:

  • Comece com um conjunto pequeno de traces. Entre 10 e 50 traces diversos já oferecem um ponto de partida útil para a otimização. Expanda o conjunto apenas se as recomendações estiverem muito restritas.
  • Use mais do que um scalar reward quando for apropriado. O reflector lê os traces como arquivos, então qualquer sinal escrito no trace fica disponível para ele. Além do score numérico, feedback em texto livre — como a justificativa de um avaliador, uma anotação humana ou uma reclamação de usuário — pode ser incluído no mesmo arquivo de trace.
  • Revise e valide as recomendações. Use a explicação da recomendação, avaliações offline e testes A/B controlados para avaliar uma configuração proposta antes de promovê-la para produção.
  • Use análise independente de traces para modos de falha diversos. O Sub-Agent Reflector experimental analisa traces de forma independente antes de agregar os resultados. Considere essa abordagem quando diferentes subconjuntos de traces revelam padrões de falha distintos.
  • Estenda a análise além dos system prompts. Evidências dos traces também podem identificar oportunidades de melhoria em descrições de ferramentas e habilidades reutilizáveis. Aplique os mesmos guardrails e o mesmo fluxo de validação ao avaliar esses tipos de mudanças de configuração.
  • Comece pelo fluxo de otimização gerenciado. Para a maioria dos casos de uso em produção, o AgentCore optimization oferece o caminho recomendado de traces até recomendações e validação. Times com restrições especializadas de pesquisa ou integração podem aplicar o mesmo padrão de trace, avaliação e validação em um fluxo de reflexão customizado.

Por onde começar

Para quem quiser explorar o AgentCore optimization na prática, a AWS disponibiliza vários pontos de entrada: a página de detalhes do Amazon Bedrock AgentCore, a documentação de otimização, o console do Amazon Bedrock AgentCore e o repositório de exemplos do AgentCore. O Sub-Agent Reflector experimental também está disponível no repositório open source do Strands no GitHub para quem quiser explorar a abordagem multi-agente de forma mais aprofundada.

Fonte

Optimizing agent system prompts with Amazon Bedrock AgentCore (https://aws.amazon.com/blogs/machine-learning/optimizing-agent-system-prompts-with-amazon-bedrock-agentcore/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *