READMEby ansango
← Volver al libro

Validación y medición : cómo saber si el agente funciona

Cómo medir sistemas agenticos: métricas tradicionales vs semánticas para LLMs, integrar evaluación al development lifecycle, escalar evaluation sets, evaluación por componente (tools, planning, memory, learning), evaluación holística (consistencia, coherencia, alucinación, edge cases) y preparar para deploy

~4 min de lectura
Resumen

Construir agentes es fácil; medirlos correctamente es el reto. Sin evaluación rigurosa no se sabe si los cambios son mejoras, no se detectan regresiones, y la confianza del equipo y del usuario se evapora. El capítulo define un marco de medición práctico: integrar evaluación en el development lifecycle (no al final), crecer evaluation sets que cubran hero scenarios y long-tail, evaluar por componente (tools, planning, memory, learning) y luego evaluación holística end-to-end (performance, consistencia, coherencia, alucinación, manejo de unexpected inputs). Cierra con Preparing for Deployment, el pre-launch gate antes de que tu agente toque usuarios reales.

Medición es el keystone

[!quote> Tesis del capítulo “Sin medición rigurosa y continua, es imposible saber si los cambios son mejoras reales, entender cómo los agentes se comportan en entornos realistas y adversariales, o protegerse contra regresiones inesperadas.”

Tres clases de métricas:

TipoEjemplosCuándo medir
QuantitativaAccuracy, latency, robustness, scalability, precision, recallContinuo, automated
CualitativaUser satisfaction, design qualitySampling + human-in-the-loop
Semántica (LLM-specific)Embedding distance, BERTScore, BLEU, ROUGE, LLM-as-judgeEn lugar de exact match, mide intención

[!note> Métricas tradicionales fallan en LLMs “En agentes basados en lenguaje, exact-match metrics frecuentemente fallan en capturar utilidad real — la respuesta correcta puede tomar muchas formas. Por eso el practice moderno recae en semantic similarity (BERTScore, embeddings) y LLM-as-judge que evalúan intención más que wording.”

Hero scenarios primero

Definir un hero scenario — un caso representativo, alta prioridad, que define el éxito del agente. Las métricas nacen de medir el agente contra ese hero:

   Hero: customer support ecommerce recibe mensaje sobre mug rota
        ↓
   Métricas:
   - ¿Llamó a la tool correcta? (issue_refund)
   - ¿Pasó los parámetros correctos? (order_id)
   - ¿Dio confirmación clara?
   - Latencia end-to-end < X segundos

Variantes: multi-item orders, cancellation, address change — cada variante prueba un edge del caso.

Integrar evaluación al lifecycle

[!danger> No relegar la medición al final “Sin evaluación sistemática, es demasiado fácil para equipos expertos engañarse a sí mismos pensando que sus agentes mejoran cuando el progreso es ilusorio o disparejo.”

Cuatro prácticas:

   1. Offline eval  ── al mergear PR / cambiar modelo / cambiar tools
   2. Hero scenarios ── must-pass checks; si rompen, no ship
   3. Reg sets       ── regression detection entre versiones
   4. Sampling       ── QA humano en samples aleatorios production

[!tip> Live vs offline Offline eval (datasets curados, estables): regression detection, A/B comparison. Rápido, reproducible.

Live eval (tráfico real): captura distribución real, long-tail. Sampling + human-in-the-loop.

Crecer el evaluation set continuamente

Los static test suites se quedan cortos: sobrefitean, pierden long-tail, no pueden seguir workflows en evolución. Una buena eval set se grows with the system:

   v1.0   50 hero scenarios  ────────────────────────
   v1.1   50 hero + 12 fallos de v1.0  ───────────────  ← failure modes
   v1.2   50 hero + 12 + 8 edge cases de producción ─  ← real traffic insights
   ...
{
  "order": {
    "order_id": "A89268",
    "status": "Delivered",
    "total": 39.99,
    "items": [
      {"sku": "MUG-001", "name": "Ceramic Coffee Mug", "qty": 1, "unit_price": 19.99},
      {"sku": "TSHIRT-S", "name": "T-Shirt-Small",     "qty": 1, "unit_price": 20.00}
    ],
    "delivered_at": "2025-05-15"
  },
  "conversation": [
    {"role": "customer",  "content": "Hi, my coffee mug arrived cracked..."},
    {"role": "assistant", "content": "I'm very sorry about that! Could you please send us a quick photo..."}
  ]
}

Component evaluation

Evaluar componentes aislados del agente antes de medir el end-to-end. Cinco dimensiones:

Evaluar tools

¿El agente llama a la tool correcta con los parámetros correctos?

# Métricas típicas sobre un dataset
metrics = {
    "tool_precision":   casos_correctos / casos_totales,         # ¿la tool?
    "parameter_accuracy": args_correctos / args_esperados,        # ¿los params?
    "tool_recall":         tools_usadas_esperadas_encontradas,   # completeness
}

# Salidas a testear
def evaluate_tool_call(predicted_tool_call, expected):
    assert predicted_tool_call["name"] == expected["name"]      # tool correcta
    assert predicted_tool_call["args"]["order_id"] == expected["args"]["order_id"]  # params correctos
    return True

Evaluar planning

¿El plan que genera el agente cubre los pasos necesarios y los ordena bien?

Evaluar memory

¿El agente recuerda lo que debería y no contamina con info no pertinente?

Evaluar learning

Si el sistema tiene mejora continua (Reflexion, ExpeL, fine-tuning):

Holistic evaluation

Evaluar el agente entero end-to-end con métricas cualitativas y de comportamiento:

MétricaQué mideCómo
PerformanceTiempo end-to-end, success rateTimestamp end-start, success flag
ConsistenciaMismo input → mismo output (modulo variabilidad LLM)Multiple runs sobre mismo dataset
CoherenceRespuesta tiene sentido lógico narrativoLLM-as-judge + human sampling
HallucinationOutput se apalanca en el contexto correcto (no inventa facts)RAG faithfulness eval, human review
Unexpected inputsEdge cases — adversarial, ambiguous, malformedAdversarial eval set

Hallucination: el asesino silencioso

   Tipos de alucinación en agentes:
   ──────────────────────────────
   - Factual:    inventa datos que no existen en el KB
   - Source:     atribuye la respuesta a sources incorrectas
   - Logical:    conclusiones no se siguen de las premisas
   - Fabricated: inventa policies, procedures, capabilities que no tiene

[!success> Defensa contra alucinaciones

  • RAG faithfulness: la respuesta se basa en los chunks recuperados, no en alucinación libre.
  • Tool verification: si el agente invoca una tool, ejecuta el output; no se inventa responses.
  • LLM-as-judge con rubric: otro LLM evalúa “esta respuesta se sostiene con el contexto dado (Y/N)”.

Handling unexpected inputs

Adversarial eval set incluye:

   - Inputs vacíos / muy largos / malformed
   - Inyecciones de prompt ("ignore previous instructions")
   - Lenguaje no esperado (mezcla idiomas, errores tipográficos)
   - Inyección JSON ("} malformed input {")
   - Race conditions (input changes mid-task)

[!warning> No intentes cubrir todo al 100% “No intentes cubrir cada combinación de inputs. En su lugar, categorías representativas y edge cases conocidos. Cubre lo que importa al usuario.”

Preparing for deployment

El pre-launch gate:

   ☐ Hero scenarios: 100% pass rate
   ☐ Reg tests: ninguna regresión vs última release
   ☐ Performance: latency p95 < SLA
   ☐ Adversarial: comportamiento aceptable en inputs hostiles
   ☐ Holistic: coherence + consistency + hallucination dentro de umbrales
   ☐ Observability: logs, traces, métricas listas (siguiente capítulo)
   ☐ Rollback: mecanismo de rollback a versión anterior definido
   ☐ User feedback: mecanismo de feedback en producción
   Pre-launch check                                  Post-launch
   ──────────────────                                ────────────
   Offline eval set ── 100% pass                    Sample 5% traffic → human review
   Hero scenarios  ── pass                          Live eval set → eval set grows
   Reg tests       ── no regression                 Drift detection → re-train si necesario
   Synthetic load  ── p95 < SLA                     Production traces → debugging

Resumen del capítulo

[!note> Toma de cierre “Medición y validación no son opcionales en producción — son la diferencia entre un agente que mejora con el tiempo y uno que silenciosamente degrada. Sin medidas, cualquier cambio es un volado.”

Próximos pasos

El agente ha pasado los gates y está en producción. Ahora la pregunta es: ¿qué está pasando ahí fuera? El siguiente capítulo entra en 11-monitoreo-en-produccion.