View a markdown version of this page

Configurar la telemetría del Vercel AI SDK para las evaluaciones AgentCore - 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.

Configurar la telemetría del Vercel AI SDK para las evaluaciones AgentCore

En esta página se explica cómo instrumentar un agente del Vercel AI SDK, cómo se identifican los intervalos y cómo se extraen los campos de evaluación. El Vercel AI SDK es un TypeScript-only marco, por lo que todo el soporte de esta página se aplica a los agentes. TypeScript

nota

AgentCore Evaluations solo es compatible con el SDK de Vercel AI para agentes. TypeScript Python no es compatible en este momento.

Temas

TypeScript soporte de agentes

Un agente del SDK de Vercel AI produce intervalos bajo el nombre del alcance. @aws/aws-distro-opentelemetry-instrumentation-vercel-ai

Instrumente a su agente

Instrumente un agente del Vercel AI SDK con el AWS Distro for OpenTelemetry (ADOT). Agregue el paquete de autoinstrumentación AWS Distro Node () a sus dependencias. @aws/aws-distro-opentelemetry-node-autoinstrumentation Incluye la instrumentación Vercel AI integrada, que se activa al inicio y emite el nombre del ámbito. @aws/aws-distro-opentelemetry-instrumentation-vercel-ai

package.json:

{ "dependencies": { "@aws/aws-distro-opentelemetry-node-autoinstrumentation": "^0.12.0" } }

La instrumentación sigue las convenciones semánticas de la OpenTelemetry IA generativa: clasifica los intervalos con atributos y clasifica la conversación en atributos. gen_ai.operation.name gen_ai.*

nota

La instrumentación es un paso para configurar la observabilidad. Para exportar la telemetría para su evaluación, complete la configuración completa en Configurar la observabilidad.

Cómo se identifican los intervalos

La instrumentación de IA de Vercel establece el gen_ai.operation.name atributo en cada tramo. El servicio de evaluación usa este atributo para clasificar los intervalos:

Tipo de intervalo Atributo identificativo

Invocar al agente

gen_ai.operation.name = invoke_agent

Ejecute la herramienta

gen_ai.operation.name = execute_tool

Inferencia

gen_ai.operation.name = chat

Cómo se extraen los campos de evaluación

El Vercel AI SDK serializa los mensajes de dos formas, y AgentCore Evaluations lee ambas:

  • En la entrada del agente invocador aparece una forma de dictado de objetos y se extiende por intervalos de inferencia, en los que gen_ai.input.messages aparece un objeto JSON con un system campo (la línea de comandos del sistema) y una matriz (por ejemplo,). messages {"system": "…​", "messages": [{"role": "user", "content": "…​"}]}

  • Una forma de lista de piezas en la salida, en la que cada mensaje incluye una parts matriz de bloques de contenido escritos (por ejemplo,). [{"role": "assistant", "parts": [{"type": "text", "content": "…​"}]}]

AgentCore Las evaluaciones extraen el texto de ambas formas: la solicitud de usuario del último mensaje de usuario de la entrada, la solicitud del sistema del system campo y la respuesta del agente de las partes de texto de la salida.

La instrumentación de inteligencia artificial de Vercel utiliza telemetría unificada, por lo que el contenido de la conversación permanece en el intervalo en forma de atributos:

  • Respuesta del usuario y respuesta del agente: desde gen_ai.input.messages y hacia el intervalo del agente gen_ai.output.messages invocado.

  • Mensaje del sistema: desde el system campo del objeto dictado en. gen_ai.input.messages

  • Llamada a la herramienta: el nombre de la herramienta desdegen_ai.tool.name, los argumentos y el resultado de gen_ai.tool.call.arguments ygen_ai.tool.call.result, en el intervalo de herramientas de ejecución.

Para obtener más información, consulte Ejemplos de intervalos de un TypeScript agente.

Ejemplos de intervalos de un agente TypeScript

Con la telemetría unificada, el contenido de la conversación permanece en los atributos del intervalo y no se produce ningún registro de eventos independiente. Los siguientes ejemplos provienen de un agente de planificación de viajes del TypeScript Vercel AI SDK implementado en Amazon Bedrock AgentCore Runtime, utilizando un modelo de Amazon Bedrock.

nota

Estos ejemplos no son tramos completos. Muestran datos representativos de una interacción real con un agente; se omiten algunos campos y se truncan los valores largos para facilitar la lectura.

ejemplo
Invoke agent span

El gen_ai.operation.name atributo (invoke_agent) lo identifica como un intervalo de agentes de invocación. El gen_ai.input.messages atributo contiene el mensaje y la conversación del sistema en forma de dictado de objeto, y gen_ai.output.messages contiene la respuesta del agente en forma de lista de piezas.

{ "traceId": "6a6bd3b14c8d91ed1e70a3906b551618", "spanId": "fa0dce44446e3d24", "name": "invoke_agent", "kind": "INTERNAL", "scope": { "name": "@aws/aws-distro-opentelemetry-instrumentation-vercel-ai", "version": "0.12.0" }, "attributes": { "gen_ai.operation.name": "invoke_agent", "gen_ai.provider.name": "aws.bedrock", "gen_ai.request.model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0", "gen_ai.input.messages": "{\"system\": \"You are a travel planning assistant ...\", \"messages\": [{\"role\": \"user\", \"content\": \"Hey, how can you help me\"}]}", "gen_ai.output.messages": "[{\"role\": \"assistant\", \"parts\": [{\"type\": \"text\", \"content\": \"Hello! I'm your travel planning assistant ...\"}]}]", "session.id": "sea-nyc-trip-2-turns" }, "status": { "code": "OK" } }
Execute tool span

El gen_ai.operation.name atributo (execute_tool) lo identifica como un conjunto de herramientas de ejecución; gen_ai.tool.name contiene el nombre de la herramienta. El gen_ai.tool.call.arguments atributo contiene los argumentos de la herramienta y el gen_ai.tool.call.result resultado de la herramienta.

{ "traceId": "6a6bd3b14c8d91ed1e70a3906b551618", "spanId": "b64c37adefae74f0", "name": "execute_tool search_flights", "kind": "INTERNAL", "scope": { "name": "@aws/aws-distro-opentelemetry-instrumentation-vercel-ai", "version": "0.12.0" }, "attributes": { "gen_ai.operation.name": "execute_tool", "gen_ai.tool.name": "search_flights", "gen_ai.tool.type": "function", "gen_ai.tool.call.id": "toolu_bdrk_01LzXXJCfpfuS7Bpf7e1qLMg", "gen_ai.tool.call.arguments": "{\"origin\": \"SEA\", \"destination\": \"NYC\", \"date\": \"2025-03-15\"}", "gen_ai.tool.call.result": "{\"origin\": \"SEA\", \"destination\": \"NYC\", \"flights\": [ ... ]}", "session.id": "sea-nyc-trip-2-turns" }, "status": { "code": "OK" } }
Inference span

El gen_ai.operation.name atributo (chat) lo identifica como un intervalo de inferencia. Contiene los metadatos del modelo y, en élgen_ai.tool.definitions, la lista de herramientas disponibles para el agente. Los mensajes de conversación de la llamada modelo están en gen_ai.input.messages (forma de dictado de objeto) y gen_ai.output.messages (forma de lista de piezas).

{ "traceId": "6a6bd3b14c8d91ed1e70a3906b551618", "spanId": "1865614ca1b88dfb", "name": "chat us.anthropic.claude-sonnet-4-5-20250929-v1:0", "kind": "INTERNAL", "scope": { "name": "@aws/aws-distro-opentelemetry-instrumentation-vercel-ai", "version": "0.12.0" }, "attributes": { "gen_ai.operation.name": "chat", "gen_ai.provider.name": "aws.bedrock", "gen_ai.request.model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0", "gen_ai.response.model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0", "gen_ai.usage.input_tokens": 1258, "gen_ai.usage.output_tokens": 241, "gen_ai.input.messages": "{\"system\": \"You are a travel planning assistant ...\", \"messages\": [{\"role\": \"user\", \"content\": \"Hey, how can you help me\"}]}", "gen_ai.output.messages": "[{\"role\": \"assistant\", \"parts\": [{\"type\": \"text\", \"content\": \"Hello! I'm your travel planning assistant ...\"}]}]", "gen_ai.tool.definitions": "[{\"type\": \"function\", \"name\": \"search_flights\", \"description\": \"Search for available flights between cities.\", ...}]", "session.id": "sea-nyc-trip-2-turns" }, "status": { "code": "OK" } }