Configurar un evaluador
1
Instalar el SDK del evaluador
Instala el SDK y el servidor necesario para ejecutarlo.
2
Definir qué puntuar
Crea
evaluator.py. Este ejemplo comprueba si una sesión contiene alguna llamada a herramienta fallida.3
Ejecutarlo y probarlo localmente
Establece un token compartido, inicia el evaluador y confirma que su endpoint de salud responde.En otra terminal:
Conectar el evaluador a Failproof AI
- Despliega el evaluador en una URL HTTPS accesible por Failproof AI Cloud.
- Configura
EVALUATOR_ENDPOINTcon esa URL y estableceEVALUATOR_TOKENcon el mismo token utilizado por el evaluador. Para Cloud gestionado, contacta con support@befailproof.ai para configurar la conexión. - Ejecuta una evaluación y confirma que sus puntuaciones aparecen en Failproof AI.
- Panel de control
- CLI
Abre una sesión completada en Observe → Sessions y selecciona Run evaluation si no se evaluó automáticamente. Revisa el estado, las puntuaciones, el razonamiento y el resumen en el panel Evaluation de la sesión.Usa Observe → Evaluations para comparar puntuaciones entre agentes o entornos. Usa Observe → Metrics para mediciones de latencia, coste, tokens y otros valores numéricos.Comienza con una sola sesión para confirmar que el evaluador devolvió las claves de puntuación esperadas y un razonamiento útil para esa ejecución específica.
Una vez que los resultados individuales parezcan correctos, usa el panel de evaluación para comparar esas puntuaciones a lo largo del tiempo y entre agentes o entornos.
Un gráfico saludable debe usar nombres de puntuación estables; cambiar una clave crea una serie separada.


EVALUATOR_ENDPOINT en el proceso del servidor. Reinicia el servidor después de cambiar las variables de entorno del evaluador.
El servicio expone GET /health, GET /config, POST /evaluate y opcionalmente GET /evaluate/{job_id}. Devuelve JobPending para trabajo asíncrono y registra @app.job_lookup para que Failproof AI pueda consultarlo periódicamente.
Cuando hay un token configurado, todas las rutas excepto health requieren el mismo token bearer que Failproof AI envía como EVALUATOR_TOKEN.
Tipos del SDK
Decoradores y rutas
El SDK limita el cuerpo de las solicitudes de evaluación a 25 MiB. Los campos desconocidos de la solicitud se ignoran, de modo que los servicios permanecen compatibles a medida que el contrato de eventos evoluciona.
Devolver trabajo asíncrono
UsaJobPending cuando la evaluación no puede completarse dentro de una sola solicitud. El ID de trabajo es opaco para Failproof AI y debe permanecer resoluble por tu servicio hasta que el resultado sea recogido o expire el tiempo de espera del servidor.
JobPending.next_poll_secs, EvaluatorConfig.default_poll_interval_secs y luego el EVALUATOR_POLLING_INTERVAL_SECS del servidor. Los valores se limitan entre 1 segundo y 1 hora. El límite de tiempo de consulta por reloj del servidor es de una hora por defecto.
Campos de solicitud y respuesta
Configuración para el operador del servidor
La evaluación automática afecta a todo el despliegue y permanece deshabilitada cuandoEVALUATOR_ENDPOINT no está definido.
El servidor también puede restringir qué organizaciones usan el evaluador global del despliegue. Trata los cambios en el endpoint, el token, los reintentos y las restricciones por organización como configuración del operador, y reinicia o rota el servidor tras modificarlos.
Seguridad y operaciones
- Coloca el evaluador detrás de HTTPS cuando el tráfico cruce un límite de red de confianza.
- Configura un token bearer no vacío y mantenlo idéntico en ambos servicios.
- No registres en logs el token ni los prompts sensibles completos de las cargas útiles de las solicitudes.
- Haz que los manejadores síncronos sean idempotentes; los reintentos pueden repetir una solicitud.
- Persiste el estado de los trabajos asíncronos fuera de la memoria del proceso en producción.
- Devuelve claves de puntuación estables. Renombrar una clave crea una nueva serie en el gráfico en lugar de modificar la anterior.
eval received, eval responded, job lookup, config returned, auth rejected y excepciones de manejadores. No configura manejadores de logging; utiliza la configuración de logging de la aplicación anfitriona.
