View a markdown version of this page

Comece com o AgentCore Observability - Base da Amazônia AgentCore

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Comece com o AgentCore Observability

O Amazon Bedrock AgentCore Observability ajuda você a rastrear, depurar e monitorar o desempenho do agente em ambientes de produção. Este guia ajuda você a implementar recursos de observabilidade em seus aplicativos de agente.

Pré-requisitos

Antes de começar, verifique se você tem:

  • AWS Conta com credenciais configuradas (aws configure) com acesso ao modelo habilitado para o Foundation Model que você gostaria de usar.

  • Python 3.10+ instalado

  • Ative a pesquisa de transações na Amazon CloudWatch. Somente uma vez, os usuários iniciantes devem ativar a Pesquisa de CloudWatch transações para visualizar extensões e traços do Bedrock Amazon Bedrock AgentCore

  • (somente Non-runtime agentes) Adicione a OpenTelemetry biblioteca — Inclua aws-opentelemetry-distro (ADOT) em seu arquivo requirements.txt. Se você hospedar seu agente no AWS Lambda, use o AWS Lambda Layer for OpenTelemetry no site AWS Distro for OpenTelemetry .

  • (somente Non-runtime agentes) Certifique-se de que sua estrutura esteja configurada para emitir rastreamentos (por exemplo, strands-agents[otel] pacote). Às vezes, talvez seja necessário incluir o autoinstrumentor da estrutura do seu agente (por exemplo,). opentelemetry-instrumentation-langchain

O Amazon Bedrock AgentCore Observability oferece duas maneiras de configurar o monitoramento para atender às diferentes necessidades de infraestrutura:

  1. Agentes Amazon Bedrock AgentCore Runtime-hosted

  2. Non-runtime agentes hospedados

Como uma configuração única por AWS conta, os usuários iniciantes precisam ativar a Pesquisa de transações na Amazon CloudWatch. Há duas maneiras de fazer isso, por meio da API e do CloudWatch console.

Depois de habilitar o Transaction Search, pode levar dez minutos para que as extensões fiquem disponíveis para pesquisa e análise. Escolha uma das opções abaixo:

Opção 1: ativar a pesquisa de transações usando uma API

Para ativar a pesquisa de transações usando a API

  1. Crie uma política que conceda acesso aos períodos de ingestão em CloudWatch registros usando AWS a CLI.

    Um exemplo é mostrado abaixo sobre como formatar seu comando AWS CLI comPutResourcePolicy.

    aws logs put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "TransactionSearchXRayAccess", "Effect": "Allow", "Principal": { "Service": "xray.amazonaws.com" }, "Action": "logs:PutLogEvents", "Resource": [ "arn:partition:logs:region:account-id:log-group:aws/spans:*", "arn:partition:logs:region:account-id:log-group:/aws/application-signals/data:*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:xray:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ]}'
  2. Configure o destino dos segmentos de rastreamento.

    Um exemplo é mostrado abaixo sobre como formatar seu comando AWS CLI comUpdateTraceSegmentDestination.

    aws xray update-trace-segment-destination --destination CloudWatchLogs
  3. Opcional Configure a quantidade de extensões a serem indexadas.

    Configure a porcentagem de amostragem desejada comUpdateIndexingRule.

    aws xray update-indexing-rule --name "Default" --rule '{"Probabilistic": {"DesiredSamplingPercentage": number}}'

Opção 2: ativar a pesquisa de transações no CloudWatch console

Para ativar a pesquisa de transações no CloudWatch console

  1. Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, em Configuração, escolha Configurações.

  3. Selecione Conta e escolha a guia X-Ray Traces.

  4. Na seção Pesquisa de transações, escolha Exibir configurações.

  5. Na página que se abre, escolha Editar.

  6. Escolha Habilitar Transaction Search.

  7. Selecione Para X-Ray usuários e insira a porcentagem de rastreamentos a serem indexados. Você pode indexar 1% dos rastreamentos sem nenhum custo e ajustar essa porcentagem posteriormente com base nas suas necessidades.

  8. Escolha Salvar. Espere até que OpenTelemetry os intervalos de ingestão apareçam Ativados antes de enviar rastreamentos.

Vamos agora explorar as duas maneiras de configurar a observabilidade.

Etapa 2: habilitar a observabilidade dos agentes hospedados do Amazon Bedrock AgentCore Runtime

Os AgentCore Runtime-hosted agentes do Amazon Bedrock são implantados e executados diretamente no AgentCore ambiente do Amazon Bedrock, fornecendo instrumentação automática com configuração mínima. Quando você implanta um agente usando a AgentCore CLI, o tempo de execução instrumenta automaticamente seu agente com OpenTelemetry — nenhuma biblioteca ou configuração OTEL adicional é necessária.

Para obter um exemplo completo, consulte as amostras de AgentCore observabilidade em GitHub

Crie seu projeto de agente

Crie um novo projeto usando a AgentCore CLI. Isso configura a pasta do projeto, o ambiente virtual e as dependências:

npm install -g @aws/agentcore agentcore create \ --project-name StrandsObservability \ --name StrandsClaudeGettingStarted \ --language Python \ --framework Strands \ --model-provider Bedrock \ --memory none cd StrandsObservability/app/StrandsClaudeGettingStarted uv add strands-agents-tools cd ../..

No diretório do agente do projeto, substitua o código padrão do agente pela sua própria lógica de agente. Veja a seguir um exemplo usando o SDK do Strands Agents:

## app/StrandsClaudeGettingStarted/main.py from strands import Agent, tool from strands_tools import calculator from bedrock_agentcore.runtime import BedrockAgentCoreApp from strands.models import BedrockModel app = BedrockAgentCoreApp() @tool def weather(): """Get weather""" return "sunny" model = BedrockModel( model_id="us.anthropic.claude-3-7-sonnet-20250219-v1:0", ) agent = Agent( model=model, tools=[calculator, weather], system_prompt="You're a helpful assistant. You can do simple math calculation, and tell the weather." ) @app.entrypoint def strands_agent_bedrock(payload): """Invoke the agent with a payload""" user_input = payload.get("prompt") if not isinstance(user_input, str) or not user_input: return "Error: 'prompt' must be a non-empty string" response = agent(user_input) return response.message['content'][0]['text'] if __name__ == "__main__": app.run()

Implante e invoque seu agente

Implante o agente no AgentCore Runtime. A AgentCore CLI lida com empacotamento, implantação e instrumentação OTEL automática:

agentcore deploy

Após a implantação, seu agente é executado no AgentCore Runtime e é automaticamente instrumentado usando OpenTelemetry. Chame seu agente e visualize os rastreamentos, as sessões e as métricas no painel do GenAI Observability na Amazon: CloudWatch

agentcore invoke

Como alternativa, você pode invocar seu agente programaticamente usando o SDK: AWS

import boto3, json client = boto3.client('bedrock-agentcore') response = client.invoke_agent_runtime( agentRuntimeArn="YOUR_AGENT_RUNTIME_ARN", runtimeSessionId="my-observability-session-001", payload=json.dumps({"prompt": "What is 2 + 2?"}), qualifier="DEFAULT" ) print(json.loads(response['response'].read()))

Etapa 3: habilitar a observabilidade para agentes que não são da Amazon Bedrock AgentCore-hosted

Para agentes que funcionam fora do tempo de AgentCore execução do Amazon Bedrock, você pode oferecer os mesmos recursos de monitoramento para agentes implantados em sua própria infraestrutura. Isso permite uma observabilidade consistente, independentemente de onde seus agentes atuam. Use as etapas a seguir para configurar as variáveis de ambiente necessárias para observar seus agentes.

Para ver um exemplo completo, consulte a amostra Agents on Amazon EKS no GitHub site.

Configurar AWS variáveis de ambiente

export AWS_ACCOUNT_ID=<account id> export AWS_DEFAULT_REGION=<default region> export AWS_REGION=<region> export AWS_ACCESS_KEY_ID=<access key id> export AWS_SECRET_ACCESS_KEY=<secret key>

Configurar o CloudWatch registro

Crie um grupo de logs e um stream de logs para seu agente na Amazon CloudWatch , que você pode usar para configurar as variáveis de ambiente abaixo.

Configurar variáveis de OpenTelemetry ambiente

export AGENT_OBSERVABILITY_ENABLED=true # Activates the ADOT pipeline export OTEL_PYTHON_DISTRO=aws_distro # Uses AWS Distro for OpenTelemetry export OTEL_PYTHON_CONFIGURATOR=aws_configurator # Sets AWS configurator for ADOT SDK export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf # Configures export protocol export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=<YOUR-LOG-GROUP>,x-aws-log-stream=<YOUR-LOG-STREAM>,x-aws-metric-namespace=<YOUR-NAMESPACE> # Directs logs to CloudWatch groups export OTEL_EXPORTER_OTLP_TRACES_HEADERS=x-aws-log-group=<YOUR-LOG-GROUP>,x-aws-log-stream=<YOUR-TRACES-LOG-STREAM> # (Optional) Directs spans to your log group instead of the aws/spans log group. Requires ADOT version 0.18.0 or later. export OTEL_RESOURCE_ATTRIBUTES=service.name=<YOUR-AGENT-NAME> # Identifies your agent in observability data export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false # AWS Lambda Layer for OpenTelemetry only: disables Application Signals export OTEL_LOGS_EXPORTER=otlp # AWS Lambda Layer for OpenTelemetry only: exports logs over OTLP export OTEL_METRICS_EXPORTER=awsemf # AWS Lambda Layer for OpenTelemetry only: exports metrics as CloudWatch EMF

<YOUR-AGENT-NAME>Substitua por um nome exclusivo para identificar esse agente no painel e nos registros do GenAI Observability.

nota

Se você definir OTEL_EXPORTER_OTLP_TRACES_HEADERS a entrega de períodos para seu próprio grupo de logs, também deverá adicionar uma política de recursos do Amazon CloudWatch Logs. A política deve permitir que X-Ray (xray.amazonaws.com) chame logs:PutLogEvents esse grupo de registros. Use a mesma política mostrada em Habilitar a pesquisa de transações usando uma API, com o ARN do seu grupo de registros emResource. Sem essa política, não é X-Ray possível entregar extensões ao seu grupo de registros.

Crie um agente localmente

# Create agent.py - Strands agent that is a weather assistant from strands import Agent from strands_tools import http_request # Define a weather-focused system prompt WEATHER_SYSTEM_PROMPT = """You are a weather assistant with HTTP capabilities. You can: 1. Make HTTP requests to the National Weather Service API 2. Process and display weather forecast data 3. Provide weather information for locations in the United States When retrieving weather information: 1. First get the coordinates or grid information using https://api.weather.gov/points/{latitude},{longitude} or https://api.weather.gov/points/{zipcode} 2. Then use the returned forecast URL to get the actual forecast When displaying responses: - Format weather data in a human-readable way - Highlight important information like temperature, precipitation, and alerts - Handle errors appropriately - Convert technical terms to user-friendly language Always explain the weather conditions clearly and provide context for the forecast. """ # Create an agent with HTTP capabilities weather_agent = Agent( system_prompt=WEATHER_SYSTEM_PROMPT, tools=[http_request], # Explicitly enable http_request tool ) response = weather_agent("What's the weather like in Seattle?") print(response)

Execute seu agente com o comando automático de instrumentação

aws-opentelemetry-distroEm seu requirements.txt, o opentelemetry-instrument comando irá:

  • Carregue sua configuração OTEL a partir de suas variáveis de ambiente

  • Instrumenta automaticamente Strands, chamadas do Amazon Bedrock, ferramentas e bancos de dados do agente e outras solicitações feitas pelo agente

  • Envie rastros para CloudWatch

  • Permite que você visualize o processo de tomada de decisão do agente no painel GenAI Observability

Use o comando a seguir para executar seu agente com instrumentação automática:

opentelemetry-instrument python agent.py

Se você hospedar seu agente no AWS Lambda, use o AWS Lambda Layer for OpenTelemetry no site AWS Distro for. OpenTelemetry Adicione a camada à sua função e defina a variável de AWS_LAMBDA_EXEC_WRAPPER ambiente como/opt/otel-instrument. A camada então instrumenta automaticamente sua função. Com essa abordagem, você não precisa adicionar o aws-opentelemetry-distro pacote ou executar o opentelemetry-instrument comando descrito anteriormente.

O ADOT Collector não é compatível com a observabilidade do agente

O ADOT Collector não é compatível com a observabilidade do agente. Para enviar telemetria de um agente hospedado fora do AgentCore tempo de execução, você deve usar o ADOT SDK ou o Lambda AWS Layer for. OpenTelemetry

Agora você pode visualizar seus rastreamentos, sessões e métricas no GenAI Observability Dashboard na Amazon CloudWatch com o valor YOUR-AGENT-NAME que você configurou em suas variáveis de ambiente.

Para correlacionar rastreamentos em várias execuções de agentes, você pode associar um ID de sessão aos seus dados de telemetria usando bagagem: OpenTelemetry

from opentelemetry import baggage, context ctx = baggage.set_baggage("session.id", session_id)

Etapa 4: observe seu agente com a observabilidade do GenAI na Amazon CloudWatch

Depois de implementar a observabilidade, você pode visualizar os dados coletados em: CloudWatch

Observe seu agente

  1. Abra o GenAI Observability no console CloudWatch

  2. Você pode visualizar os dados relacionados às invocações de modelos e agentes no Bedrock Amazon Bedrock AgentCore no painel.

  3. Na guia Bedrock Agentcore, você pode visualizar Agents View, Sessions View e Traces View.

  4. O Agents View lista todos os seus agentes que estão ativos e não em tempo de execução. Você também pode escolher um agente e ver mais detalhes, como métricas de tempo de execução, sessões e rastreamentos específicos de um agente.

  5. Na guia Visualização de sessões, você pode navegar por todas as sessões associadas aos agentes.

  6. Na guia Trace View, você pode examinar os rastreamentos e as informações de abrangência dos agentes. Explore também a trajetória e a linha do tempo do traçado escolhendo um traçado.

Exibir logins CloudWatch

Para ver os logins CloudWatch

  1. Abra o console do CloudWatch .

  2. No painel de navegação esquerdo, expanda Registros e selecione Grupos de registros

  3. Pesquise o grupo de registros do seu agente:

    • Localização dos registros padrão (stdout/stderr): /aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>/[runtime-logs] <UUID>

    • Registros estruturados do OTEL: /aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>/runtime-logs

Visualizar rastros e intervalos

Para visualizar traços e extensões

  1. Abra o console do CloudWatch .

  2. Selecione Pesquisa de transações na navegação à esquerda

  3. Local: o fluxo de spans registros no grupo de registros do agente (/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>) ou o fluxo de default registros no grupo de aws/spans registros para agentes que usam o destino de intervalo compartilhado

  4. Filtrar por nome de serviço ou outros critérios

  5. Selecione um rastreamento para visualizar o gráfico de execução detalhado

Visualizar métricas do

Para visualizar métricas

  1. Abra o console do CloudWatch .

  2. Selecione Métricas na navegação à esquerda

  3. Navegue até o bedrock-agentcore namespace

  4. Explore as métricas disponíveis

Práticas recomendadas

  1. Comece de forma simples e depois expanda — A observabilidade padrão fornecida pelo Amazon Bedrock AgentCore captura automaticamente as métricas mais críticas, incluindo chamadas de modelo, uso de tokens e execução de ferramentas.

  2. Configurar para o estágio de desenvolvimento - Adapte sua configuração de observabilidade para corresponder à sua fase de desenvolvimento atual e ajuste-a progressivamente.

  3. Use nomenclatura consistente - Estabeleça convenções de nomenclatura para serviços, extensões e atributos desde o início

  4. Filtre dados confidenciais - Evite a exposição de informações confidenciais filtrando dados confidenciais de atributos de observabilidade e cargas úteis.

  5. Configurar alertas - Configure CloudWatch alarmes para notificá-lo sobre possíveis problemas antes que eles afetem os usuários