View a markdown version of this page

Comience con AgentCore Observability - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Comience con AgentCore Observability

Amazon Bedrock AgentCore Observability le ayuda a rastrear, depurar y supervisar el rendimiento de los agentes en los entornos de producción. Esta guía le ayuda a implementar funciones de observabilidad en las aplicaciones de sus agentes.

Requisitos previos

Antes de empezar, asegúrese de tener:

  • AWS Cuenta con las credenciales configuradas (aws configure) y con el acceso al modelo básico que desea usar y tiene habilitado el acceso al modelo básico.

  • Python 3.10+ instalado

  • Habilita la búsqueda de transacciones en Amazon. CloudWatch Solo una vez, los usuarios primerizos deben habilitar la búsqueda de CloudWatch transacciones para ver los intervalos y rastros de Bedrock Amazon Bedrock AgentCore

  • (solo Non-runtime agentes) Agregue la OpenTelemetry biblioteca: incluya aws-opentelemetry-distro (ADOT) en su archivo requirements.txt. Si aloja su agente en AWS Lambda, utilice en su lugar la capa AWS Lambda para en la distribución para el OpenTelemetry AWS sitio web. OpenTelemetry

  • (solo Non-runtime agentes) Asegúrese de que su marco esté configurado para emitir trazas (por ejemplo, strands-agents[otel] un paquete). En ocasiones, es posible que necesites incluir el autoinstrumentador de tu framework de agentes (por ejemplo,opentelemetry-instrumentation-langchain).

Amazon Bedrock AgentCore Observability ofrece dos formas de configurar la supervisión para que se adapte a las diferentes necesidades de infraestructura:

  1. Agentes de Amazon Bedrock AgentCore Runtime-hosted

  2. Non-runtime agentes hospedados

Como se configura una sola vez por AWS cuenta, los usuarios primerizos deben habilitar la búsqueda de transacciones en Amazon CloudWatch. Hay dos maneras de hacerlo, a través de la API y a través de la CloudWatch consola.

Tras activar Transaction Search, las unidades de seguimiento pueden tardar diez minutos en estar disponibles para su búsqueda y análisis. Elige una de las siguientes opciones:

Opción 1: Habilitar la búsqueda de transacciones mediante una API

Para habilitar la búsqueda de transacciones mediante la API

  1. Cree una política que permita el acceso a la ingesta de intervalos en los CloudWatch registros mediante AWS la CLI.

    A continuación se muestra un ejemplo sobre cómo formatear un comando de la AWS CLI con. PutResourcePolicy

    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 el destino de los segmentos de rastreo.

    A continuación se muestra un ejemplo sobre cómo formatear el comando de la AWS CLI conUpdateTraceSegmentDestination.

    aws xray update-trace-segment-destination --destination CloudWatchLogs
  3. Opcional: configure la cantidad de intervalos que se van a indexar.

    Configure el porcentaje de muestreo deseado conUpdateIndexingRule.

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

Opción 2: habilita la búsqueda de transacciones en la CloudWatch consola

Para habilitar la búsqueda de transacciones en la CloudWatch consola

  1. Abra la CloudWatch consola en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, en Configuración, seleccione Configuración.

  3. Seleccione Cuenta y elija la pestaña de X-Ray rastros.

  4. En la sección Búsqueda de transacciones, selecciona Ver configuración.

  5. En la página que se abre, selecciona Editar.

  6. Seleccione Habilitar Transaction Search.

  7. Seleccione Para X-Ray usuarios e introduzca el porcentaje de rastros que desee indexar. Puede indexar el 1% de los rastros sin coste alguno y ajustar este porcentaje más adelante en función de sus necesidades.

  8. Seleccione Guardar. Espera a que los intervalos de ingesta se OpenTelemetry muestren como Habilitados antes de enviar los rastreos.

Pasemos ahora a explorar las dos formas de configurar la observabilidad.

Paso 2: Habilite la observabilidad para los agentes alojados en Amazon Bedrock Runtime AgentCore

AgentCore Runtime-hosted Los agentes de Amazon Bedrock se implementan y ejecutan directamente en el AgentCore entorno de Amazon Bedrock, lo que proporciona una instrumentación automática con una configuración mínima. Cuando implementa un agente mediante la AgentCore CLI, el motor de ejecución instrumenta automáticamente a su agente, sin necesidad OpenTelemetry de bibliotecas ni configuraciones adicionales de OTEL.

Para ver un ejemplo completo, consulte los ejemplos de AgentCore observabilidad en GitHub

Crea tu proyecto de agente

Cree un nuevo proyecto mediante la AgentCore CLI. Esto configura la carpeta del proyecto, el entorno virtual y las dependencias:

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 ../..

En el directorio de agentes del proyecto, sustituya el código de agente predeterminado por su propia lógica de agente. El siguiente es un ejemplo en el que se utiliza el SDK de 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()

Despliegue e invoque a su agente

Implemente el agente en AgentCore Runtime. La AgentCore CLI gestiona el empaquetado, la implementación y la instrumentación OTEL automática:

agentcore deploy

Tras la implementación, su agente se ejecuta en AgentCore Runtime y se instrumenta automáticamente mediante. OpenTelemetry Invoca a tu agente y consulta los seguimientos, las sesiones y las métricas en el panel de control de GenAI Observability de Amazon: CloudWatch

agentcore invoke

Como alternativa, puedes invocar a tu agente mediante programación mediante el 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()))

Paso 3: Habilite la observabilidad para los agentes que no sean de Amazon Bedrock AgentCore-hosted

En el caso de los agentes que trabajan fuera del entorno de AgentCore ejecución de Amazon Bedrock, puede ofrecer las mismas capacidades de supervisión a los agentes desplegados en su propia infraestructura. Esto permite una observabilidad uniforme independientemente de dónde se ejecuten los agentes. Siga los pasos siguientes para configurar las variables de entorno necesarias para observar a sus agentes.

Para ver un ejemplo completo, consulte el ejemplo de Agents on Amazon EKS en el GitHub sitio web.

Configuración AWS variables de entorno

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>

Configure el CloudWatch registro

Cree un grupo de registros y una secuencia de registros para su agente en Amazon CloudWatch que pueda usar para configurar las siguientes variables de entorno.

Configure las variables de OpenTelemetry entorno

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>Sustitúyalo por un nombre único para identificar a este agente en el panel y los registros de GenAI Observability.

nota

Si decides enviar intervalos OTEL_EXPORTER_OTLP_TRACES_HEADERS a tu propio grupo de registros, también debes añadir una política de recursos de Amazon CloudWatch Logs. La política debe permitir que X-Ray (xray.amazonaws.com) llame logs:PutLogEvents a ese grupo de registros. Usa la misma política que se muestra en Habilitar la búsqueda de transacciones mediante una API, con el ARN de tu grupo de registros ingresadoResource. Sin esta política, no X-Ray puedes enviar intervalos a tu grupo de registros.

Crea un agente de forma local

# 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)

Ejecute su agente con un comando de instrumentación automático

aws-opentelemetry-distroEn su archivo requirements.txt, el opentelemetry-instrument comando hará lo siguiente:

  • Cargue la configuración de OTEL a partir de las variables de su entorno

  • Instrumente automáticamente Strands, las llamadas de Amazon Bedrock, las herramientas y bases de datos de los agentes y otras solicitudes realizadas por el agente

  • Envía los rastros a CloudWatch

  • Le permiten visualizar el proceso de toma de decisiones del agente en el panel de control de GenAI Observability

Utilice el siguiente comando para ejecutar su agente con instrumentación automática:

opentelemetry-instrument python agent.py

Si aloja su agente en AWS Lambda, utilice la capa AWS Lambda para en el sitio web OpenTelemetry AWS Distro for. OpenTelemetry Agregue la capa a su función y, a continuación, defina la variable de AWS_LAMBDA_EXEC_WRAPPER entorno en. /opt/otel-instrument A continuación, la capa instrumenta automáticamente la función. Con este enfoque, no es necesario añadir el aws-opentelemetry-distro paquete ni ejecutar el opentelemetry-instrument comando descrito anteriormente.

No se admite ADOT Collector para la observabilidad de los agentes

El recopilador de ADOT no es compatible con la capacidad de observación de los agentes. Para enviar telemetría desde un agente hospedado fuera del AgentCore tiempo de ejecución, debes usar el SDK de ADOT o la capa Lambda para. AWS OpenTelemetry

Ahora puede ver sus rastreos, sesiones y métricas en el panel de observación de GenAI en Amazon CloudWatch con el valor YOUR-AGENT-NAME que configuró en las variables de su entorno. Configure las variables de OpenTelemetry entorno

Para correlacionar los seguimientos realizados por varios agentes, puedes asociar un identificador de sesión a tus datos de telemetría utilizando equipaje: OpenTelemetry

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

Paso 4: Observa a tu agente con la capacidad de observación de GenAI en Amazon CloudWatch

Tras implementar la observabilidad, puede ver los datos recopilados en: CloudWatch

Observe a su agente

  1. Abra el GenAI Observability en la consola CloudWatch

  2. Puede ver los datos relacionados con las invocaciones de modelos y los agentes en Bedrock (Amazon AgentCore Bedrock) en el panel de control.

  3. En la pestaña Agentcore de Bedrock puede ver la vista de agentes, la vista de sesiones y la vista de trazas.

  4. La vista de agentes muestra todos los agentes que están activos y no en tiempo de ejecución. También puede elegir un agente y ver más detalles, como las métricas de tiempo de ejecución, las sesiones y los rastreos específicos de un agente.

  5. En la pestaña Vista de sesiones, puede navegar por todas las sesiones asociadas a los agentes.

  6. En la pestaña Trace View, puede consultar la información sobre los rastros y el alcance de los agentes. También puede explorar la trayectoria y el cronograma del rastreo seleccionando un rastreo.

Ver los registros ingresados CloudWatch

Para ver los inicios de sesión CloudWatch

  1. Abra la consola de CloudWatch .

  2. En el panel de navegación izquierdo, expanda Registros y seleccione Grupos de registros

  3. Busque el grupo de registros de su agente:

    • Ubicación de los registros estándar (stdout/stderr): /aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>/[runtime-logs] <UUID>

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

Visualización de rastros e intervalos de tiempo

Para ver trazas y tramos

  1. Abra la consola de CloudWatch .

  2. Selecciona Búsqueda de transacciones en el menú de navegación de la izquierda

  3. Ubicación: la secuencia de spans registros del grupo de registros del agente (/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>) o la secuencia de default registros del grupo de aws/spans registros para los agentes que utilizan el destino del intervalo compartido

  4. Filtre por nombre de servicio u otros criterios

  5. Seleccione un seguimiento para ver el gráfico de ejecución detallado

Ver las métricas de

Para ver las métricas

  1. Abra la consola de CloudWatch .

  2. Selecciona Métricas en el menú de navegación de la izquierda

  3. Navega hasta el espacio de bedrock-agentcore nombres

  4. Explore las métricas disponibles

Prácticas recomendadas

  1. Empiece por algo simple y luego amplíe: la observabilidad predeterminada que proporciona Amazon Bedrock AgentCore captura automáticamente las métricas más importantes, incluidas las llamadas a modelos, el uso de tokens y la ejecución de herramientas.

  2. Configure para la fase de desarrollo: adapte su configuración de observabilidad para que coincida con su fase de desarrollo actual y ajústela progresivamente.

  3. Utilice una nomenclatura coherente: establezca convenciones de nomenclatura para los servicios, los intervalos y los atributos desde el principio

  4. Filtre los datos confidenciales: evite la exposición de la información confidencial filtrando los datos confidenciales de los atributos de observabilidad y las cargas útiles.

  5. Configure alertas: configure CloudWatch alarmas para que le notifiquen los posibles problemas antes de que afecten a los usuarios