Evaluar agentes independientes del framework con Amazon Bedrock AgentCore Evaluations
La proliferación de frameworks para agentes complica su evaluación. AgentCore Evaluations de Amazon Bedrock separa la instrumentación de la evaluación usando OpenTelemetry, permitiendo mediciones uniformes sin importar la pila subyacente.
El problema: demasiados frameworks, pocas herramientas de evaluación
Equipos de IA en producción enfrentan una asimetría persistente: la variedad de frameworks para construir agentes crece rápidamente, pero las herramientas para evaluarlos no han seguido el mismo ritmo. Muchas soluciones de evaluación asumen un patrón específico: un SDK concreto, un cliente de LLM particular o un esquema de trazado determinado. En cuanto un proyecto sale de esa zona de compatibilidad estrecha, la canalización de evaluación se rompe.
Desarrolladores y arquitectos optan por distintas herramientas según necesidades: LangGraph por orquestación, LlamaIndex por integración con pipelines de recuperación, OpenAI Agents SDK cuando se estandariza en modelos GPT, Google ADK para coordinación multi-agente, Claude Agent SDK para capacidades nativas de Anthropic, o Strands Agents por su bucle model-driven que puede poner un agente operativo en Amazon Bedrock AgentCore en minutos en vez de días. Y es cada vez más común desplegar estas soluciones sobre Amazon Bedrock AgentCore, que asume hosting, escalado, memoria y observabilidad.
La solución: separar evaluación e instrumentación con OpenTelemetry
AgentCore Evaluations resuelve la fragmentación al desacoplar la evaluación de la elección del framework. La clave es OpenTelemetry, un marco de instrumentación neutral que estandariza cómo los sistemas distribuidos emiten trazas, métricas y logs.
OpenTelemetry organiza el trabajo en trazas y spans. Cada span representa un paso dentro de una petición: tiene nombre, marcas de tiempo, atributos tipados y eventos. Los spans se exportan mediante OTLP y son recogidos por un backend de telemetría. En AgentCore runtime, ese backend es el AWS Distro for OpenTelemetry (ADOT), que enruta spans y eventos a Amazon CloudWatch.
Qué necesita leer el servicio de evaluación
Un agente en producción genera muchos tipos de spans: llamadas a modelos, llamadas a herramientas, recuperación de documentos, reranking, generación de embeddings, comprobaciones de guardrail, renderizado de plantillas de prompt, lecturas/escrituras de memoria y pasos de orquestación.
De todo ese conjunto, AgentCore Evaluations requiere tres roles de span para reconstruir una sesión y calificarla:
- invoke agent span: representa el ciclo de petición-respuesta de alto nivel (un turno del usuario). Contiene el prompt del usuario y la respuesta final del agente.
- inference spans: representan llamadas individuales al modelo, llevando el historial de mensajes que se pasó al modelo y la respuesta del modelo.
- execute tool spans: representan cada herramienta invocada por el agente, incluyendo el nombre de la herramienta, parámetros de entrada y resultado.
El evaluador clasifica cada span recibido, extrae los valores necesarios de estos tres roles y deja el resto como contexto adicional. Spans de recuperación, reranking, guardrails o memoria enriquecen la traza pero no son obligatorios para la evaluación básica.
Convivencia de convenciones: OpenTelemetry GenAI y OpenInference
Distintas librerías y frameworks siguen convenciones distintas para nominar spans y atributos. Las convenciones OpenTelemetry GenAI definen operaciones como chat, embeddings, retrieval, execute_tool, invoke_agent, plan y una familia de operaciones de memoria. Por su parte, OpenInference define clases de span como LLM, TOOL, RETRIEVER, RERANKER, EMBEDDING, AGENT, CHAIN, GUARDRAIL, EVALUATOR y PROMPT.
AgentCore Evaluations actúa como puente: normaliza ambas representaciones para extraer la misma información de interés, de modo que diferencias en nombres de atributos, estructuras anidadas o vocabularios de span-kind no impidan la evaluación.
Cómo reconstruye las sesiones AgentCore Evaluations
Cuando se ejecuta una evaluación (manualmente o mediante una configuración de evaluación en línea), el servicio recupera los spans y registros de eventos desde CloudWatch y reconstruye la sesión. Una sesión agrupa spans bajo un identificador de sesión (runtimeSessionId). Dentro de ella, cada traza (trace_id) corresponde a un turno del usuario.
La arquitectura de reconstrucción es la siguiente:
- Session (un runtimeSessionId)
- Trace (un trace_id por turno)
- invoke agent span ← leído: prompt del usuario + respuesta final
- inference span ← leído: mensajes al modelo + respuesta del modelo
- execute tool span ← leído: nombre de la herramienta + parámetros + resultado
- retriever / reranker / guardrail / memory spans (contexto)
- Trace (un trace_id por turno)
El servicio clasifica y extrae los datos de los tres roles principales y entrega la sesión reconstruida a los evaluadores.
Evaluadores agnósticos al framework
Una vez reconstruida la sesión, la evaluación es independiente del framework usado. Los evaluadores incorporados —GoalSuccessRate, Correctness y Helpfulness—, así como evaluadores personalizados del tipo LLM-as-a-judge, puntúan cualquier agente con el mismo criterio. Es decir, un agente desarrollado con LlamaIndex y otro con OpenAI Agents SDK se miden en las mismas métricas si ambos emiten telemetría compatible con OpenTelemetry.
Esto facilita comparaciones justas entre implementaciones, acelera iteraciones y reduce el esfuerzo de ingeniería necesario para integrar pipelines de evaluación en equipos que exploran múltiples frameworks.
Beneficios prácticos para equipos y decisores
- Compatibilidad amplia: mientras la telemetría pase por OpenTelemetry, el framework subyacente deja de ser una barrera para evaluar.
- Menos duplicación de infraestructura: no es necesario construir evaluadores específicos por SDK o adaptar trazado para cada herramienta.
- Observabilidad integrada: ADOT y CloudWatch permiten almacenar y visualizar las trazas que luego usa el servicio de evaluación.
- Futuro compatible: nuevas clases de spans y convenciones se tratan como contexto adicional en vez de generar errores.
Para equipos en América Latina que adoptan agentes conversacionales o sistemas autónomos, esto implica poder experimentar con distintos proveedores y arquitecturas sin sacrificar la consistencia en la evaluación.
Consideraciones finales
AgentCore Evaluations aprovecha OpenTelemetry como lenguaje común para resolver una limitación práctica del desarrollo de agentes: la dispersión de frameworks y la falta de herramientas de evaluación universales. Al centrarse en tres roles de span —invoke agent, inference y execute tool— y al integrar ADOT y CloudWatch, el servicio permite aplicar un conjunto único de evaluadores a agentes construidos con distintas pilas tecnológicas.
El resultado es una evaluación más rápida, menos costosa y más comparable entre proyectos, lo cual es especialmente valioso para organizaciones que deben tomar decisiones de arquitectura, estandarización y gobernanza en entornos regulatorios y comerciales diversos.
Si su equipo ya instrumenta con OpenTelemetry y despliega en AgentCore runtime, AgentCore Evaluations ofrece un camino directo para medir y comparar agentes sin reescribir trazado ni evaluadores por cada framework.
Fuente original: AWS ML Blog