Visión general
Componentes
- Backend (
Aura-reloaded): NestJS. Recibe la llamada (Retell WS o audio-fork WS), corre el RAG, llama al LLM y hace broadcast de sugerencias/transcript al dashboard por el WebSocket del copiloto. - Frontend (
aura-front): dashboard en tiempo real del agente/supervisor. - Ajolote: identidad, sesión y roles (ver Autenticación).
- PostgreSQL + pgvector: datos relacionales + las dos bases vectoriales del RAG.
Flujo 1 — Retell (voz IA)
Aura es el Custom LLM de Retell. Retell se conecta por WebSocket y Aura responde.
Además hay dos custom functions que Retell puede invocar: consult (RAG crudo sin LLM) y transfer (resumen de la llamada para derivar a un humano).
Flujo 2 — Audio-fork (Yeastar / FreeSWITCH)
El humano atiende; Aura escucha una copia del audio y sugiere.
El agente toma (claim) la llamada desde el dashboard, ve la sugerencia y la valida (usar / incorrecta / descartar). El feedback alimenta el flywheel (ver RAG y Observabilidad).
Conceptos clave del RAG
- Dos bases en paralelo:
memory_embeddings(correcciones de supervisores, alta precisión) +knowledge_base(manuales técnicos). - Normalización de STT: convierte variantes fonéticas al nombre técnico
(
"m cincuenta"→"M50") antes de embeddear. - Context locking: al primer hit de manual, el contexto se fija para toda la llamada; los turnos siguientes no re-buscan.
- Prompt caching: el system message es fijo por llamada; el contexto RAG se inyecta en el último mensaje del usuario para maximizar el prefijo cacheable por OpenAI.
Detalle completo en RAG → Pipeline.
Mapa de módulos (backend src/)
| Módulo | Qué hace |
|---|---|
retell/ | Custom LLM WS, webhook, consult, transfer, claim |
audio-fork/ | Gateway WS de FreeSWITCH, STT, sesiones, claim/release |
memory/ | RAG sobre correcciones (production/ retrieval, learning/ ingesta) |
knowledge/ | RAG sobre manuales (knowledge_base) |
llm/ | Abstracción de provider LLM (port/adapter) |
copilot/ | WebSocket del dashboard (broadcast de eventos) |
feedback/ | Acciones del supervisor + estadísticas |
event-log/ | Logging estructurado + auditoría (ver Observabilidad) |
metrics/ | Métricas operativas agregadas (ver Observabilidad) |
auth/ | Guards de Ajolote (SessionGuard, AppRoleGuard) |
database/ | Conexión Drizzle + barrel de schemas |
common/ | Utilidades compartidas (ej. period.util.ts) |