El desafío
Equipo de soporte de 12 personas atendiendo 4.000+ mensajes de WhatsApp por semana. ~60% de esos mensajes eran repetibles: "cuál es mi saldo," "no tengo servicio," "mándame mi última factura." Pero ninguno encajaba en un chatbot — los clientes esperaban conversación natural en español, con regionalismos, frecuentemente con cambios de contexto a mitad de mensaje.Nuestra solución
Un agente basado en Claude con cuatro herramientas: `lookup_account`, `get_billing_status`, `report_outage` y `escalate_to_human`. El system prompt forzaba un alcance estricto — rechazar cualquier cosa fuera de tema, hacer handoff a un humano dentro de dos turnos si el agente no estaba seguro. Evals: 80 casos de test curados a mano en los cuatro buckets, corridos en cada cambio de prompt.Los resultados
Después de 30 días en producción: 40% de los tickets entrantes resueltos de punta a punta por el agente. El tiempo mediano a primera respuesta bajó de 14 minutos a 6 segundos. El CSAT en tickets resueltos por IA igualó al de tickets resueltos por humano dentro de ±2 puntos. La moral del equipo de soporte subió — ahora dedican tiempo a los casos difíciles.Lo que enviamos vs. lo que no
Enviado: Consulta de cuenta, chequeo de saldo, reporte de cortes, escalación. Rechazo estricto de cualquier cosa fuera de alcance (con logging, para que el equipo de producto vea qué intentaban hacer los clientes que aún no soportábamos).
No enviado en v1: Cualquier cosa que mute el estado de la cuenta — sin pagos, sin cambios de plan, sin activación de servicio vía el agente. Read-only primero, mutaciones después, con confirmación explícita. No íbamos a ser el equipo que dejó que la IA apagara la energía de alguien.
La disciplina de evals
80 casos a través de cuatro buckets (respuesta-correcta, debe-rechazar, debe-escalar, debe-mantener-voz). Los casos vivían como un archivo JSON plano en el mismo repo que el prompt, corrían vía npm run evals en cada PR, y una GitHub Action bloqueaba el merge si algún bucket regresionaba más del 10%. Este fue el trabajo poco glamoroso que marcó la diferencia entre demo y sistema en producción.