GOGOGOLLC
Volver al Blog
AgentsApr 8, 20267 min read

Clasificando mensajes de RR. HH. en WhatsApp con un router agent.

Nuestra mayor victoria en GoPeople no fue una respuesta más inteligente — fue un router más inteligente. Separamos la clasificación de intent de la respuesta para que cada agent siga siendo barato e inspeccionable.

EG

Equipo GoPeople

RR. HH. en WhatsApp

Clasificando mensajes de RR. HH. en WhatsApp con un router agent.

Cuando lanzamos GoPeople construimos un único agent grande que leía el mensaje, descubría qué quería el empleado y lo respondía. Era ingenioso. También era caro, lento e imposible de auditar. Dividir ese único agent en un router barato y un pequeño zoológico de agents de workflow nos devolvió el presupuesto de latencia — y le dio a RR. HH. un log real de lo que hicimos.

Un cerebro es demasiados cerebros

El agent todo-en-uno usaba un modelo de gama alta en cada turno, incluso para mensajes como ‘sí’ o ‘bana izin günü kaldı mı?’. También fusionaba dos trabajos completamente distintos: decidir qué tipo de petición es y atender esa petición. Esos quieren prompts diferentes, herramientas diferentes y perfiles de costo muy diferentes.

El router agent

Nuestro router agent es un modelo pequeño y rápido que hace una sola cosa: clasificar el mensaje en uno de N intents. Devuelve una etiqueta y una confianza. Si la confianza está por debajo de un umbral, el orchestrator escala a un agent de aclaración — nunca a un agent de workflow. Los agents de workflow solo ven intents ya clasificados.

ts
// Router output is a value, not a sentence.
type Intent =
  | "leave.request"
  | "leave.balance"
  | "payroll.payslip"
  | "doc.request"
  | "policy.lookup"
  | "smalltalk"
  | "unknown";

const { intent, confidence } = await router.classify(message);
if (confidence < 0.6) return clarify(message);
return workflow[intent].run(message, ctx);

Por qué este patrón de routing gana

  • El router es barato. Podemos permitirnos llamarlo en cada mensaje, incluso ‘ok’.
  • Los agents de workflow son más tontos. No necesitan dudar del intent — esa decisión está río arriba.
  • La aclaración tiene su propio agent. No contaminamos los prompts de solicitud de licencia con ‘quizás pregúntale al usuario qué quiso decir’.
  • La auditoría es trivial. El log de auditoría muestra el intent, no solo la respuesta, así RR. HH. sabe qué creyó el sistema que estábamos haciendo.

Multi-tenancy en el router

Los holdings suelen operar varias subempresas bajo un mismo número de WhatsApp. La primera decisión que toma el router no es el intent — es el tenant. Clasificamos al empleado contra el directorio antes de correr el clasificador de intent. Así, las políticas, balances de licencias y consultas de nómina de cada subempresa quedan aisladas por construcción.

Qué medimos

Tras pasar al patrón de router, nuestro costo promedio por mensaje cayó ~3,4x, y la tasa de auto-clasificación de RR. HH. superó el 94%. Los casos extremos siguen escalando a un humano, pero el humano ahora ve la mejor conjetura del sistema — está revisando, no rehaciendo.

El modelo más grande no es un router. El router es el modelo más pequeño, más barato y más rápido.

¿Lo quieres para tu negocio?

Cuéntanos qué flujo construirías primero. Te respondemos con un plan de 4 fases y los agentes que encajan.