Si despliegas agentes IA o pipelines RAG, conoces el problema: después del deployment, ¿cómo sabes si tu agente está mejorando? ¿O empeorando?
Tienes logs. Montones de ellos. Conteos de tokens, latencias, tasas de error. Pero los logs no son señal. Son solo datos. La pregunta real —"¿esta conversación fue exitosa?"— vive en territorio semántico que las métricas no pueden alcanzar. ¿El agente realmente entendió al usuario? ¿La respuesta fue útil? ¿Se respetaron los guardarraíles de seguridad?
La mayoría de equipos resuelven esto con evaluación manual. Muestrean conversaciones, las califican a mano, construyen hojas de cálculo, ejecutan pipelines de evaluación en datasets. Funciona. También es lento, caro, y escala hacia atrás. Cuanto más necesitas evaluar, más lentamente te mueves.
Construimos Sentygent para invertir esa ecuación: cada conversación se evalúa automáticamente, al instante, y gratis en el tier gratuito. Sin pipeline manual que construir. Sin datasets que curar. Sin hojas de cálculo. Solo señal, cada vez.
El problema con la evaluación tal como existe
La evaluación manual tiene dos defectos fatales.
Primero, no escala a producción. En producción, no estás evaluando 50 conversaciones cuidadosamente curadas —estás ejecutando miles diarias. No puedes calificar manualmente todas ellas. Entonces muestreas. Muestrear significa que pierdes degradación de calidad hasta que es demasiado tarde.
Segundo, es lenta. Despliegas tu agente el lunes. Lo evalúas el jueves. Entre el lunes y el jueves, ¿cuántas conversaciones malas vieron tus usuarios?
Las plataformas de observabilidad existentes (Langfuse, LangSmith) resuelven el problema de escala —registran todo. Pero te piden que definas qué significa "bueno". Construyes scorers personalizados, cableas datasets de evaluación, integras herramientas de CI/CD, cuidas ejecuciones de eval. Las herramientas son genéricas y flexibles. Esa flexibilidad tiene un costo: más setup, más complejidad, más piezas móviles.
Queríamos algo diferente. En lugar de "dame tus datos y los registraré," queríamos "dame tus datos y los puntuaré."
El enfoque: scoring automático de calidad
Sentygent puntúa cada conversación en hasta seis dimensiones:
- Relevancia — ¿La respuesta aborda la pregunta real del usuario?
- Utilidad — ¿Esta respuesta movería al usuario hacia adelante?
- Completitud — ¿Cubre el alcance necesario, o está truncada/superficial?
- Coherencia — ¿La lógica es correcta? ¿Hay contradicciones o razonamientos confusos?
- Seguridad — ¿Evita salidas dañinas, inyecciones o violaciones de políticas?
- Fundamentación (solo RAG) — ¿La respuesta se mantuvo fiel al contexto recuperado, o alucinó?
Las primeras cinco siempre se evalúan. Fundamentación se activa automáticamente cuando tu trace incluye eventos de retrieval con chunks almacenados —sin configuración necesaria. Cada dimensión obtiene una puntuación de 0-100, junto con una sugerencia accionable. Seguridad es especial: si cae por debajo de 30, te alertamos inmediatamente.
El scoring ocurre de manera asincrónica después de que cada conversación termina. Analizamos el trace completo — cada llamada LLM, invocación de herramientas, paso de retrieval y error — y producimos puntuaciones en segundos. La evaluación usa un pipeline LLM diseñado específicamente para velocidad y precisión.
Todo esto es automatizado. Sin setup. Sin config. Solo sucede.
Cómo funciona en tu código
Caminemos a través de una integración. Digamos que tienes un agente de soporte al cliente que recupera docs y genera respuestas.
import { SentygentClient, instrumentOpenAI } from '@sentygent/sdk';
import { OpenAI } from 'openai';
// Initialize once
const sentygent = new SentygentClient({
apiKey: process.env.SENTYGENT_API_KEY,
agent: 'support-agent',
captureContent: true, // Optional: send input/output to scorer
});
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const ai = instrumentOpenAI({ openai }, sentygent); // Auto-instrument calls
// In your request handler
await sentygent.request(userId, async (span) => {
// Retrieve docs — chunks enable automatic groundedness scoring
const docs = await retrieveDocs(userQuery);
await span.captureRetrieval({
provider: 'internal-kb',
query: userQuery,
execute: async () => docs,
extractResults: (results) => ({
resultsCount: results.length,
relevantCount: results.filter(d => d.score > 0.8).length,
meanScore: results.reduce((a, d) => a + d.score, 0) / results.length,
chunks: results.map(d => ({ text: d.text, score: d.score, source: d.source })),
}),
});
// Call LLM (auto-captured by instrumentor)
const response = await ai.openai.chat.completions.create({
model: 'gpt-4o-mini',
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: userQuery },
],
});
return response.choices[0].message.content;
}); Eso es todo. Después de que la solicitud se completa, Sentygent:
- Almacena en buffer los eventos (llm_call de OpenAI, retrieval, marcadores de ciclo de vida)
- Detecta el final de la conversación y vacía hacia la API
- Valida todos los eventos contra nuestro schema
- Encola un trabajo de scoring asincrónico
- Puntúa la conversación en todas las dimensiones (5 estándar + fundamentación para RAG)
- Almacena resultados y alerta si la seguridad cae
Obtienes puntuaciones de calidad en segundos, visibles en el dashboard junto con métricas de agentes y traces.
Dentro del pipeline de scoring
Cuando una conversación termina, el motor de scoring recibe el trace completo — no solo métricas, sino contenido real de la conversación (cuando está habilitado), qué recuperó el agente, salidas de herramientas, y errores que ocurrieron. Evalúa cada dimensión y genera sugerencias accionables como "Considera aclarar el proceso de reset con una guía paso a paso" o "Buen retrieval, pero la respuesta fue ligeramente truncada."
La puntuación se almacena y se compara contra el promedio histórico de tu agente (baseline móvil de 30 días). ¿Hoy es 10% mejor? ¿Por debajo del promedio? Los badges de percentil te ayudan a detectar tendencias.
Qué obtienes
Tres cosas principales.
Puntuaciones de calidad y tendencias. Cada conversación puntuada al instante. El dashboard muestra la distribución de puntuaciones de tu agente, tendencia a lo largo del tiempo, y detalles por conversación. Puedes filtrar por tags (idioma, tier de usuario, feature flag, etc.) para detectar brechas de calidad por segmento.
Auto-alertas de seguridad. Seguridad < 30 dispara un webhook inmediatamente. Sin polling, sin chequeos manuales. Si tu agente comienza a emitir contenido inseguro —ataque de inyección, violación de política, intento de jailbreak— lo sabrás en segundos.
Data webhook. Después de scoring, puedes configurar una URL de webhook en Configuración para recibir el trace completo más la puntuación de calidad como JSON. Sentygent sigue siendo tu almacén a largo plazo (retención de 30 días), pero puedes exportar datos a tus propios sistemas para archivado, análisis personalizado, o integración con herramientas downstream.
Qué no es
Deberíamos ser honestos sobre qué Sentygent no hace.
No es Langfuse ni LangSmith. Esas plataformas son observabilidad genérica: registran todo y te dejan construir lógica de evaluación personalizada. Sentygent es opinada: pre-definimos seis dimensiones (incluyendo fundamentación automática para RAG) y el motor de scoring se encarga de la evaluación. Si necesitas dimensiones personalizadas (ej. "¿sigue la voz de marca?"), necesitarás otra herramienta.
No es perfecta. Ningún sistema de scoring automatizado lo es. A veces pierde matices, ocasionalmente califica conversaciones incoherentes más alto de lo que merecen. Pero es consistente. Y es mejor que nada —que es lo que la mayoría de equipos tienen hoy.
SDKs: TypeScript y Python. Ambos SDKs tienen paridad funcional
completa: tracing, auto-instrumentacion para los principales proveedores LLM, soporte
multi-agente y content capture. Instala con npm install @sentygent/sdk o
pip install sentygent.
La captura de contenido es opt-in. Por defecto,
captureContent: false, enviamos solo metadatos: modelo, tokens, latencia.
Si quieres que el scorer vea contenido de conversación real (que produce mejores
puntuaciones), estableces captureContent: true. Esto es privacy-first: tú
eliges qué sale de tu infraestructura.
No está diseñado para 100M+ conversaciones/día. Ejecutamos en un único proceso NestJS + Redis en una instancia Lightsail de $5/mes. Eso es suficiente para volúmenes de eventos de cinco dígitos. Si estás a escala de Anthropic, no somos tu herramienta.
Precios y tier gratuito
Sentygent es gratis para:
- Hasta 5,000 eventos por día
- 3 agentes
- Retención de datos de 30 días
- Alertas de seguridad y puntuaciones de calidad incluidas
Sin tarjeta de crédito. Sin puertas de características. Solo regístrate.
Para equipos con volúmenes más altos, precios Pro es personalizado. Cuéntanos.
Pruébalo
Ve a app.sentygent.com y regístrate. Obtendrás un tenant de demostración con conversaciones de ejemplo para que puedas ver cómo funciona el scoring de calidad antes de integrar el SDK.
Cuando estés listo, toma tu clave API, instala el SDK, y ejecuta el código anterior. Tu primera conversación será puntuada en segundos.
npm install @sentygent/sdk Pensamos que este es el futuro de la evaluación de agentes. No deberías tener que elegir entre ship speed y quality signal. Deberían ser lo mismo.
Si construyes agentes, nos encantaría saber cómo te va. ¿Encontraste un bug? ¿Tienes una solicitud de característica? Cuéntanos en Discord o GitHub.
Sentygent es una plataforma de observabilidad open-source para agentes IA. Haz un fork en GitHub: github.com/sentygent/sentygent
Construido por el equipo de Sentygent. Síguenos: Twitter, GitHub, Discord.