Byviz Analytics Byviz Analytics

📖 AgentBench for Elastic — Metodología del Benchmark

Agentic AI Evaluation Framework para Elastic Agent Builder 9.3 — Metodología completa: proceso de evaluación, claim decomposition, métricas y puntuación explicados paso a paso

AgentBench for Elastic es un Agentic AI Evaluation Framework — un framework especializado de evaluación de agentes de IA diseñado específicamente para Elastic Agent Builder 9.3. No es un benchmark genérico de modelos de lenguaje: aquí evaluamos cómo cada LLM se comporta como agente real, con herramientas reales, datos reales y restricciones de producción reales.

Utilizamos Claim Decomposition — un sistema de evaluación avanzado que descompone cada respuesta en afirmaciones atómicas y las evalúa individualmente para Correctness (media geométrica) y Groundedness (media aritmética). Medimos tool calling, razonamiento multi-paso, resistencia a inputs adversariales, retención de contexto en conversaciones multi-turn, precisión, fiabilidad, latencia y coste en 30 tests reales contra datos determinísticos.

📑 Índice

  1. ¿Qué es AgentBench for Elastic?
  2. ¿Cómo funciona? — Flujo de evaluación
  3. El Juez: GPT-5.2 y Claim Decomposition
  4. Evaluación por Claims: Correctness, Groundedness y más
  5. Métricas calculadas automáticamente
  6. ★ Adjusted Overall — Pesos, dificultad y penalización por fallos
  7. Categorías de tests (11 categorías)
  8. Niveles de dificultad (easy → expert)
  9. Los 30 tests del benchmark
  10. Tool Calling: qué es y por qué importa
  11. Métricas de eficiencia
  12. Cómo interpretar el informe

1. ¿Qué es AgentBench for Elastic?

AgentBench for Elastic (v1.0) es un framework de evaluación end-to-end que mide cómo diferentes modelos de lenguaje (LLM) funcionan como agentes de IA dentro de Elastic Agent Builder 9.3. A diferencia de los benchmarks genéricos (MMLU, HumanEval, etc.) que evalúan capacidades aisladas del modelo, AgentBench evalúa el rendimiento agentic real — el modelo integrado en un stack de producción, con herramientas, datos y restricciones reales. Medimos:

  • 🔧 Usar herramientas correctamente — elegir la tool adecuada (search, ES|QL, mapping...)
  • 🎯 Dar respuestas correctas (Correctness) — verificadas contra un ground truth detallado mediante descomposición en claims con media geométrica (un solo error crítico lleva el score a 0)
  • Basar sus respuestas en datos reales (Groundedness) — cada afirmación se compara contra el output real de las tools con media aritmética (proporción justa de claims fundamentados)
  • 📋 Seguir instrucciones — formato, filtros, restricciones específicas
  • 🧠 Razonar en múltiples pasos — analizar, buscar, combinar resultados entre índices
  • 💬 Mantener contexto — recordar turnos previos en conversaciones de hasta 5 turnos
  • 🛡️ Resistir adversarial inputs — campos inexistentes, peticiones contradictorias, operaciones imposibles
  • 🔀 Trabajar entre índices — correlacionar datos de múltiples fuentes (cross-index)
  • 📐 Cumplir formatos estrictos — responder solo con JSON, solo un número, o exactamente N bullet points
  • Ser eficiente — responder rápido y a bajo coste
⚠️ Importante: Los 30 tests (organizados en 11 categorías y 4 niveles de dificultad) se ejecutan contra dos índices reales: benchmark-ecommerce (1.000 documentos de pedidos de e-commerce) y benchmark-customers (20 perfiles de clientes con tiers y segmentación). No hay datos simulados ni mocks — el agente interactúa con Elasticsearch real a través de la API de Agent Builder. El dataset es determinístico: siempre los mismos datos para que los resultados sean comparables entre modelos y entre ejecuciones.

2. ¿Cómo funciona?

Cada test sigue este flujo de 6 pasos:

📝
Test
Pregunta predefinida
🤖
Agent Builder
Kibana API + LLM
🔧
Tools
Search, ES|QL, Mapping
💬
Respuesta
Del agente al usuario
🧑‍⚖️
Juez GPT-5.2
Claim Decomposition
📊
Scoring
Geometric + Arithmetic

Paso a paso:

  1. Se envía la pregunta al agente a través de la API de Kibana (POST /api/agent_builder/converse). En tests multi-turn, se envían múltiples turnos en la misma conversación.
  2. El LLM decide qué hacer — razona, elige herramientas, ejecuta queries contra Elasticsearch. El agente tiene acceso a search, ES|QL, mappings y listado de índices.
  3. Se captura todo — la respuesta, los tools usados (con sus outputs reales), la latencia (TTLT), los tokens (input/output), el coste real obtenido del proveedor vía OpenRouter.
  4. El juez (GPT-5.2) descompone la respuesta en claims — cada afirmación atómica se evalúa individualmente para Correctness (vs ground truth) y Groundedness (vs output de tools), asignando veredictos y severidad. El juez recibe el output real de las tools (truncado a 6.000 chars) para verificar alucinaciones.
  5. Se calculan las métricas localmenteCorrectness con media geométrica (un error crítico lleva el score a 0), Groundedness con media aritmética (proporción justa de claims fundamentados), más métricas programáticas (latencia, coste, tool calling con overlap, error rate).
  6. Se aplican pesos, dificultad y penalización por fallos — la puntuación final (★ Adjusted Overall) pondera por dificultad del test (easy ×0.7, medium ×1.0, hard ×1.3, expert ×1.6) y aplica una failure penalty que penaliza modelos con timeouts o errores. Todo se almacena en Elasticsearch con el campo model para seguimiento histórico.

3. El Juez: GPT-5.2 y Claim Decomposition

🧑‍⚖️ ¿Por qué un LLM como juez?

Evaluar respuestas de IA no es trivial — no puedes comparar strings, porque una respuesta puede ser correcta de muchas formas diferentes. Utilizamos OpenAI GPT-5.2 como "LLM-as-Judge" porque:

  • Puede entender semántica — si la respuesta dice lo mismo con palabras diferentes
  • Puede evaluar matices — parcialmente correcto, formato adecuado pero datos incompletos
  • Puede verificar alucinaciones — comparando la respuesta con el output real de los tools
  • Puede descomponer en claims — extraer cada afirmación atómica y evaluarla individualmente

📦 ¿Qué recibe el juez?

Para cada test, GPT-5.2 recibe un prompt estructurado con:

  • La pregunta original que se le hizo al agente
  • Ground truth detallado — la respuesta correcta esperada con datos concretos verificados (cantidades exactas, nombres, valores)
  • Exact answer (si aplica) — un valor numérico preciso que el agente debe proporcionar
  • Output real de los tools — los datos que Elasticsearch devolvió, truncado a 6.000 chars con aviso de truncamiento
  • La respuesta del agente — lo que finalmente dijo al usuario

🧩 Claim Decomposition — La clave de la evaluación

En lugar de pedir puntuaciones globales genéricas, el juez descompone la respuesta en claims atómicos — cada afirmación factual individual se evalúa por separado. Esto permite detectar:

  • Errores parciales — una respuesta puede ser 90% correcta pero tener un dato crítico incorrecto
  • Alucinaciones específicas — identificar exactamente qué afirmación no tiene soporte en los datos
  • Claims periféricos vs centrales — un error en un detalle menor pesa menos que un error en el dato clave

Cada claim recibe dos evaluaciones independientes: Correctness (comparado contra el ground truth) y Groundedness (comparado contra el output real de los tools). Esto detecta tanto errores factuales como alucinaciones.

🔍 Anti-alucinación: El juez compara la respuesta del agente contra el output real de los tools. Si el output está truncado (indicado explícitamente como ⚠️ TRUNCATED), el juez no penaliza datos que no puede verificar — solo penaliza información que claramente contradice lo que los tools devolvieron. Además, si el agente presenta información como conocimiento general (sin atribuirla a los tools), se clasifica como DISCLOSED_UNGROUNDED y se penaliza menos que una alucinación directa.

4. Evaluación por Claims: Correctness, Groundedness y más

El juez no asigna puntuaciones globales genéricas. En su lugar, descompone la respuesta en claims atómicos (afirmaciones factuales individuales) y evalúa cada uno en dos dimensiones independientes. Además, da puntuaciones simples para formato e instrucciones.

🏷️ Centralidad de cada claim

Cada claim se clasifica como:

  • Central — Esencial para responder la pregunta del usuario (conteos, nombres, datos clave). Un error aquí es grave.
  • Peripheral — Contexto adicional, notas de formato, consejos generales. Un error aquí pesa menos.

🎯 Correctness — ¿Es factualmente correcto? (vs Ground Truth)

Cada claim se compara contra el ground truth verificado para determinar si es correcto:

VeredictoSignificadoScore (central)
FULLY_SUPPORTED Coincide completamente con el ground truth 1.0
PARTIALLY_SUPPORTED Parcialmente correcto con imprecisiones menores 0.70
CONTRADICTED Contradice directamente el ground truth 0.0 (critical)
NOT_VERIFIABLE No se puede verificar con el ground truth disponible 0.85
Agregación: Media geométrica de todos los claim scores
→ Un solo claim CONTRADICTED (critical, central) lleva TODO el Correctness a 0.0
→ Esto es intencional: un error factual crítico hace la respuesta inútil

⚓ Groundedness — ¿Está basado en datos reales? (vs Tool Output)

Cada claim se compara contra lo que los tools realmente devolvieron, para detectar alucinaciones:

VeredictoSignificadoScore (central)
GROUNDED Directamente soportado por el output de los tools 1.0
PARTIALLY_GROUNDED Parcialmente soportado por el tool output 0.70
DISCLOSED_UNGROUNDED No está en el output pero el agente lo presenta explícitamente como conocimiento general 0.60
UNGROUNDED Sin base en el tool output (potencialmente alucinado) 0.0
Agregación: Media aritmética de todos los claim scores
→ A diferencia de Correctness, aquí NO se usa media geométrica
→ Razón: "no verificable desde el tool output" ≠ "incorrecto". Los modelos más detallados generan más claims, y con media geométrica un solo claim periférico DISCLOSED_UNGROUNDED llevaría el score a 0 — penalizando injustamente respuestas completas.
→ La media aritmética refleja la proporción de claims fundamentados, que es la métrica justa.

⚠️ Severity — Solo para CONTRADICTED o UNGROUNDED

Cuando un claim es incorrecto o no fundamentado, se asigna una severidad que modifica el impacto:

  • critical — Números incorrectos, nombres erróneos, estados falsos. Podría causar decisiones erróneas.
  • major — Error factual significativo pero menos impactante.
  • minor — Pequeña imprecisión: redondeo, paráfrasis ligera.

Ejemplo: un claim "Hay 50 pedidos de Madrid" cuando el ground truth dice 49 → CONTRADICTED + severity "minor" (score 0.50 en central). Pero un claim "El cliente top es Juan García" cuando es "Hans Mueller" → CONTRADICTED + severity "critical" (score 0.0 en central).

📐 Format Score y 📝 Instruction Following Score

Además de los claims, el juez asigna dos puntuaciones simples (0–10):

  • Format Score — ¿La respuesta está bien estructurada? ¿Usa markdown, tablas, listas cuando es apropiado?
  • Instruction Following Score — ¿El agente respetó las restricciones específicas? (formato de tabla, número de bullets, filtros, índice concreto…)

📊 Relevance — Proporción de claims centrales

Se calcula automáticamente como la proporción de claims marcados como "central" sobre el total de claims. Un score alto indica que la respuesta es concisa y relevante — no tiene mucho "relleno" periférico.

Relevance = n_central_claims / n_total_claims
0.9 → 90% de la respuesta es información relevante para la pregunta
📌 Nota sobre multi-turn: En tests conversacionales de múltiples turnos, el juez evalúa la respuesta final pero tiene contexto de todos los turnos anteriores. Esto permite evaluar si el agente mantiene coherencia y recuerda información de turnos previos en conversaciones de hasta 5 turnos.

5. Métricas calculadas automáticamente

Además de las evaluaciones del juez por claims, se calculan estas métricas de forma objetiva y programática (sin LLM):

⏱️ Latency Score

Basado en el tiempo total de respuesta (Time To Last Token). Interpolación lineal entre umbrales:

< 5s → 10.0 (excelente)
5–15s → 10.0–7.0 (interpolación lineal)
15–45s → 7.0–4.0 (interpolación lineal)
> 45s → 4.0–1.0 (penalización decreciente)
Timeouts (≥120s) reciben score ≈ 1.0 y la latencia se registra como 120s (no como 0s)

💰 Cost Score

Basado en el coste real en USD por query, obtenido del proveedor vía OpenRouter (precio real del provider, no el precio base):

< $0.005 → 10.0 (excelente)
$0.005–$0.02 → 10.0–7.0 (interpolación)
$0.02–$0.08 → 7.0–4.0 (interpolación)
> $0.08 → 4.0–1.0 (caro)

🔧 Tool Calling Score (Overlap)

Mide si el modelo usó al menos una de las herramientas esperadas. Basado en overlap de conjuntos:

expected ∩ actual ≠ ∅ → 10.0 (al menos una tool correcta usada)
expected ∩ actual = ∅ → 0.0 (ninguna tool esperada fue usada)
Sin tools esperadas → 10.0 (cualquier uso es válido)

¿Por qué overlap y no F1? En la práctica, los modelos inteligentes a veces usan tools adicionales (ej: consultar el mapping antes de buscar). Esto es comportamiento proactivo y deseable, no un error. El enfoque overlap recompensa usar al menos una tool correcta sin penalizar tools extra.

🚫 Error Rate Score

Penaliza errores técnicos en la ejecución de tools (timeouts de tool, errores de API, etc.):

0 errores → 10.0
Cada error resta 3 puntos: score = max(0, 10 - errors × 3)

✅ Exact Answer Check

Para tests con respuesta numérica exacta (ej: "¿Cuántos pedidos hay?"), se verifica automáticamente si la respuesta del agente contiene el valor correcto:

Coincidencia exacta → ✓ match
Dentro del 0.1% → ✓ match (numeric_close)
Dentro del 5% → ~ approximate
Fuera de rango → ✗ no match
Para enteros, la comparación es estricta (49 ≠ 50)

6. ★ Adjusted Overall — Pesos, dificultad y penalización por fallos

La puntuación ★ Adjusted Overall es la métrica principal del benchmark. Se calcula en tres fases: primero la media ponderada por métricas, luego el peso por dificultad, y finalmente la penalización por fallos.

📊 Fase 1: Media ponderada de métricas

Cada test recibe un overall_weighted basado en estos pesos:

Métrica Peso Fuente ¿Qué mide? Distribución
🎯 Correctness 25% Claims (geom.) ¿Los datos son factualmente correctos?
⚓ Groundedness 20% Claims (arith.) ¿Está basado en los datos de los tools?
🔧 Tool Calling 15% Programático ¿Usó las herramientas correctas?
⏱️ Latency 10% Programático ¿Respondió rápido?
📝 Instruction Following 10% Judge (simple) ¿Siguió las instrucciones?
🚫 Error Rate 10% Programático ¿Tuvo errores en tool execution?
💰 Cost 5% Programático ¿Es económico?
📊 Relevance 5% Claims (ratio) ¿Es conciso y relevante?
overall_weighted = Σ (weight_i × score_i)
Ejemplo: 0.25×8.5 + 0.20×9.0 + 0.15×10.0 + 0.10×4.2 + ... = 7.83

🎚️ Fase 2: Ponderación por dificultad

Los tests difíciles pesan más en el score global del modelo. Cada dificultad tiene un multiplicador:

easy × 0.7    medium × 1.0    hard × 1.3    expert × 1.6

model_overall = Σ(score_i × diff_weight_i) / Σ(diff_weight_i)
→ Aprobar un test "expert" aporta 2.3× más que un test "easy"

⚠️ Fase 3: Failure Penalty

Los modelos con timeouts o errores reciben una penalización proporcional a su tasa de fallos:

failure_penalty = pass_rate ^ severity
severity = 1.2 (configurable)

★ Adjusted Overall = model_overall × failure_penalty

Ejemplos:
100% pass → penalty = 1.00 (sin penalización)
90% pass → penalty = 0.895 (penalización -10.5%)
80% pass → penalty = 0.782 (penalización -21.8%)
70% pass → penalty = 0.663 (penalización -33.7%)

¿Por qué? Un modelo que falla en 3 de 30 tests no solo pierde esos 3 scores — también pierde credibilidad como agente fiable. La failure penalty refleja este riesgo operativo.

¿Por qué Correctness tiene más peso (25%)? Porque un agente que da respuestas incorrectas es inútil, por rápido o barato que sea. Groundedness (20%) es el segundo porque un agente que alucina datos es peligroso. Tool Calling (15%) es el tercero porque un agente que no sabe elegir herramientas no escala a casos de uso reales.

7. Categorías de tests (11 categorías)

Los 30 tests se agrupan en 11 categorías que cubren diferentes capacidades del agente:

🔍
Tool Usage

Tests básicos de uso de herramientas: listar índices, obtener mappings, ejecutar búsquedas con filtros. Valida que el agente sabe interactuar con Elasticsearch.

4 tests · Easy–Hard
📊
Analytics (ES|QL)

Consultas analíticas: contar documentos, agrupar por categoría, calcular medias con filtros. El agente puede usar ES|QL internamente vía search.

3 tests · Easy–Hard
🧠
Reasoning

Razonamiento multi-paso: analizar un mapping y luego construir queries, o analizar distribuciones y proporcionar un resumen interpretativo.

2 tests · Medium–Hard
📝
Instruction Following

Seguimiento estricto de instrucciones: formato de tabla markdown, exactamente 3 bullet points, restricciones de formato específicas.

2 tests · Medium
💬
Multi-turn

Conversaciones de 2–5 turnos donde cada pregunta depende de la anterior. Evalúa retención de contexto, corrección de errores y refinamiento progresivo.

3 tests · Medium–Hard
Edge Cases

Casos límite: productos inexistentes, preguntas vagas sin contexto claro, índices que no existen. ¿El agente gestiona errores y ambigüedad correctamente?

3 tests · Easy–Medium
🎯
Exact Answer

Tests con respuesta numérica exacta verificable: conteos con filtros, sumas de importes, conteos de cardinalidad. Se valida programáticamente.

3 tests · Easy–Medium
🔀
Cross-Index

Tests que requieren correlacionar datos entre benchmark-ecommerce y benchmark-customers. Requiere múltiples tool calls y razonamiento entre fuentes.

2 tests · Hard–Expert
🛡️
Adversarial

Inputs diseñados para confundir al agente: campos inexistentes, peticiones contradictorias (status=cancelled AND delivered), operaciones imposibles (SQL JOINs).

3 tests · Hard–Expert
🏆
Expert

Tests de nivel experto: cálculos derivados complejos (top 3 por revenue con métricas), análisis temporal Q3 vs Q4, y deep multi-turn de 5 turnos con resumen final.

3 tests · Expert
📐
Format Strict

Formatos de respuesta estrictos: "responde solo con JSON, sin markdown ni explicación" o "responde solo con un número, nada más". Evalúa adherencia extrema al formato.

2 tests · Medium–Hard
🆕 Incluidas en v1.0: Las categorías Exact Answer, Cross-Index, Adversarial, Expert y Format Strict se añadieron para cubrir escenarios más exigentes y realistas que diferencian mejor entre modelos de diferente capacidad. Además, se añadieron tests de nivel expert (análisis temporal, deep multi-turn de 5 turnos, cálculos derivados complejos) para estresar los modelos más potentes.

8. Niveles de dificultad (easy → expert)

easy  Fácil — 6 tests  (peso ×0.7)

Un solo paso, una sola herramienta. Ejemplo: "Lista los índices disponibles", "Cuenta cuántos documentos hay", "Busca un producto inexistente".

medium  Medio — 9 tests  (peso ×1.0)

Requiere elegir la herramienta correcta, aplicar filtros, o seguir instrucciones de formato. Ejemplo: "Lista las categorías en formato tabla markdown", "Busca pedidos de clientes en Madrid", "Corrige el error de mi query anterior".

hard  Difícil — 10 tests  (peso ×1.3)

Multi-paso, multi-turn, queries analíticas complejas, o adversarial inputs. Ejemplo: "Basándote en el mapping, escribe una query para encontrar los top 3 clientes", "Busca pedidos que sean cancelled Y delivered a la vez".

expert  Experto — 5 tests  (peso ×1.6)

Análisis temporal, cálculos derivados complejos, cross-index, multi-turn de 5 turnos, y operaciones imposibles. Ejemplo: "Compara revenue Q3 vs Q4 por categoría", "Busca los pedidos de clientes Gold cruzando dos índices", "Analiza tendencias de cancelación por trimestre y método de pago en una conversación de 5 turnos".

💡 Impacto del peso por dificultad: Un test expert que se aprueba con un 8.0 contribuye 8.0 × 1.6 = 12.8 al numerador, mientras que un test easy con la misma nota contribuye 8.0 × 0.7 = 5.6. Esto hace que los modelos que aprueban tests difíciles se diferencien claramente de los que solo aprueban los fáciles.

9. Los 30 tests del benchmark

Los 30 tests se ejecutan contra dos índices reales con datos determinísticos:

El dataset es determinístico — generado por un script con seed fija para que los resultados sean comparables entre modelos y entre ejecuciones. Cada test tiene un ground truth detallado con datos concretos verificados (cantidades exactas, nombres, valores), y algunos tests incluyen un exact_answer numérico verificable programáticamente.

💡 En el informe: Haz clic en cualquier fila de test para desplegar el detalle completo: la pregunta original, todos los turnos (en multi-turn), el ground truth, la respuesta del agente, la evaluación claim-by-claim del juez (con veredictos de Correctness y Groundedness), las tools esperadas vs usadas, las puntuaciones individuales y el Exact Answer Check si aplica.

10. Tool Calling: qué es y por qué importa

¿Qué herramientas tiene el agente?

El agente de Elastic Agent Builder (elastic-ai-agent) tiene acceso a estas tools:

  • platform.core.search — Buscar documentos en Elasticsearch. Puede generar y ejecutar queries ES|QL internamente.
  • platform.core.execute_esql — Ejecutar queries ES|QL ya preparadas (no las escribe, solo las ejecuta).
  • platform.core.generate_esql — Generar una query ES|QL a partir de lenguaje natural.
  • platform.core.get_index_mapping — Ver el schema/mapping de un índice.
  • platform.core.list_indices — Listar índices disponibles.

Nota importante: En la práctica, platform.core.search puede generar y ejecutar ES|QL internamente. Esto significa que cuando un test pide "usar ES|QL", el agente puede usar platform.core.search y aun así ejecutar ES|QL correctamente. Por ello, el benchmark acepta ambas tools como válidas en los tests de ES|QL.

¿Cómo se calcula el Tool Calling Score?

Se usa un enfoque de overlap (no F1) para ser justo con modelos inteligentes:

  • Si el modelo usó al menos una de las tools esperadas10.0
  • Si no usó ninguna de las tools esperadas0.0
  • Tools extra (proactivas) → No se penalizan. Un modelo que consulta el mapping antes de buscar está siendo inteligente.

En el informe, si ves un 0.0 con un icono , significa que el modelo usó una herramienta diferente a la esperada. Haz clic en la fila para ver el detalle: tools esperadas vs usadas y la evaluación del juez.

Métricas adicionales de Tools

  • Tool Exec Rate — % de llamadas a tools que ejecutaron sin error técnico (API errors, timeouts de tool).
  • Tokens/Tool Call — Media de tokens por llamada a tool (más bajo = más eficiente). Incluye el payload de la respuesta de la tool.
  • Tool Retries — Número de veces que el agente reintentó una tool que falló (indicador de resiliencia).

11. Métricas de eficiencia

💲 Quality / Dollar

¿Cuánta calidad obtienes por cada dólar gastado?

Quality/$ = Σ(overall_weighted de cada test) / total_cost_USD
Más alto = mejor relación calidad-precio. Un modelo barato pero malo puede tener un ratio alto; un modelo caro pero excelente puede superarlo.

⚡ Quality / Second

¿Cuánta calidad obtienes por segundo de espera?

Quality/s = Σ(overall_weighted de cada test) / total_wall_time_seconds
Más alto = mejor rendimiento temporal. Los timeouts (registrados como 120s) penalizan esta métrica.

📊 Latencia dual

El informe muestra dos valores de latencia para evitar distorsiones:

  • Avg Latency (OK) — Media solo de tests exitosos (sin timeouts). Refleja la velocidad real del modelo cuando funciona.
  • Avg Latency (all) — Media incluyendo timeouts (registrados como 120s en lugar de 0s). Refleja la fiabilidad operativa real.

Los tests con timeout muestran ≥120s en la columna de latencia y en la columna de coste (ya que no se completó la generación de tokens).

📈 Consistency (passed only)

Mide la estabilidad de las puntuaciones entre los tests que sí se completaron:

Std Dev σ = desviación estándar de overall_weighted (solo tests exitosos)
σ < 1.0 = muy consistente | σ > 3.0 = muy errático

Se muestra la consistencia solo de tests exitosos para que los timeouts no distorsionen la métrica. La consistencia alta (σ bajo) indica que el modelo es predecible — sabes qué esperar.

🛡️ Reliability Score

Puntuación sintética que combina pass rate, consistencia y ausencia de errores:

reliability = (pass_rate × 0.5) + (consistency_score × 0.3) + (error_absence × 0.2)
Un modelo que pasa todos los tests, es consistente y no tiene errores obtiene un reliability cercano a 10.

12. Cómo interpretar el informe

📊 Tabla comparativa

La tabla principal ordena los modelos por ★ Adjusted Overall. Haz clic en el nombre del modelo para saltar a su card detallada. Las columnas muestran:

  • ★ Adjusted — Puntuación final ajustada por dificultad y failure penalty (0–10)
  • Correct — Correctness por claims (media geométrica)
  • Ground — Groundedness por claims (media aritmética)
  • Tool — Tool calling score (overlap)
  • Lat (OK/all) — Latencia media (solo exitosos / incluyendo timeouts)
  • Cost — Coste total de todos los tests
  • Pass — Tests completados sin timeout ni error

🤖 Cards de modelo

Cada modelo tiene una card detallada con:

  • Badges de fallos — ⏱ Timeouts (amber), 🔧 Tool mismatch (purple), ❌ Errors (rojo) — con conteos específicos
  • KPIs principales — ★ Adjusted Overall, Pass Rate %, Avg Latency (OK y all), Coste total
  • Barras de puntuación — Desglose visual de cada métrica: Correctness (geom.), Groundedness (arith.), Relevance, Tool Calling, Latency, Cost, Instruction Following, Error Rate
  • Eficiencia — Quality/$, Quality/s, Tokens/tool, con fórmulas visibles al lado
  • Consistencia — Std Dev σ, Min, Max, Median (solo tests exitosos). Muestra si el modelo es predecible o errático
  • Tabla de tests — Cada test con todas sus puntuaciones, dificultad, y estado. Haz clic para desplegar el detalle completo

🔎 Panel de detalle de cada test

Al hacer clic en cualquier fila de test, se despliega un panel con:

  • Pregunta original — La pregunta que se le hizo al agente (todos los turnos en multi-turn)
  • Ground Truth — La respuesta correcta esperada con datos concretos
  • Respuesta del agente — Lo que respondió (completo)
  • Evaluación del juez — El razonamiento completo de GPT-5.2
  • Claims Analysis — Cada claim individual con sus veredictos de Correctness y Groundedness, centralidad y explicación
  • Tools — Expected vs Used, con icono ≠ si no coinciden
  • Exact Answer Check — Si aplica, el valor esperado vs encontrado
  • 🔗 Permalink — Enlace directo a cada test para compartir

📈 Gráficos

  • 🎯 Comparativa de Puntuación Overall — Barras horizontales por modelo con ★ Adjusted Overall. Rápida comparación visual.
  • 🕸️ Radar Multi-Dimensional — 10 dimensiones: Correctness, Groundedness, Tool Calling, Latency, Cost, Instruction Following, Error Rate, Relevance, Format, Reliability. Muestra el perfil completo de cada modelo.
  • 📂 Puntuación por Categoría — ¿Qué modelo es mejor en analytics? ¿En cross-index? ¿En adversarial?
  • 🎚️ Puntuación por Dificultad — ¿Cómo escala el rendimiento de easy → medium → hard → expert?
  • ⚡ Latency vs Quality — Scatter plot (solo tests exitosos). Lo ideal: arriba-izquierda (rápido y bueno).

¿Tienes dudas sobre algún resultado?

Cada puntuación tiene contexto completo. Haz clic en cualquier test para ver la pregunta, los turnos, el ground truth, la respuesta del agente, los claims individuales, la evaluación del juez y las tools usadas. Puedes compartir cualquier test individual con su permalink.

Ver el informe de resultados →