Eval & Guardrails LLM
DeepEval, Promptfoo, Ragas, Opik, Guardrails AI — puntúa cada cambio de prompt antes del despliegue y detecta regresiones a tiempo.
Qué incluye este pack
Este pack reúne las cinco herramientas open-source a las que todo equipo converge una vez que sus features LLM llegan a usuarios reales y "el modelo se puso peor esta semana" deja de ser respuesta tolerable. Las herramientas se dividen en dos mitades: evaluación pre-deploy (puntúa cada cambio de prompt) y guardrails runtime (constriñe lo que el modelo realmente emite).
| # | Recurso | Fase | Mejor en |
|---|---|---|---|
| 1 | DeepEval | Pre-deploy | Tests estilo pytest para outputs LLM (G-Eval, Faithfulness, métricas hallucination) |
| 2 | Promptfoo | Pre-deploy | Comparaciones A/B de prompts y red-team scans entre modelos |
| 3 | Ragas | Pre-deploy | Métricas RAG-específicas: context precision, faithfulness, answer relevancy |
| 4 | Opik | Observabilidad | Tracing en producción, scores eval por request, curación de datasets |
| 5 | Guardrails AI | Runtime | Validar schema y políticas de salida, con retry y reasking |
La separación importa. Eval pre-deploy atrapa la regresión antes de que la vea el cliente. Guardrails runtime atrapa la regresión que no predijiste. Necesitas ambos — eval solo se pierde inputs adversariales que no sampleaste, guardrails solo no te dice qué cambio de prompt causó el drift.
Por qué eval es ya table-stakes
Tres fuerzas hicieron de eval la diferencia entre equipos que envían y equipos que se atascan:
- Los upgrades de modelo ocurren en agenda del vendor. Cuando Anthropic libera Sonnet 4.7, tu prompt que funcionaba en 4.6 puede comportarse sutilmente distinto. Sin suite eval, te enteras por un ticket de soporte. Con Promptfoo, corres
promptfoo eval -c promptfooconfig.yaml --providers anthropic:claude-4.7,anthropic:claude-4.6y ves el diff en 30 segundos. - Los prompts no tienen errores de compilación. Un typo en código lanza excepción. Un typo en prompt produce output plausible pero peor que se envía. Eval es el paso de compilación que los prompts nunca tuvieron.
- La calidad RAG decae silenciosa. Un doc nuevo que se recupera pero no es realmente relevante baja la calidad de respuesta sin levantar error. Ragas te da scores de context precision y faithfulness por query, así detectas decay antes de que se acumule.
Instala en un comando
# Instala el pack completo en el proyecto actual
tokrepo install pack/llm-eval-guardrails
# O elige recursos individuales
tokrepo install promptfoo
tokrepo install ragas
El TokRepo CLI configura un directorio evals/ con casos de test ejemplo, un promptfooconfig.yaml, un notebook Ragas semilla con tu retriever, y una plantilla rail file Guardrails AI. Snippets CI bloquean merges según pass rate de la suite eval.
Errores comunes
- LLM-as-judge sin grounding. DeepEval y Ragas usan un modelo juez para puntuar respuestas, pero si el juez es el mismo modelo que el sistema bajo prueba, obtienes scores optimistas. Usa familia diferente como juez, o pin un modelo más fuerte (e.g. juez con Claude al puntuar outputs GPT).
- Suites eval con 5 casos. Cinco ejemplos a mano no cubren el long tail. Apunta a 50-200 casos derivados de logs reales de producción (Opik facilita esto — samplea outputs malos, etiquétalos, promueve a eval set).
- Tratar Guardrails como filtro mágico. Guardrails refuerza estructura (JSON válido, sin profanidad, conforme a schema) — no atrapa respuestas factualmente erróneas pero bien formateadas. Empareja con un check faithfulness Ragas.
- Correr eval contra tráfico producción cuesta. Las suites eval pueden pegar 5-10x tu factura LLM normal si re-puntúas cada noche. Cachea embeddings, samplea tu eval set por run, o usa modelos baratos para el paso juez.
- Sin eval para outputs no-texto. Si tu agente emite tool calls, evalúa la forma del tool call con aserciones estructuradas, no solo el texto final. Promptfoo soporta esto via hooks
transformyassertcustom.
Cuándo este pack solo no basta
Para observabilidad producción completa más allá de Opik (percentiles latencia, tracking coste por usuario, analítica routing modelos), mira LangSmith o Arize Phoenix — ninguno está en el pack porque son más orquestación que eval. Para clasificadores safety (detección jailbreak, scoring prompt injection), añade Llama Guard o NVIDIA NeMo Guardrails — Guardrails AI se enfoca en validación de salida, no detección de input adversarial. Y si tu eval necesita anotación human-in-the-loop a escala, Argilla o Label Studio enchufan al formato dataset de Opik.
5 recursos listos para instalar
Preguntas frecuentes
¿Es gratis correr todo el pack?
Las cinco herramientas son open source bajo licencias permisivas (Apache 2.0 o MIT). Los costes de cómputo son el variable: cada llamada eval pega un LLM, así que una suite de 200 casos × 4 variantes prompt × 2 modelos = 1600 llamadas LLM por run. Cachea agresivamente, samplea para runs nocturnas, full-run solo en release. Ragas y DeepEval soportan LLM-as-judge con modelos baratos (Haiku, gpt-4o-mini) para mantener bajo el coste juez.
¿Cómo se compara con LangSmith o Braintrust?
LangSmith y Braintrust son plataformas gestionadas con eval, observabilidad y curación de datasets en una UI. El pack aquí te da 80% de las features por $0 y auto-host completo. Trade-off: cableas los componentes tú (Promptfoo para eval, Opik para traces, Guardrails para runtime) en vez de un dashboard. Elige gestionado si tu equipo si no haría eval en absoluto; elige este pack si el esfuerzo de ingeniería es más barato que cuotas por asiento.
¿Funcionará con Claude Code o Cursor?
Sí. Claude Code puede crear configs Promptfoo y casos test DeepEval desde tu spec de feature — dale la spec más algunos prompts ejemplo, y genera evals/test_*.py y promptfooconfig.yaml. Las páginas recurso TokRepo incluyen prompts subagente que conectan esto a un comando slash prompt-eval. Cursor usa el mismo flujo via reglas custom.
¿Qué diferencia a Promptfoo de DeepEval?
Promptfoo es config-driven (YAML) y excele en comparaciones A/B entre providers/modelos — perfecto para la pregunta '¿deberíamos cambiar de GPT a Claude?'. DeepEval es code-driven (pytest) y excele en aserciones estilo unit-test sobre prompts individuales — perfecto para 'esta respuesta debe mencionar X y no contener Y'. La mayoría corre ambos: Promptfoo para selección de modelo, DeepEval para regresión de prompt.
¿Trampa operativa al añadir Guardrails AI?
El reasking de Guardrails puede multiplicar tu latencia y coste — cada validación fallida dispara otra llamada LLM para arreglar el output. Pon max-retry 1-2, monitorea tasa reask en Opik (si tasa >5% tu prompt mismo está mal, no el output), y prefiere modo structured output (JSON schema) sobre reasking cuando el modelo subyacente lo soporte (Claude, GPT-4o, Gemini todos lo hacen).
12 packs · 80+ recursos seleccionados
Explora todos los packs curados en la página principal
Volver a todos los packs