O problema que o Web Search resolve
Modelos de fundação são treinados com um recorte de dados que tem data de corte definida. Quando alguém pergunta sobre o resultado de uma reunião de resultados da semana passada, uma mudança regulatória de ontem ou a previsão do tempo desta manhã, o modelo simplesmente não tem essa informação — ela não existia quando ele foi treinado.
A técnica de resolver isso se chama grounding (aterramento): conectar o modelo a fontes de conhecimento externas e atuais para que ele possa responder com base em dados reais, não apenas em inferências sobre o que aprendeu. Isso reduz alucinações e aumenta a confiabilidade das respostas em aplicações como chatbots, assistentes de código, ferramentas de linha de comando e sistemas empresariais.
Até agora, implementar esse aterramento web exigia que os times de desenvolvimento identificassem, integrassem e mantivessem um provedor externo de busca — um processo que atrasa projetos, introduz riscos de residência de dados e gera sobrecarga operacional. A AWS decidiu resolver isso de forma nativa.
O que é o Web Search no Amazon Bedrock
No AWS New York Summit 2026, a AWS anunciou a disponibilidade geral do Web Search no AgentCore. Agora, a empresa estende esse recurso com a disponibilidade geral do Web Search no Amazon Bedrock — uma ferramenta nativa do lado do servidor que aterra as respostas dos modelos em conhecimento web atualizado.
Com isso, o aterramento web passa a ser uma capacidade nativa do Bedrock: sem fornecedores terceiros para contratar, sem APIs externas para orquestrar e sem revisões de segurança adicionais de parceiros externos.
Diferenciais técnicos do recurso
Abordagem de aterramento multi-fonte
O Web Search é respaldado por um índice web que a própria Amazon opera, cobrindo bilhões de documentos e atualizado continuamente. Além disso, ele combina esse índice com um grafo de conhecimento embutido que ancora entidades de um domínio e as conexões entre elas.
Quando a pergunta é factual — quem escreveu determinado livro, em que ano ocorreu determinado evento — o Web Search usa o grafo de conhecimento para responder com alta confiança, em vez de deixar o modelo inferir a resposta a partir de fragmentos de páginas. Isso reduz as pequenas imprecisões factuais que costumam aparecer quando um agente monta uma resposta por conta própria.
Recuperação eficiente de contexto
Em vez de entregar uma página bruta ao modelo e esperar que ele encontre a parte relevante, o Web Search realiza extração semântica de trechos: ele seleciona as passagens de cada página que são pertinentes à consulta e as entrega em um formato otimizado para a janela de contexto do modelo. O modelo recebe apenas o que importa, com menos tokens desperdiçados em conteúdo genérico. A recuperação é rápida, o que permite respostas aterradas com latência mínima.
Habilitação com parâmetro único
O Web Search é ativado com um único parâmetro na chamada de API compatível com OpenAI que o desenvolvedor já utiliza. Não há necessidade de onboarding de fornecedor, chaves de API adicionais, camadas de orquestração ou SDKs separados.
Conformidade corporativa por padrão
Por padrão, o Web Search no Bedrock opera com zero saída de dados: os dados nunca saem do ambiente AWS. O recurso funciona inteiramente dentro da infraestrutura do Amazon Bedrock, o que facilita o atendimento a requisitos de conformidade corporativa. Futuras capacidades que eventualmente exponham dados fora desse perímetro serão habilitadas apenas mediante solicitação explícita.
Como o Web Search funciona internamente
Quando o Web Search está habilitado em uma chamada de API, o Bedrock gerencia todo o ciclo de busca no lado do servidor. O fluxo é o seguinte:
- O modelo identifica que a consulta requer conhecimento web atualizado.
- O Bedrock formula uma query de busca.
- O sistema recupera conteúdo relevante do índice web e do grafo de conhecimento da Amazon.
- Os resultados — incluindo trechos relevantes, URLs e títulos das fontes — são injetados na janela de contexto do modelo.
- O modelo raciocina sobre o conteúdo recuperado e gera uma resposta aterrada com citações das fontes.
A API retorna a resposta final com anotações de citação estruturadas, incluindo URL e título da página para cada fonte referenciada. Não há loop de uso de ferramentas no lado do cliente para construir, nenhuma resposta de API externa para parsear e nenhum retry ou limite de taxa para gerenciar — uma única chamada de API retorna uma resposta aterrada.
Como começar: usando a Responses API compatível com OpenAI
A Responses API suporta ferramentas nativas, então o Web Search pode ser chamado sem definir um schema de função ou construir um loop no lado do cliente. A habilitação ocorre em três etapas: configurar credenciais AWS, apontar o cliente OpenAI para o endpoint bedrock-mantle e adicionar a ferramenta Web Search à requisição. No lançamento, o Web Search está disponível para modelos OpenAI servidos pelo motor de inferência de próxima geração do Amazon Bedrock.
Passo 1: Configurar autenticação e permissões
O Web Search utiliza as credenciais AWS existentes — não há chaves de API separadas para provisionar. O ambiente precisa ter credenciais AWS disponíveis pela cadeia de credenciais padrão (uma função do Serviço de Gerenciamento de Identidade e Acesso — IAM, o perfil da AWS CLI, ou variáveis de ambiente), que são usadas para autenticar requisições ao endpoint bedrock-mantle.
A identidade que faz a chamada precisa de dois conjuntos de permissões:
- Permissões de inferência no Amazon Bedrock: anexe a política gerenciada
AmazonBedrockMantleInferenceAccess ou conceda as ações de inferência específicas que sua chamada requer.
- Permissões da ferramenta Web Search: conceda no mínimo
bedrock-websearch:InvokeSearch; adicione bedrock-websearch:InvokeFetch para permitir que o modelo leia o conteúdo completo de uma página de resultado. A recuperação de conteúdo web ao vivo requer adicionalmente bedrock-websearch:ExternalWebAccess, que é o comportamento padrão da requisição — se sua identidade não tiver essa permissão, defina external_web_access: false na ferramenta. Se InvokeSearch for negado, o Web Search é efetivamente desabilitado e o modelo responde a partir de seus dados de treinamento.
As requisições ao endpoint são autenticadas com um token bearer emitido pela AWS, que pode ser gerado a partir das credenciais AWS existentes usando o pacote aws-bedrock-token-generator. Esse token bearer não é uma chave de API separada — é uma credencial de curta duração (até 12 horas) derivada da identidade IAM existente via SigV4, empacotada no formato que o cliente OpenAI espera para o parâmetro api_key. Nenhum gerenciamento adicional de chaves é necessário.
Uma chamada normal da Responses API, sem aterramento, tem a seguinte estrutura:
response = client.responses.create(
model="openai.gpt-5.4",
input="What were the key announcements at AWS re:Invent 2025?",
)
Passo 2: Habilitar o Web Search
Para aterrar essa mesma chamada em conhecimento web, basta adicionar uma única entrada em tools:
tools=[{"type": "web_search", "external_web_access": False}]
O campo opcional external_web_access seleciona de onde o Web Search recupera conteúdo: do corpus web pré-indexado da Amazon, ou de conteúdo ao vivo buscado diretamente da web. Atualmente, apenas a recuperação por índice está disponível; a recuperação ao vivo será habilitada em uma atualização futura, e o parâmetro já está na API para que o código não precise ser alterado. O padrão é true, o que requer a permissão bedrock-websearch:ExternalWebAccess. Os exemplos abaixo definem false, o que não requer permissão adicional.
Passo 3: Ler a resposta aterrada com citações
O exemplo completo de ponta a ponta, incluindo como extrair as citações de fontes:
from openai import OpenAI
from aws_bedrock_token_generator import provide_token
REGION = "us-east-1"
client = OpenAI(
base_url=f"https://bedrock-mantle.{REGION}.api.aws/openai/v1",
api_key=provide_token(region=REGION),
)
response = client.responses.create(
model="openai.gpt-5.4",
input="What were the key announcements at AWS re:Invent 2025?",
tools=[{"type": "web_search", "external_web_access": False}],
)
searches = [item for item in response.output if item.type == "web_search_call"]
print(f"Retrieval steps: {len(searches)}")
for call in searches:
if call.action.type == "search":
print(f" search: {call.action.queries}")
elif call.action.type == "open_page":
print(f" open_page: {call.action.url}")
for item in response.output:
if item.type == "message":
for content in item.content:
if content.type == "output_text":
print(content.text)
for citation in content.annotations or []:
if citation.type == "url_citation":
print(f" [{citation.title}] {citation.url}")
O código acima produz uma saída (resumida) como esta:
Retrieval steps: 2
search: ['AWS re:Invent 2025 key announcements official AWS blog keynote recap']
open_page: https://aws.amazon.com/blogs/aws/top-announcements-of-aws-reinvent-2025
The biggest AWS re:Invent 2025 announcements clustered around **AI agents, custom silicon/infrastructure, and developer productivity**.
...
[Top announcements of AWS re:Invent 2025 | AWS News Blog] https://aws.amazon.com/...
[AWS re:Invent 2025: Amazon announces Nova 2, Trainium3, frontier agents] https://...
Nesse exemplo, a requisição inclui uma entrada de Web Search no array tools. O Bedrock executa a busca no lado do servidor e retorna a resposta aterrada em uma única ida e volta — não há schema de função para definir e nenhum loop no lado do cliente para gerenciar.
Cada citação é um objeto url_citation no array de anotações do conteúdo da mensagem. Sua estrutura:
{
"type": "url_citation",
"start_index": 120,
"end_index": 303,
"title": "Top announcements of AWS re:Invent 2025 | AWS News Blog",
"url": "https://aws.amazon.com/blogs/aws/top-announcements-of-aws-reinvent-2025"
}
start_index e end_index são deslocamentos de caracteres no output_text, permitindo renderizar notas de rodapé inline ou destacar exatamente o trecho que cada citação suporta.
Auditoria e observabilidade
O Web Search é integrado nativamente ao AWS CloudTrail. Cada chamada a bedrock-websearch:InvokeSearch e bedrock-websearch:InvokeFetch é registrada como um evento de gerenciamento, capturando a identidade que fez a chamada, o timestamp, a ação, a identidade de origem e o contexto de conta e região da requisição.
Resultados de acesso negado são sempre registrados, e cada evento AccessDeniedException inclui a chave de condição específica que causou a negação — o que torna fácil diagnosticar configurações incorretas de IAM sem precisar ativar trilhas adicionais.
Por design, o CloudTrail não registra o texto da query, as URLs retornadas pela busca ou o conteúdo bruto da página recuperado pelo fetch. O texto da query é tratado da mesma forma que um prompt de inferência e nunca é exposto nos eventos da trilha. Combinado com o processamento em região e zero saída de dados, isso oferece às equipes de segurança e conformidade uma trilha de auditoria completa de quem usou a ferramenta e quando, sem expor o que os usuários finais pesquisaram.
Disponibilidade e próximos passos
O Web Search no Bedrock está geralmente disponível nos Estados Unidos, com processamento de queries em região nas regiões us-east-1, us-east-2 e us-west-2. Para detalhes de preços, consulte a página de preços do Amazon Bedrock. Para começar, acesse a documentação do Web Search com referências completas de API e exemplos.
Conclusão
O Web Search no Amazon Bedrock remove a complexidade operacional de conectar modelos de fundação ao conhecimento web atualizado. A AWS entrega resultados aterrados multi-fonte com eficiência de contexto, baixa latência e habilitação simples por um único parâmetro de API — para que desenvolvedores possam adicionar aterramento web sem gerenciar fornecedores, camadas de orquestração ou revisões de conformidade adicionais. Para equipes que constroem aplicações com IA generativa na AWS, esse é um passo relevante para tornar respostas mais confiáveis e atualizadas com muito menos esforço de integração.
Fonte
Introducing Web Search on Amazon Bedrock for foundation model grounding (https://aws.amazon.com/blogs/machine-learning/introducing-web-search-on-amazon-bedrock-for-foundation-model-grounding/)