Amazon Bedrock Agents, Flows e Orquestração
Domine agentes, Flows e orquestração do Amazon Bedrock para o exame AIF-C01, anatomia de agente, o loop de pré-processamento/orquestração/pós-processamento, action groups e return of control, InvokeAgent e session state, memória, colaboração multi-agente, nós e preços do Flows, e a árvore de decisão que separa um prompt simples de um agente, um workflow ou código.
Tudo neste curso até agora foi sobre uma chamada de modelo: escreva um prompt, obtenha uma completion, avalie-a. IA em produção raramente é uma chamada. É uma sequência, procure algo, verifique uma condição, chame uma API, faça uma pergunta de acompanhamento ao usuário, tente de novo, e o exame tem um vocabulário dedicado para quem é dono dessa sequência: você (o código da sua aplicação), o modelo (um agente que escolhe ações em runtime), um grafo que você desenhou (Amazon Bedrock Flows), ou uma máquina de estados (AWS Step Functions). A Lição 11 é sobre essa decisão de propriedade, e sobre os serviços da AWS que implementam cada resposta.
=====================================================================
QUEM É DONO DO PRÓXIMO PASSO? (Digest: 06 out. 2026)
=====================================================================
SEU CÓDIGO ........... Converse + toolConfig (o modelo propõe JSON,
seu app executa a função)
O MODELO ............. agente Amazon Bedrock: pré-processamento ->
loop de orquestração (rationale -> action ->
observation) -> pós-processamento
O GRAFO .............. Amazon Bedrock Flows (ex-"Prompt Flows"):
nós Input/Prompt/KB/Condition/Lambda/Agent
A DEFINIÇÃO .......... AWS Step Functions: máquina de estados
determinística, retries, waits, aprovação humana
--------------------------------------------------------------------
NOMES QUE VALEM A PENA SABER
Amazon Bedrock Agents Classic ... fechado para novos clientes
em 30 jul 2026 (manutenção)
Amazon Bedrock AgentCore ........ sucessor (GA, 9 regiões)
Amazon Bedrock Flows ............ GA 22 nov 2024 (ex-Prompt
Flows), cobrado por node
transition
Amazon Bedrock Prompt Management . prompts salvos e versionados
=====================================================================Como ler esta lição. Três regras valem ao longo de todo o texto. (1) Nomeação é examinável: a AWS renomeou "Agents for Amazon Bedrock" para Amazon Bedrock Agents Classic e "Prompt Flows" para Amazon Bedrock Flows, e a lista em escopo do AIF-C01 agora diz Amazon Bedrock AgentCore. (2) Mecanismos vencem listas decoradas: o loop, a união de executors e o contrato sessionState mudam raramente; o catálogo de modelos dentro de um agente é congelado. (3) Qualquer coisa que a AWS não confirma em primeira parte é sinalizada, nunca ensinada como material de decoreba: os sinalizadores são coletados no final da lição.
Ao final desta lição você será capaz de:
- nomear os quatro componentes de build time que todo agente precisa e os opcionais que a AWS lista ao lado deles;
- percorrer o loop de runtime, pré-processamento, orquestração, pós-processamento, e dizer qual dos quatro templates base de prompt é editável em cada fase;
- escolher entre um OpenAPI schema e function details, e entre um executor Lambda e
RETURN_CONTROL; - enunciar o contrato do
InvokeAgent: parâmetros obrigatórios, o teto de 2.048 caracteres doinputText, os scopes dosessionStatee o que acontece com oinputTextem um resubmission de return control; - descrever a memória do agente (
SESSION_SUMMARY, 1 to 365 dias) e as cotas de gerenciamento de sessão; - configurar colaboração multi-agente (≤ 10 aliases de colaborador, dois modos) e explicar por que orquestração custom é incompatível com ela;
- listar os 16 tipos de nó do Flows, os dois tipos de conexão e os limites de execução (1 h sync, 5 min/nó e 24 h async em preview);
- defender o veredito comparativo: agente vs. prompt simples vs. workflow vs. código.
1. Três nomes, três serviços: Agents Classic, AgentCore e Flows
1.1 Os renomeamentos que decidem o exame
Dois renomeamentos carregam mais pontos do que qualquer outro fato desta lição:
- "Amazon Bedrock Agents" / "Agents for Amazon Bedrock" → Amazon Bedrock Agents Classic. A AWS o colocou sob Serviços indo para Manutenção no seu Service Availability Update de 30 de junho de 2026: fechado para novos clientes a partir de 30 de julho de 2026, sem novos recursos, e um catálogo de modelos de fundação congelado em 30 de julho de 2026. Clientes existentes não são afetados, e modelos, Knowledge Bases e Guardrails do Amazon Bedrock são explicitamente não afetados. Não há exceções para o corte de novos clientes.
- "Prompt Flows" → Amazon Bedrock Flows, generally available em 22 de novembro de 2024, acrescentando visibilidade de execução por etapa e suporte a Guardrails em nós de prompt e de knowledge base. O nome antigo sobrevive apenas em algumas listas em escopo de certificação.
O alvo de migração documentado para o Agents Classic é o Amazon Bedrock AgentCore: um conjunto de seis componentes (Runtime, Gateway, Identity, Memory, Observability e Harness) que entrou em preview em julho de 2025, chegou ao GA em nove regiões, e continuou entregando ao longo de 2026 (Managed Knowledge Base GA em junho de 2026, Agent Registry GA em agosto de 2026).
Recurso (nome oficial atual) | Status em outubro de 2026 | Data-chave |
|---|---|---|
Amazon Bedrock Agents Classic | Manutenção: sem novos clientes, sem novos recursos, catálogo de FM congelado | 30 jul 2026 |
Amazon Bedrock AgentCore | GA em nove regiões, releases mensais | Preview jul 2025 |
Amazon Bedrock Flows (ex-Prompt Flows) | GA; cobrado por node transition | 22 nov 2024 |
Flows: execuções de fluxo assíncronas | Preview: ≤ 5 min por nó, ≤ 24 h por fluxo | 11 jul 2025 |
Flows: conversa multi-turn | Preview: INPUT_REQUIRED → resposta → SUCCESS | 2026 |
Colaboração multi-agente | GA (preview em 3 dez 2024) | 2024 to 25 |
Return of control; memória de agente | GA | 2024 to 26 |
Amazon A2I (Augmented AI) | Sem novos clientes, sem novos recursos; removido da lista em escopo do AIF-C01 | jun/jul 2026 |
Nome "Prompt Flows" | Substituído pelo Amazon Bedrock Flows | 22 nov 2024 |
Não responda uma questão do AIF-C01 com um nome substituído. Se uma opção diz "criar um Prompt Flow" ou "adicionar um modelo novo ao meu agente Bedrock", leia-a como uma armadilha: Prompt Flows virou Amazon Bedrock Flows em novembro de 2024, e um agente Agents Classic não pode receber novos modelos de fundação depois de 30 de julho de 2026. A resposta aprovada descreve o serviço atual, Flows para grafos, AgentCore para novas construções de agente, ou reconhece explicitamente o status de manutenção.
📚 Você sabia? AgentCore não é um agente renomeado: é uma decomposição. Seus seis componentes mapeiam para peças que costumavam viver dentro de um único agente: Runtime (o loop de invocação), Gateway (exposição de ferramentas/APIs), Identity, Memory, Observability (traces e telemetria) e Harness (empacotamento). É por isso que a orientação de migração da AWS fala em mover capacidades, não em um upgrade com um clique de um ID de agente existente.
1.2 O que o exame oficialmente pergunta sobre agentes
O guia de exame AIF-C01 é a autoridade para o escopo, e seu conteúdo agentic fica em dois lugares:
Objetivo / peso | O que a AWS diz | Cobertura na lição |
|---|---|---|
2.3.1: Serviços GenAI | Bedrock, SageMaker AI, JumpStart, Amazon Q, Kiro, Strands Agents, AgentCore | §1, §7, §9 |
Conceitos agentic do Domínio 2 | Padrões multi-agent, MCP, gerenciamento de memória, uso de ferramentas, orquestração de workflows | §4, §5, §6, §7 |
3.1.6 | "Defina o papel dos agentes de IA e descreva suas aplicações de negócio." | §8, §9 |
Pesos dos domínios | 20 / 24 / 28 / 14 / 14 % (Domínios 1 to 5) | : |
Duas mudanças de escopo foram publicadas para esta versão do exame: AgentCore, Kiro, Strands Agents, Amazon Q, SageMaker JumpStart e AWS Transform foram adicionados, e Amazon MemoryDB foi removido. Amazon A2I, listado no guia de exame v1.4 (2024), não está mais na lista de escopo atual.
2. Anatomia de um agente
2.1 O mínimo de build time
A própria redação da AWS sobre o que um agente é feito é precisa e vale decorar como uma frase: um modelo de fundação, instructions, opcionalmente templates de prompt base ou advanced, e pelo menos um de: action groups ou knowledge bases. Memória, Guardrails, code interpretation e colaboração multi-agente são todos add-ons opcionais.
Componente | Papel no build time | Papel no runtime |
|---|---|---|
Modelo de fundação | Escolhido por agente (catálogo Classic congelado em 30 jul 2026) | Rationale, predição de ação, leitura de observations, resposta final |
Instructions | Descrição de trabalho em linguagem natural para o agente | Injetadas no prompt base aumentado em cada etapa de orquestração |
Templates de prompt base / advanced | 4 templates; você pode sobrescrever texto, parser ou overrideLambda | Dirigem pré-processamento, orquestração, geração de resposta da KB e pós-processamento |
Action group: OpenAPI schema | Documento OpenAPI hospedado no S3 ou inline | Agente seleciona o path/verbo da API; parâmetros vão para um evento Lambda ou para return control |
Action group: function details | Funções com name, tipos de dados e flags required | Agente primeiro elicita do usuário os parâmetros required ausentes |
Executor | ARN do Lambda ou customControl: RETURN_CONTROL | Executa a ação, ou devolve a invocação para a sua aplicação |
Associação de knowledge base | Anexe uma KB existente | Recuperação dentro do loop de orquestração → KNOWLEDGE_BASE_RESPONSE_GENERATION |
Memória | Habilite + storageDays (1 to 365) | Carrega resumos para um memoryId; sumarização assíncrona após o fim da sessão |
Guardrails | Anexe um guardrail | Produz GuardrailTrace; applyGuardrailInterval controla a cadência do streaming |
Colaboração multi-agente | Marque o agente como supervisor; anexe aliases de colaborador (≤ 10) | Planeja ou roteia; compartilhamento de conversationHistory entre agentes |
Versão / alias | PrepareAgent → versão → alias | Você pode invocar apenas com um agentAliasId |
Code interpretation | Habilite | Código gerado pelo FM roda em um sandbox seguro |
Duas linhas merecem ênfase própria. Primeiro, alias: InvokeAgent exige agentAliasId, nunca um agent ID puro: um rascunho de agente que você nunca preparou e criou alias não pode ser chamado. Segundo, function details vs. OpenAPI: eles são alternativas, não camadas. Um action group usa exatamente um dos dois schemas, e a união de executor (Lambda ARN | RETURN_CONTROL) se aplica a ambos.
2.2 Exemplo 1: construindo um agente de viagens (build time)
- Crie o agente e dê a ele instructions: "Você é um agente de viagens. Reserve o voo mais barato em conformidade. Nunca invente preços; sempre chame a FlightsAPI."
- Escolha um modelo de fundação do catálogo disponível para Agents Classic na sua conta.
- Adicione um action group
FlightsAPIcom um OpenAPI schema descrevendosearchFlightsebookFlight. - Defina o executor como um ARN de Lambda (o Lambda valida IAM, chama a API da companhia aérea e retorna JSON).
- Opcionalmente anexe uma knowledge base de políticas de viagem corporativas, um guardrail que bloqueia números de cartão, e memória com
storageDays = 90. PrepareAgent→ anote a versão → crie um alias (por exemploT1).- Entregue à aplicação
agentId+agentAliasIde chameInvokeAgent.
Nada acima é autônomo ainda: a autonomia aparece apenas em runtime, no loop que o modelo dirige.
3. Runtime: o loop de orquestração
3.1 As três fases, em ordem
Cada chamada InvokeAgent passa por pré-processamento, depois um loop de orquestração que se repete até que exista uma resposta ou o usuário receba um novo prompt, e então pós-processamento (desativado por padrão). O próprio loop tem um ritmo interno fixo: o modelo produz um rationale, prevê uma chamada de action group ou uma query de knowledge base, os parâmetros vão para o Lambda ou de volta para a sua aplicação via return control, o resultado volta como uma observation, a observation é anexada ao prompt base, e o loop se repete.
Três consequências saem daquele diagrama e cada uma já foi testada:
- O custo escala com as iterações, não com as requisições. Cada volta do loop é outra invocação do modelo de fundação contra o prompt aumentado, e é por isso que um agente é mais caro do que um prompt único para a mesma pergunta.
- Return control é uma segunda chamada
InvokeAgent, não um campo que você pode preencher depois na mesma requisição. Sua aplicação executa a ferramenta e resubmete. - Observations, não o histórico de chat, dirigem os resultados de ferramenta. O resultado de uma ação é anexado ao prompt base para que o modelo raciocine sobre ele na próxima iteração.
3.2 Os quatro templates base editáveis
Template | Fase | ModelInvocationInput.type | Editável por você |
|---|---|---|---|
Pré-processamento | antes do loop | PRE_PROCESSING | Sim: texto, parser, overrideLambda |
Orquestração | dentro do loop | ORCHESTRATION | Sim: texto, parser, overrideLambda |
Geração de resposta da KB | quando uma KB é consultada | KNOWLEDGE_BASE_RESPONSE_GENERATION | Sim: texto |
Pós-processamento | depois do loop | POST_PROCESSING | Sim, e desligado por padrão |
A AWS documenta quatro templates base como sobrescrevíveis. Prompts advanced deixam você substituir o texto inteiramente; promptCreationMode e parserMode no trace dizem se um valor veio de DEFAULT ou OVERRIDDEN: que é a sua evidência de auditoria de que um override está ativo.
3.3 Tipos de trace: sete objetos que respondem sete perguntas
Com enableTrace = true o runtime transmite eventos de trace ao lado dos eventos chunk. Existem 7 tipos de objeto de trace:
Objeto de trace | type | A pergunta que ele responde |
|---|---|---|
PreProcessingTrace | PRE_PROCESSING | A requisição era válida? isValid + rationale |
OrchestrationTrace | ORCHESTRATION | Rationale → InvocationInput (action group, verbo, apiPath, função, parâmetros, executionType) → Observation |
Geração de resposta da KB | KNOWLEDGE_BASE_RESPONSE_GENERATION | Quais chunks foram recuperados, e o que foi gerado a partir deles |
PostProcessingTrace | POST_PROCESSING | Como a resposta final foi formatada? |
RoutingClassifierTrace | ROUTING_CLASSIFIER | Qual colaborador o supervisor escolheu? |
CustomOrchestrationTrace | : (event-driven) | Que ordem o seu Lambda orquestrador impôs? |
GuardrailTrace / FailureTrace | : | Qual ação de guardrail disparou / por que a execução falhou ( FailureTrace não carrega ModelInvocationInput) |
3.4 Exemplo 2: uma requisição de reserva, trace a trace
- A aplicação chama
InvokeAgentcomagentId,agentAliasId,sessionId = S1,inputText = "Reserve o voo mais barato para Denver na próxima sexta"(≤ 2.048 caracteres) eenableTrace = true. - Pré-processamento valida a requisição →
PreProcessingTrace { isValid: true, rationale }. - Orquestração, iteração 1: rationale → prevê
FlightsAPI.searchFlights→InvocationInput { apiPath, parameters }→ Lambda executa →Observationcontendo a lista JSON de voos. - Iteração 2: um parâmetro required (
travelerId) está ausente → a Observation retornada faz um novo prompt ao usuário: "Para qual viajante devo reservar?" (a AWS documenta esse comportamento explicitamente). - O usuário responde na mesma
sessionId→ a ação executa → novaObservation. - Pós-processamento (se habilitado) formata a resposta → a aplicação recebe
chunk.bytescomo "Reservado UA 512…", mais um objetoattributionse uma knowledge base foi usada. Traces são transmitidos ao lado dos chunks.
Como responder
Exercício de ordenação com 5 itens. Coloque-os na ordem correta e verifique a resposta.
Ordene as fases de runtime de uma chamada de agente Bedrock como a AWS as documenta:
📚 Você sabia? O
OrchestrationTraceé onde você pode provar o que seu agente realmente fez:InvocationInputregistra o action group, verbo HTTP,apiPathou nome da função, os parâmetros resolvidos e oexecutionType, eObservationregistra o que voltou. Quando um stakeholder pergunta "por que o agente chamou a API de pagamento?", o trace, não o CloudTrail, é o primeiro lugar para olhar, porque o CloudTrail vê a invocação do Lambda, mas não o rationale do modelo por tê-la escolhido.
3.5 Lendo um trace: sintoma → objeto de trace → correção
Sintoma em produção | Objeto de trace a abrir | O que o trace diz | Correção típica |
|---|---|---|---|
Agente responde besteira para uma requisição malformada | PreProcessingTrace | isValid e o rationale do modelo | Aperte as instructions; a execução deveria parar aqui |
Agente chama a API errada | OrchestrationTrace → InvocationInput | Action group, verbo, apiPath, parâmetros resolvidos, executionType | Estreite as descrições do action group; acrescente exemplos às instructions |
Resposta ignora o texto de política recuperado | Trace de geração de resposta da KB | Chunks recuperados vs. resposta gerada | Conserte chunking/recuperação, não o prompt |
Agente nunca formata a resposta final como exigido | PostProcessingTrace | Se o pós-processamento rodou (está desligado por padrão) | Habilite e edite o quarto template base |
Supervisor escolheu o colaborador errado | RoutingClassifierTrace | A decisão de roteamento | Renomeie/descreva aliases de colaborador com mais precisão |
Orquestrador custom rodou etapas na ordem errada | CustomOrchestrationTrace | A ordem de etapas do seu Lambda orquestrador | Conserte o orquestrador; este trace existe apenas para orquestração custom |
Execução parou sem nenhum input de modelo | FailureTrace | Motivo da falha; carrega nenhum ModelInvocationInput | Leia o motivo da falha e rode de novo |
Guardrail bloqueou uma resposta que parecia válida | GuardrailTrace | Qual ação de guardrail disparou | Ajuste o guardrail ou o applyGuardrailInterval |
4. Action groups, return of control e tool use bruto
4.1 Dois estilos de schema, dois executors
Um action group é definido por exatamente um estilo de schema e exatamente um executor:
Ferramenta / tipo de ação | Onde é definido | Executor | Schema | Observação-chave |
|---|---|---|---|---|
Action group OpenAPI | apiSchema (S3 ou inline) | Lambda ou RETURN_CONTROL | paths, verbos e parâmetros OpenAPI | Agente seleciona a operação da API em runtime |
Function details | functionSchema | Lambda ou RETURN_CONTROL | Funções + parâmetros ( name, tipo, required) | Agente elicita primeiro os parâmetros required ausentes |
Return of control | customControl: RETURN_CONTROL | A sua aplicação, depois resubmita | invocationInputs + invocationId | inputText ignorado no resubmission; responseState FAILURE/REPROMPT; confirmationState CONFIRM/DENY |
Knowledge base | Associação de KB | Recuperação gerenciada pelo Bedrock | : | Emite o trace de geração de resposta da KB |
toolConfig toolSpec do Converse | Seu app, fora dos agentes | Seu código | {name, description, inputSchema.json} | O modelo apenas propõe JSON ( stopReason = toolUse) |
systemTool (embutido) | União toolConfig do Converse | Gerenciado pelo Bedrock | nome da ferramenta | Suporte ao modelo varia |
Orquestração custom | Lambda no nível do agente | O seu Lambda ordena ações | contrato de eventos | CustomOrchestrationTrace; incompatível com colaboração multi-agente |
Nós do Flow como ferramentas | Definição do Flow | Lambda / Storage / Retrieval / KB / Agent / Lex | configuração do nó | Flows chamam apenas o que você ligou |
Dois limites que valem a pena citar: a description de um action group vai de 1 to 200 caracteres, e um executor é um tipo união: um ARN de Lambda ou customControl: RETURN_CONTROL, nunca ambos.
4.2 Exemplo 3: return of control, o cenário oficial de clima
Use return of control quando a sua aplicação deve executar a chamada: um trilho de pagamento privado, um sistema on-premises, uma credencial que o Bedrock pode não reter.
- Crie o action group
WeatherAPIscom a funçãogetWeather(location, date)e executorcustomControl = RETURN_CONTROL. - O usuário diz "Planeje um dia em Seattle neste fim de semana." → a orquestração prevê
getWeather. - A resposta carrega
returnControl.invocationInputscominvocationId = abc-123e parâmetros{location: seattle, date: 2024-09-15}. - A sua aplicação chama a API real de clima → a resposta é chuva.
- Você chama
InvokeAgentde novo com a mesmasessionId, fornecendosessionState.returnControlInvocationResults = [{ functionResult: { actionGroup, function, responseBody: { TEXT: { body: "{\"cond\":\"rain\"}" } } } }]com oinvocationIdcorrespondente, einputTexté ignorado porquereturnControlInvocationResultsestá presente. - A orquestração retoma: "Leve um guarda-chuva; aqui está um plano para indoors…". Variantes:
responseState = REPROMPTalimenta um resultado de ferramenta com falha de volta para uma nova tentativa;responseState = FAILUREfalha a execução com um erro de dependência;confirmationState = CONFIRM | DENYimplementa um gate de confirmação do usuário antes da ação.
4.3 Exemplo 4: slot filling com function details
- A função é
BookHotel(HotelName/required, CheckinDate/required, NumberOfNights/optional, Email/required, AllowMarketingEmails/required). - O usuário diz "Reserve o Hotel X para amanhã" → o agente preenche
HotelNameeCheckinDate. - Dois parâmetros required são desconhecidos → o agente pergunta ao usuário: "Qual é o seu e-mail? Podemos enviar promoções?"
- O usuário responde em dois turns (valores com escopo de turn vivem em
promptSessionAttributes) → todos os parâmetros required estão presentes → a ação executa → uma confirmação é retornada.
Slot elicitation é o discriminador canônico agente-versus-prompt. Um prompt simples não pode esperar por um parâmetro required ausente, chamar uma API e então retomar: um agente faz exatamente isso, dirigido pela observation de que um parâamento está ausente.
4.4 Tool use bruto sem um agente
O function calling também existe sem nenhum agente, na API Converse: você passa toolConfig.tools[].toolSpec { name, description, inputSchema.json } (mais toolChoice), o modelo retorna JSON com stopReason = toolUse, a sua aplicação executa a função, e você envia um toolResult de volta. O modelo nunca executa a função: essa fronteira é o ponto inteiro, e é a maneira mais confiável de distinguir uma questão de ferramenta de uma questão de agente.
Sinal na questão | Mecanismo correto |
|---|---|
"O modelo deveria decidir qual das minhas funções chamar, mas meu código as roda" | Tool use via toolConfig do Converse |
"O serviço deveria planejar, chamar ferramentas entre turns e pedir de novo slots ausentes" | Action group de agente |
"Minha aplicação deve rodar a chamada por razões de segurança/conformidade" | Action group com RETURN_CONTROL |
"A ordem das etapas é fixa e auditável" | Flows ou Step Functions |
O contrato de resubmission de return control é exato. Você deve reusar a mesma sessionId, o mesmo invocationId, e os mesmos nomes de actionGroup/function; você deve enviar o resultado através de sessionState.returnControlInvocationResults; e enquanto aquele campo está presente, inputText é ignorado, então um resubmission que também carrega uma nova pergunta do usuário descarta a pergunta silenciosamente. Opções alegando que você precisa de uma sessionId nova, de um invocationId novo, ou de que inputText deve repetir a requisição original estão todas erradas.
5. InvokeAgent, session state e memória
5.1 O contrato da requisição
Parâmetro | Regra |
|---|---|
agentId | O identificador do agente |
agentAliasId | Obrigatório e deve ser um alias: nunca o agent ID puro |
sessionId | Chave da conversa; resubmissions de return control devem reusá-la |
inputText | ≤ 2.048 caracteres |
enableTrace | Transmite os 7 tipos de objeto de trace ao lado dos chunks |
endSession | Encerra a sessão e, com memória ligada, dobra a sessão em um memoryId |
memoryId | Carrega resumos armazenados para memória entre sessões |
sessionState | Atributos, histórico de conversa, resultados de return control, overrides de KB |
streamingConfigurations | streamFinalResponse, applyGuardrailInterval |
A resposta transmite chunk + trace + attributions + returnControl, e os headers da resposta incluem x-amz-bedrock-agent-session-id e, quando memória é usada, x-amz-bedrock-agent-memory-id.
POST /agents/<agentId>/agentAliases/<agentAliasId>/invoke <-- alias é obrigatório
headers: Authorization (SigV4), X-Amz-Target
{
"inputText": "Reserve o voo mais barato para Denver ...", <-- MÁX 2048 chars
"sessionId": "S1", <-- reusar no resubmit
"enableTrace": true,
"endSession": false,
"memoryId": "M-user-42", <-- opcional, entre sessões
"streamingConfigurations": {
"streamFinalResponse": true,
"applyGuardrailInterval": 5 <-- cadência do guardrail
},
"sessionState": {
"sessionAttributes": {"locale": "pt-BR"}, <-- sessão inteira
"promptSessionAttributes": {"tier": "gold"}, <-- um único turn
"conversationHistory": [...], <-- multi-agente
"knowledgeBaseConfigurations":[...], <-- KB por requisição
"returnControlInvocationResults": [ { "functionResult": {
"actionGroup": "WeatherAPIs",
"function": "getWeather",
"invocationId": "abc-123",
"responseBody": {"TEXT": {"body": "{\"cond\":\"rain\"}"}}
} } ] <-- se presente, inputText é IGNORADO
}
}
Response: event stream
-> chunk (bytes da resposta) -> attribution (fontes da KB)
-> trace (7 tipos de trace) -> returnControl (invocationInputs)
headers: x-amz-bedrock-agent-session-id, x-amz-bedrock-agent-memory-id
Nota: a AWS CLI não consegue consumir este event stream - use um SDK reader.5.2 sessionState: cinco scopes, uma regra de override
Campo | Scope | Propósito |
|---|---|---|
sessionAttributes | Sessão inteira | Fatos estáveis (locale, tier da conta) carregados entre turns |
promptSessionAttributes | Um turn | Valores que devem expirar após o turn atual |
conversationHistory | Multi-agente | Histórico compartilhado quando o compartilhamento de histórico conversacional está ligado |
returnControlInvocationResults | Resubmission | Resultados de ferramenta; quando presente, inputText é ignorado |
knowledgeBaseConfigurations | Por requisição | Overrides de knowledge base por requisição |
5.3 Exemplo 5: memória entre sessões
- Na sessão
S1o usuário diz "Sou alérgico a frutos do mar"; a aplicação chamaInvokeAgentcomendSession = true. S1se dobra emmemoryId = M-user-42e a sumarização assíncrona escreve um resumo usando o template de sumarização (editável).- Depois,
InvokeAgent(sessionId = S2, memoryId = M-user-42, inputText = "Sugira um starter")carrega os resumos armazenados → a resposta exclui frutos do mar; o headerx-amz-bedrock-agent-memory-idconfirma que memória foi usada. storageDays = 90significa que resumos mais antigos são expurgados após 90 dias; desligar a memória retorna o contexto de sessão única padrão.
Fatos sobre memória em um lugar: o único tipo de memória é SESSION_SUMMARY, a retenção é de 1 to 365 dias (storageDays), os gatilhos de dobra são endSession = true na mesma sessionId ou o vencimento do idleSessionTimeout, a sumarização roda de forma assíncrona com um template editável, e você lê resumos com GetAgentMemory (ou a aba Memory do console).
5.4 Cotas de gerenciamento de sessão (separadas da memória)
Cota | Valor |
|---|---|
Etapas por sessão | ≤ 1.000 |
Tamanho por etapa | ≤ 50 MB |
Timeout de ociosidade | 1 hora |
Exclusão automática | 30 dias |
Integração LangGraph | BedrockSessionSaver |
📚 Você sabia? A AWS CLI não consegue transmitir
InvokeAgent. Transmitir eventoschunketracerequer um SDK com tratamento de event-stream (por exemplo boto3/Java/Node com o response stream reader). Este é um problema operacional real, e um distrator favorito: "habilite o streaming comaws bedrock-agent-runtime invoke-agent --no-cli-pager" não existe. UseenableTrace = truemais um SDK stream reader, e leia a sessão de volta do header de respostax-amz-bedrock-agent-session-id.
6. Colaboração multi-agente
6.1 Um supervisor, no dez colaboradores, dois modos
Item | Regra |
|---|---|
Colaboradores | ≤ 10 aliases de colaborador anexados a um único supervisor |
Modo Supervisor | O supervisor coordena e sintetiza as respostas dos colaboradores (decompõe em subtarefas) |
Modo Supervisor com roteamento | O supervisor roteia para um único colaborador → latência menor |
Histórico | conversationHistory é construído automaticamente quando o compartilhamento de histórico conversacional está ligado |
Conflito | Orquestração custom não pode ser combinada com colaboração multi-agente |
Linha do tempo | Preview 3 dez 2024; GA anunciado em notícias da AWS ao longo de 2025 |
6.2 Exemplo 6: um supervisor de triagem
- Implante os colaboradores
ReturnsAgenteBillingAgente crie um alias para cada. - Promova
TriageAgenta supervisor, escolha o modo Supervisor com roteamento e anexe ambos os aliases (nunca mais de 10). - O cliente pergunta "Por que fui cobrado duas vezes em março?" →
RoutingClassifierTraceregistra a decisão → o supervisor invocaBillingAgentcomsessionState.conversationHistory. - O action group de
BillingAgentchama o Lambda → a resposta final é sintetizada e transmitida de volta. - Se o requisito fosse "investigar devoluções e faturamento, depois resumir", o modo correto seria Supervisor puro, que decompõe a requisição e coordena as respostas dos colaboradores em vez de escolher um.
7. Amazon Bedrock Flows (ex-Prompt Flows)
7.1 O que um Flow é
Um Flow é um grafo visual e declarativo de nós que você desenha no Flow builder e invoca através de CreateFlow → PrepareFlow → InvokeFlow (com versões e aliases, exatamente como agentes). O modelo não escolhe as etapas, o grafo escolhe. Flows tornou-se GA em 22 de novembro de 2024 como "Amazon Bedrock Flows, anteriormente conhecido como Prompt Flows", acrescentando visibilidade de execução por etapa e Guardrails em nós de prompt e de knowledge base.
7.2 Os 16 tipos de nó
Nó | Propósito | Nó | Propósito |
|---|---|---|---|
Input | Ponto de entrada do flow | Output | Ponto de saída / resultado |
Prompt | Executa um prompt (opcionalmente um prompt salvo do Prompt Management) | KnowledgeBase | Recupera de uma KB anexada |
Agent | Chama um agente do Bedrock dentro do grafo | Condition | Ramifica em uma expressão |
Lex | Nó de conversa do Amazon Lex | LambdaFunction | Chama o seu Lambda |
Storage | Lê/escreve object storage | Retrieval | Nó de recuperação custom |
Iterator | Percorre uma lista | Collector | Coleta resultados |
InlineCode | Executa código inline (status conforme docs da AWS em out. 2026) | Loop | Laço estilo do-while |
LoopInput | Alimenta o loop | LoopController | Controla a saída do loop |
As conexões vêm em dois tipos: conexões de dados (sólidas) que sempre carregam valores, e conexões condicionais (pontilhadas) que disparam apenas quando um nó Condition avalia como true. Guardrails podem ser anexados a nós de prompt e de knowledge base: é assim que você aplica uma política dentro de um grafo em vez de ao redor dele.
7.3 Exemplo 7: um pipeline de convites com um branch
CreateFlowcom um nome e uma role do IAM; ligue os nós:Input → Prompt (redigir o corpo do e-mail) → KnowledgeBase (endereços dos participantes) → Condition (participantes > 50?).- Branch Sim → nó
Lambdade envio em massa; branch Não → nóLambdade envio único; ambos convergem emOutput. As conexões de dados são sólidas; os dois branches condicionais são pontilhados. PrepareFlow→ teste dentro do Flow builder, inspecionando o input/output de cada nó.- Crie uma versão e um alias; a aplicação chama
InvokeFlow(síncrono, teto de 1 hora) ou inicia uma execução de flow assíncrona (preview: ≤ 5 minutos por nó, ≤ 24 horas por flow, snapshot viaGetExecutionFlowSnapshot, erros comoExecutionTimedOut). - Leia
FlowTraceEvents para visibilidade por etapa; troque o nóPromptpor um nó Agent quando raciocínio for necessário: a API de conversa multi-turn está em preview (INPUT_REQUIRED→ sua resposta →SUCCESS).
7.4 O que um Flow custa, e o que ele não faz
Flows são cobrados por transição de nó, além do uso de modelo de fundação, Lambda e knowledge base dentro dos nós. O próprio walkthrough de preços da AWS conta uma execução como 2 + 10×2 + 3 = 25 transições; uma taxa de $0.035 por 1.000 transições foi anunciada para 1 de fevereiro de 2025, e a taxa atual deve ser confirmada na página de preços do Bedrock antes de você citá-la. Dois limites para decorar: execuções síncronas do InvokeFlow estouram em 1 hora, e trabalho de longa duração pertence a execuções de flow assíncronas (preview: 5 minutos por nó, 24 horas no total) ou a Step Functions.
Exemplo resolvido: contando transições de nó. O walkthrough de preços da AWS cobra uma execução como 2 + 10×2 + 3 = 25 transições: 2 para entrar e ramificar, um corpo de loop de 10 iterações × 2 nós, e mais 3 para convergir e sair. A lição é que transições, não nós, são a unidade faturável:
Forma do grafo | Nós no canvas | Transições por execução |
|---|---|---|
Linha reta Input → Prompt → Output | 3 | 2 |
Branch tomado uma vez ( Input → Prompt → Condition → 1 de 2 → Output) | 6 | 4 |
Exemplo de preços documentado pela AWS | 6 | 25 (2 + 10×2 + 3) |
Mesmo grafo, loop roda 50× em vez de 10× | 6 | 105 (2 + 50×2 + 3) |
Modo de execução | Teto | Status |
|---|---|---|
InvokeFlow (síncrono) | 1 hora | GA |
Execução de flow assíncrona | ≤ 5 min por nó, ≤ 24 h por flow | Preview (11 jul 2025) |
Conversa multi-turn com Flows | INPUT_REQUIRED → resposta → SUCCESS | Preview (2026) |
Cobrança | por transição de nó | GA desde 22 nov 2024 |
📚 Você sabia? A aritmética do exemplo de preços, 2 + 10×2 + 3 = 25 transições de nó, é um lembrete de que loops não são grátis em um grafo: um nó revisitado dez vezes é cobrado dez vezes. Isso é o oposto de um agente, onde as iterações são cobradas como tokens de modelo de fundação, e o oposto de Step Functions, onde as transições são cobradas como transições de máquina de estados mais os serviços que você chama. Três orquestradores, três unidades de custo diferentes.
8. Escolhendo: prompt, agente, Flows ou Step Functions
8.1 A árvore de decisão
8.2 A matriz de decisão
Critério | Prompt simples (Converse / Prompt Management) | Agente Bedrock (Classic / AgentCore) | Bedrock Flows | Step Functions + Bedrock |
|---|---|---|---|---|
Metáfora | Uma chamada de modelo para dentro e para fora | Loop autônomo que escolhe ações | Grafo declarativo que você desenha | Máquina de estados determinística |
Quem escolhe o próximo passo? | Seu código | O FM em runtime | O grafo (nós Condition) | A definição |
Escolha de ferramenta multi-etapa | ❌ hard-coded | ✅ rationale → ação → observation | ⚠️ apenas caminhos pré-ligados | ✅ apenas explícito |
Chamadas externas | Depois da resposta, no seu app | Action groups (Lambda / OpenAPI / return control) | Nós Lambda / Storage / Retrieval | Integrações / Lambda |
Branches e loops | Código da aplicação | Implícito no loop de orquestração | Condition, Iterator/Collector, Loop* | Choice / Wait / Map / Parallel |
Determinismo e auditoria | Alto | Baixo: médio (use traces) | Alto (flow trace + versions) | O mais alto (histórico de execução) |
Aprovação humana | Código da aplicação | Return control + CONFIRM/DENY | Via Lambda ou efeitos colaterais do agente | Pausa nativa / padrão de aprovação |
Construtor visual | ❌ | Agent builder (semi-visual) | ✅ Flow builder, versions, aliases | ✅ Workflow Studio |
Melhor para | "Resumir / classificar / o que é X?" | Tarefas abertas multi-turn que precisam de escolha de ferramenta | Pipelines fixos com branches e guardrails | Longa duração, auditável, retries, waits |
Unidade de custo | Tokens de FM | Tokens de FM por iteração de orquestração + Lambda/KB | FM/Lambda/KB + $ por 1.000 transições de nó | Transições + serviços |
Novos clientes (out. 2026) | ✅ | Classic ❌ / AgentCore ✅ | ✅ | ✅ |
8.3 Exemplo 8: três requisitos, três respostas
- Extrair determinístico → condition → gravar, com rollback A/B → Amazon Bedrock Flows: desenhe o grafo, publique a versão
v2, o alias aponta parav1, faça rollback movendo o alias. Um alias de versão de Flow é exatamente o mecanismo A/B que um agente não tem. - Tarefa aberta multi-turn onde o FM decide o que chamar → um agente (AgentCore para uma construção nova em outubro de 2026). Slot elicitation, re-prompts e observations são os indicadores.
- "Esperar 3 dias por aprovação, tentar 5 vezes, depois notificar" → AWS Step Functions, cuja integração otimizada com Bedrock (anunciada em novembro de 2023) inclui
InvokeModel,CreateModelCustomizationJob .synce um sample documentado "Perform prompt-chaining with Bedrock". Nem Flows (teto síncrono de 1 hora) nem um agente (sem timers nativos de longa duração) servem.
Como responder
Exercício de associação com 6 pares. Associe cada item à esquerda com a resposta à direita.
Combine cada requisito com o mecanismo de orquestração que a AWS documenta para ele:
Arraste as respostas daqui:
9. Veredito comparativo
Veredito Comparativo: agente vs. prompt simples vs. workflow vs. código
- Prompt simples (Converse API, opcionalmente Prompt Management) é a resposta quando a tarefa é uma chamada de modelo para dentro e para fora: resumir, classificar, extrair, explicar. É a opção mais barata, mais determinística e mais auditável, e é onde todo caso de uso deve começar. O código da sua aplicação é dono de cada passo subsequente: se a sequência importa, a sequência vive no seu repo.
- Um agente Bedrock (Agents Classic hoje, AgentCore para construções novas) é a resposta quando o modelo de fundação deve escolher o que fazer a seguir: escolher entre action groups ou knowledge bases, coletar parâmetros required ausentes ao longo de vários turns, re-promptar o usuário e repetir o loop até que exista uma resposta. Você abre mão do determinismo (recupere-o com
enableTrace) e paga por iteração de orquestração, em troca de uma autonomia que você teria que escrever à mão. - Um workflow: Amazon Bedrock Flows é a resposta quando a sequência é conhecida de antemão e deve ser visível: um grafo desenhado de nós
Prompt,KnowledgeBase,Condition,LambdaeAgentcom versions e aliases para rollback, cobrado por transição de nós. Você mantém o determinismo e ganha um construtor visual; você perde a liberdade do modelo de escolher uma etapa que não está no grafo. - Código: sua aplicação com
toolConfigdo Converse (ou Step Functions para trabalho de longa duração) é a resposta quando você precisa de controle explícito e testável: o modelo propõe JSON (stopReason = toolUse) e seu código executa a função; Step Functions acrescenta retries, waits, aprovação humana e um histórico de execução quando uma execução precisa sobreviver a horas ou dias. Nem um agente nem um Flow substitui o rastro de auditoria de uma máquina de estados. - Regra prática para o exame: o modelo decide qual ferramenta → agente. Eu desenhei as etapas → Flows. Eu escrevi as etapas → código (ferramentas do Converse para etapas dentro da requisição, Step Functions para etapas entre requisições). Uma chamada, sem follow-up → prompt simples. E em outubro de 2026, uma construção nova de agente significa AgentCore, porque Agents Classic está fechado para novos clientes.
Se a pergunta diz… | Resposta | Por que as outras falham |
|---|---|---|
"…precisa decidir por si qual API chamar" | Agente | Flows chamam apenas nós ligados; código não tem escolha em runtime |
"…determinístico, versionado, desenhado visualmente, rollback" | Flows | Agentes deixam o FM escolher; Step Functions é definido em código, não visual no Bedrock |
"…o modelo retorna um objeto JSON e nosso serviço o roda" | toolConfig do Converse | Isso é tool use bruto; action groups pertencem a agentes |
"…esperar 3 dias, retry 5×, aprovação humana" | Step Functions | Flows estouram em 1 h (síncrono); agentes não têm timers nativos |
"…nossa aplicação deve executar a API de pagamento" | RETURN_CONTROL | Um executor Lambda rodaria isso dentro do Bedrock |
"…conta de nova, construir um agente hoje" | AgentCore | Agents Classic fechou para novos clientes em 30 jul 2026 |
9.1 Revisão humana hoje
Amazon A2I está em manutenção: "não está mais aberto a novos clientes… não planejamos introduzir novos recursos", fazia parte do lote de manutenção de 30 de junho de 2026, e foi removido da lista em escopo atual do AIF-C01 (estava presente no guia de exame v1.4, 2024). Para workflows, o padrão documentado de intervenção humana é Step Functions com sua integração otimizada com Bedrock (2023). A AWS não documenta nenhum hook de A2I nativo do agente Bedrock, então uma opção descrevendo "anexar A2I a um agente Bedrock como etapa de revisão humana" está testando se você sabe que o serviço saiu do escopo do exame.
10. Armadilhas do exame e os números que valem a pena decorar
As armadilhas que custam pontos neste material exato:
- "Prompt Flows" é um nome substituído. O serviço é Amazon Bedrock Flows (GA 22 nov 2024); a grafia antiga sobrevive apenas em algumas listas em escopo de certificação.
- Agents Classic está fechado para novos clientes desde 30 de julho de 2026 e seu catálogo de FM está congelado, mas o Bedrock em si, Knowledge Bases e Guardrails não estão fechados. Uma opção alegando que "todo o Bedrock está fechado para novos clientes" é falsa.
- Mínimo de build time = FM + instructions + pelo menos um de action groups ou knowledge bases. Não "FM + knowledge base + guardrail apenas".
- Parâmetro required ausente → o agente re-prompta o usuário através de uma Observation. Ele não falha, não inventa nulls e não descarta a ação silenciosamente.
returnControlInvocationResultspresente ⇒inputTexté ignorado: mesmasessionId, mesmoinvocationId, mesmos nomes de action group e função.- Tool use bruto no Converse: o modelo nunca executa a função. Sua aplicação executa, depois retorna um
toolResult. - Tipo de memória é apenas
SESSION_SUMMARY, retenção 1 to 365 dias, dobrada porendSession = trueouidleSessionTimeout: não tipos de memória arbitrários, e nenhuma vector database é necessária. - Multi-agente: ≤ 10 aliases de colaborador, dois modos (Supervisor, Supervisor com roteamento), orquestração custom incompatível. Não "exatamente dois colaboradores".
- Um agente invoca apenas com um
agentAliasId, einputTexttem teto de 2.048 caracteres. - A2I está fora do escopo do AIF-C01 e fechado para novos clientes; o caminho documentado de human-in-the-loop para workflows é Step Functions.
Número testável | Valor |
|---|---|
Agents Classic fechado para novos clientes / congelamento do catálogo de FM | 30 jul 2026 |
Máximo de agentes colaboradores por supervisor | 10 |
Tipo / retenção da memória do agente | SESSION_SUMMARY / 1 to 365 dias |
Gatilhos de dobra do memoryId | endSession = true ou idleSessionTimeout |
Comprimento máximo do inputText | 2.048 caracteres |
Comprimento da description do action group | 1 to 200 caracteres |
Cotas de gerenciamento de sessão | 1.000 etapas · 50 MB/etapa · 1 h de ociosidade · retenção de 30 dias |
Timeout síncrono do InvokeFlow | 1 hora |
Execução de flow assíncrona (preview) | ≤ 5 min por nó, ≤ 24 h no total |
Preço de transição de nó do Flow | $0.035 por 1.000 anunciado (1 fev 2025): confirme a taxa atual |
Templates de prompt base editáveis | 4 |
Tipos de objeto de trace | 7 |
Tipos de nó do Flow | 16 |
Pesos dos domínios do AIF-C01 | 20 / 24 / 28 / 14 / 14 % |
Sinalizadores sobre fatos que esta lição deliberadamente não afirmou como verificados: o preço atual por transição do Flow; a data exata de GA da colaboração multi-agente (agregadores mostram itens de 3 dez 2024 e 10 mar 2025); a lista atual de modelos suportados para multi-agente; o nome do campo executionId usado para retomar um flow multi-turn (os estados INPUT_REQUIRED / SUCCESS são documentados, o nome do campo não foi localizado); e o status preview-vs-GA do nó InlineCode.
10.1 Atualizações de 2026 (em outubro de 2026)
Tudo nesta subseção foi lido em docs.aws.amazon.com, um post do AWS What's New, um post do AWS News Blog ou no próprio guia de exame AIF-C01: nada aqui vem de um rastreador de terceiros. Dois grupos de mudança importam para esta lição: o que foi entregue dentro do Amazon Bedrock AgentCore e do Amazon Bedrock Flows, e o que a AWS fez com o guia de exame e com os serviços ao redor de um agente.
Mudança no agente / Flows | Data (publicada pela AWS) | O que o exame quer que você saiba |
|---|---|---|
Preview do AgentCore | 16 jul 2025 | O destino de migração documentado para Agents Classic chega como um produto separado, não como um rename |
Nó DoWhile do Flows e traces de execução | 26 set 2025 | Controle de loop mais visibilidade por etapa dentro do grafo: a lista de nós da §7.2 ganha um construto de loop documentado |
GA do AgentCore: nove regiões, VPC, PrivateLink, A2A no Runtime, MCP no Gateway, auth IAM | 13 out 2025 | Uma construção de agente totalmente nova tem um alvo GA a partir desta data |
Policy, Evaluations e Memory do AgentCore anunciados | 2 dez 2025 | Governança e avaliação juntam-se a Runtime, Gateway, Identity e Observability como componentes |
GA do Policy do AgentCore: Cedar ou linguagem natural, interceptando chamadas de ferramenta do Gateway fora do loop de raciocínio | 3 mar 2026 | Policy é um controle de gateway, não uma quarta fase de orquestração dentro do loop |
GA do Evaluations do AgentCore: 13 avaliadores | 31 mar 2026 | A qualidade do agente é verificada por um serviço gerenciado em vez de um script ad-hoc |
Amazon Q Developer com cadastros bloqueados; fim de suporte IDE/pago em 30 abr 2027 | 15 mai 2026 | O destino documentado para novos usuários é Kiro |
Amazon Kendra em manutenção, depois fechado para novos clientes | 30 jun → 30 jul 2026 | O substituto que a AWS nomeia para novas construções de busca é o Amazon Bedrock Managed Knowledge Base (Smart Parsing + Agentic Retrieval API) |
SageMaker Model Monitor, Clarify, Ground Truth e Amazon A2I fechados para novos clientes | 30 jul 2026 | O mesmo lote de manutenção do Agents Classic: sem novos clientes, sem novos recursos, ainda suportado |
Mudança no guia de exame (v1.1, publicado em 30 abr 2026) | Detalhe para um candidato de IA agentic |
|---|---|
Novo objetivo 2.1.6 | IA agentic: padrões multi-agent, MCP, gerenciamento de memória, uso de ferramentas, orquestração, o assunto das §3 a §6 |
Novo objetivo 3.2.5 | Versionamento de prompts através do Amazon Bedrock Prompt Management (GA 7 nov 2024) |
Novos objetivos 2.1.4 / 2.1.5 | Preços baseados em tokens e seu efeito em custo e desempenho; context engineering |
Novo objetivo 5.1.5 | Detecção de alucinação e grounding: RAG grounding, validação de saída, scoring de confiança |
Adicionado à lista em escopo | Amazon Bedrock AgentCore, Kiro, Strands Agents, Amazon Q, SageMaker JumpStart, AWS Transform, Amazon Aurora |
Removido da lista em escopo | Amazon MemoryDB |
Inalterado | 65 questões (50 pontuadas + 15 não pontuadas), 90 minutos, aprovação 700/1000, domínios 20 / 24 / 28 / 14 / 14 |
A AWS afirma que atualizações do guia de exame chegam ao exame vivo cerca de um mês após a publicação, então os novos objetivos da v1.1 foram válidos desde aproximadamente finais de maio de 2026. Também dentro desta janela: o Bedrock Studio isolado foi incorporado ao SageMaker Unified Studio (workspaces fechados em 28 fev 2025, documentação movida em 25 mar 2025), então o Flow builder e as ferramentas de prompt agora se encontram lá em vez de em um studio separado.
📚 Você sabia? O SDK do AgentCore passou de 2 milhões de downloads em seus primeiros cinco meses após o GA, e o AgentCore Evaluations vem com 13 avaliadores, o número de adoção que a própria AWS publicou para mostrar onde o trabalho novo de agentes se espera que aterrice. Isso também explica o formato das questões do exame: itens de escopo perguntam sobre capacidades (Runtime, Gateway, Identity, Memory, Observability, Harness, agora unidos por Policy e Evaluations) em vez de sobre um objeto "agente" único, porque a AWS decompôs um serviço em componentes em vez de renomeá-lo.
11. Casos Reais
A AWS publica poucas histórias de clientes sobre orquestração como tal, um loop interno raramente é fotogênico, então estas quatro foram escolhidas porque cada uma nomeia seus serviços, seus números e sua fonte, e cada uma se mapeia em um ramo diferente da árvore de decisão da §8. Leia cada percentual como uma figura reivindicada pelo cliente ou pela AWS, não auditada, e leia "até" como um teto.
11.1 As quatro histórias
Epilot: uma fila, não um agente, é dona da sequência (software de energia, Colônia, 2026). Longas cadeias de e-mails entre mais de 170 clientes de utilities estavam drenando o tempo da equipe. O pipeline publicado é uma API → Amazon SQS → AWS Lambda → Amazon Bedrock (Claude Sonnet), com o modelo escolhido usando Amazon Bedrock Evaluations (avaliações humanas entre versões de prompt) antes da produção, e um agente posterior que grava registros com humanos verificando. Resultado relatado: −87% no tempo de tratamento de e-mails, 55.000 resumos por mês com taxa de falha negligenciável, 80% dos usuários dizendo que simplifica seu trabalho, um MVP em 2 meses, e dados processados mantidos em uma região da UE. Este é o ramo "seu código é dono de cada etapa" da §8 em produção, mais dois hábitos que esta lição repete: avalie o modelo antes de publicar, e mantenha um humano no fim de uma gravação automatizada. Fonte: estudo de caso da AWS, solutions/case-studies/epilot-genai-case-study (2026).
Prime Focus Technologies: agentes onde as etapas diferem por asset (mídia, 2025). Localização (legendas, tradução, transcrições) em mais de 14 milhões de assets no CLEAR: Disney Star, CBS, Lionsgate: é intensiva em mão de obra, e a marcação ao vivo de cricket precisava de baixa latência. A arquitetura publicada roda agentes Amazon Bedrock + AWS Lambda que automatizam e re-revisam esses workflows. Resultado relatado: custo de localização −20 to 30%, precisão +20 to 30%, turnaround −30 to 40%. A precaução dentro da fonte é a parte examinável: a primeira tentativa usou APIs externas de LLM, cuja latência era alta demais para marcação ao vivo, e a latência "caiu dramaticamente" quando as chamadas rodaram na AWS. Este é o ramo "o modelo escolhe o que fazer a seguir" da §8, com o posicionamento do modelo como um requisito rígido. Fonte: estudo de caso da AWS, solutions/case-studies/prime-focus-case-study (2025).
Alnylam Pharmaceuticals, citações como o recurso de conformidade (biotecnologia, 2025). O triagem de reclamações levava 3 to 4 dias e a busca de informação interna 15+ minutos. Desde junho de 2023 a equipe construiu um protótipo de intake/triagem em Amazon Bedrock + Amazon S3 com RAG em cerca de 3 meses sob restrições GxP, mais o AskALNY, um assistente Slack no Amazon Q Business que retorna links de fontes. Resultado relatado: triagem 3 dias → horas, busca 15 min → 30 s, 2.000 funcionários + 1.000 contratados atendidos, 250+ casos de uso identificados. O mecanismo é uma knowledge base sob o que quer que seja dono do loop, e é por isso que a §3.3 trata as atribuições de KB como de primeira classe: em uma resposta regulada, a citação é o rastro de auditoria. Fonte: estudo de caso da AWS, solutions/case-studies/alnylam-case-study (2025).
Sun Finance: uma máquina de estados, e um protótipo somente-LLM rejeitado (fintech de empréstimos, 9 países, 2026). 60% das aplicações de microemprestimo precisavam de revisão manual, levando 10 minutos a 20 horas cada. O pipeline entregue, construído com o AWS Generative AI Innovation Center, é OCR Amazon Textract → fallback Amazon Rekognition e mascaramento de rosto → estruturação Claude Sonnet 4 → regras de validação → Titan Multimodal Embeddings em S3 Vectors para similaridade de fraude, coordenado com AWS Step Functions e AWS Lambda. Resultado relatado: precisão 79,73% → 90,80%, custo por documento −91%, processamento 20 horas → menos de 5 segundos, detecção de fraude 81%. Este é o ramo de máquina de estados da §8 e a lição da §4 lida de trás para frente: serviços determinísticos extraem, o modelo estrutura, e cada etapa permanece auditável. Fonte: AWS Machine Learning Blog, blogs/machine-learning/sun-finance-automates-id-extraction-and-fraud-detection-with-generative-ai-on-aws (2026).
11.2 Serviços, números e fontes em uma olhada
Caso (ano) | Serviços AWS nomeados na fonte | Números de destaque | Fonte |
|---|---|---|---|
Epilot (2026) | Amazon Bedrock (Claude Sonnet), Amazon SQS, AWS Lambda, Bedrock Evaluations | −87% no tempo de tratamento; 55.000 resumos/mês; MVP em 2 meses; região da UE | Estudo de caso epilot-genai-case-study |
Prime Focus (2025) | Amazon Bedrock, AWS Lambda | −20 to 30% custo, +20 to 30% precisão, −30 to 40% turnaround; 14 M+ assets | Estudo de caso prime-focus-case-study |
Alnylam (2025) | Amazon Bedrock, Amazon S3, Amazon Q Business | triagem 3 d → horas; busca 15 min → 30 s; 3.000 usuários; 250+ casos de uso | Estudo de caso alnylam-case-study |
Sun Finance (2026) | Textract, Rekognition, Bedrock (Claude Sonnet 4), Lambda, Step Functions, S3 Vectors | 79,73 → 90,80%; −91% custo/doc; 20 h → <5 s | ML Blog sun-finance-automates-id-extraction-… |
11.3 O que cada caso prova contra esta lição
Caso | O mecanismo da §8/§9 que foi entregue | Seção da lição que ele prova |
|---|---|---|
Epilot | Código, SQS e Lambda são donos da sequência; o modelo é chamado, não no comando | §8, uma fila é o orquestrador mais barato, e avaliação precede produção |
Prime Focus | Agente, agentes Bedrock + Lambda escolhem a próxima ação por asset | §4/§8, escolha de ferramenta em runtime, mais latência como requisito de posicionamento |
Alnylam | Knowledge base / RAG com links de fonte sob GxP | §3: contexto recuperado e atribuições são o artefato de conformidade |
Sun Finance | Step Functions, pipeline determinístico de OCR → validação | §8, retries, waits e histórico de auditoria superam um loop autônomo para extração regulada |
Como ler um estudo de caso de cliente.
- Cada figura acima é reivindicada pelo cliente ou pela AWS e não foi auditada. Apenas Sun Finance (n = 585 imagens) e Adobe (seu próprio conjunto de testes) divulgam uma base amostral, e um selo de ano na página é renderizado no lado do cliente: trate qualquer ano como indicativo.
- "Até" é um teto, não uma média. Os intervalos de custo e precisão da Prime Focus são relativos ao fornecedor e não auditados; nunca cite um teto como um resultado esperado em nenhuma direção.
- A única taxa de resultado publicada é 65%: a AWS relata que 65% dos projetos do Generative AI Innovation Center chegaram à produção em 2025, a partir de mais de 1.000 implementações, algumas em apenas 45 dias, usando o framework Five V's (Value → Visualize → Validate → Verify → Venture). A AWS nunca afirma 100%, e figuras circulando sem metodologia, "88% dos pilotos de agentes travam", "95% dos pilotos de GenAI falham", não são publicadas pela AWS e não são examináveis.
📚 Você sabia? O protótipo rejeitado da Sun Finance é a lição mais limpa de OCR-versus-raciocínio do curso: tentativa 1, Claude Sonnet 4 sozinho, alcançou apenas 61,8% no geral e 43% em números de documento de identidade e foi descartado, porque as proteções de privacidade do modelo bloqueiam a extração direta de PII. A tentativa 2 (Textract + Claude) atingiu 85%, e o pipeline entregue com regras de validação atingiu 90,80% com −91% de custo por documento. A lição combina exatamente com a §4: deixe um serviço determinístico fazer a extração, deixe o modelo fazer a estruturação, e deixe uma máquina de estados guardar o recibo.
Perguntas de Prática (Practice Questions)
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Em outubro de 2026 um desenvolvedor cria uma conta AWS totalmente nova e tenta construir um agente Amazon Bedrock. O que acontece?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Qual conjunto CORRESPONDE MELHOR à configuração de build time de um agente Amazon Bedrock?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Durante a orquestração um agente selecionou um action group mas está faltando um parâmetro required. O que o agente faz?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Um action group deve deixar a própria aplicação executar uma API de pagamento e então continuar a orquestração. Qual configuração está correta?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
No reenvio de return control descrito acima, qual afirmação é VERDADEIRA?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Para function calling bruto da API Converse sem um agente, qual é a divisão correta de responsabilidades?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Qual afirmação sobre a memória do agente Amazon Bedrock está correta?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Requisito: um pipeline determinístico, versionado, desenhado visualmente (extrair do S3 -> prompt -> guardrail -> condition -> gravar no S3) com rollback A/B. Qual é o MELHOR ajuste?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Qual afirmação sobre o nome 'Prompt Flows' está ATUAL?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Qual afirmação sobre a colaboração multi-agente é VERDADEIRA?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Qual cronograma do Amazon Bedrock AgentCore está CORRETO conforme verificado em outubro de 2026?
Como responder
Questão de múltipla escolha com 5 opções. Selecione uma opção e escolha Verificar resposta.
Uma empresa de software de energia com mais de 170 clientes de utilities deve resumir longas cadeias de e-mails de clientes, selecionar o modelo através de uma etapa de avaliação, manter dados processados em uma região da UE e manter humanos aprovando o que a IA escreve. Qual caso publicado da AWS corresponde?
Como responder
Exercício de ordenação com 5 itens. Coloque-os na ordem correta e verifique a resposta.
Ordene os passos de uma execução de ferramenta com return of control da forma como a AWS os documenta:
Pontos Principais (Key Takeaways):
- Nomeação primeiro: "Agents for Amazon Bedrock" agora é Amazon Bedrock Agents Classic, fechado para novos clientes em 30 de julho de 2026, modo de manutenção, catálogo de FM congelado, e o sucessor é Amazon Bedrock AgentCore (Runtime, Gateway, Identity, Memory, Observability, Harness); "Prompt Flows" agora é Amazon Bedrock Flows (GA 22 nov 2024).
- Anatomia do agente: modelo de fundação + instructions + pelo menos um de action groups ou knowledge bases, mais templates de prompt base/advanced opcionais (4 editáveis), memória, guardrails, code interpretation e colaboração multi-agente; você invoca apenas com um
agentAliasId. - Loop de runtime: pré-processamento → orquestração (rationale → ação prevista/query de KB → invocar → observation → re-loop) → pós-processamento (desligado por padrão); 7 tipos de trace com
enableTrace, e um parâmetro required ausente produz uma Observation que re-prompta o usuário. - Ferramentas: um action group usa OpenAPI schema ou function details com um executor de ARN de Lambda ou
RETURN_CONTROL; no reenvio você reusa a mesmasessionIdeinvocationIdeinputTexté ignorado;toolConfigbruto do Converse significa o modelo propõe JSON e seu código executa a função. - Estado e memória:
inputText≤ 2.048 caracteres;sessionAttributescobrem a sessão enquantopromptSessionAttributescobrem um turn; memória é apenasSESSION_SUMMARY, 1 to 365 dias, dobrada porendSession = trueouidleSessionTimeout; gerenciamento de sessão permite 1.000 etapas, 50 MB/etapa, 1 h de ociosidade, retenção de 30 dias. - Escala: colaboração multi-agente = ≤ 10 aliases de colaborador, Supervisor vs Supervisor com roteamento, orquestração custom incompatível; Flows = 16 tipos de nó, conexões de dados sólidas vs condicionais pontilhadas, 1 h síncrono (
InvokeFlow), async preview 5 min/nó · 24 h, cobrado por transição de nó (o exemplo de execução da AWS = 25 transições). - Veredito comparativo: o modelo escolhe o próximo passo → agente; você desenhou as etapas → Flows; você escreveu as etapas → código (ferramentas do Converse na requisição, Step Functions para waits/retries/aprovações); uma chamada, sem follow-up → prompt simples. E uma construção nova de agente em outubro de 2026 significa AgentCore.