ADR-002: Exposición del Orquestador vía FastAPI
Fecha: 2026-04-03
Estado: aceptado
Contexto
El grafo de LangGraph reside en el servidor como una estructura lógica pero no es accesible de forma externa ni programática a través de la red de microservicios o herramientas externas como n8n.
Decisión
Se expone el orquestador en apps/ai-orchestrator con el endpoint POST /api/v1/chat, que:
- Recibe session_id, message, guest_phone y opcionalmente property_id.
- Invoca el grafo de LangGraph con checkpointer por hilo (thread_id = session_id).
- Hoy usa MemorySaver en proceso (pendiente RedisSaver para persistencia compartida entre réplicas).
- Devuelve la respuesta del agente y current_phase; la sesión de negocio se sincroniza vía PATCH a travel_backend (conversation-sessions).
Consecuencias
Positivas
- Simplificación de n8n: n8n se simplifica a un solo nodo de HTTP Request, eliminando toda la lógica de control de flujo y estados que antes se manejaba allí.
- Accesibilidad: Permite que cualquier servicio interno en
timeliber-netpueda interactuar con el cerebro de IA de forma estandarizada. - Trazabilidad: Las conversaciones quedan registradas con un
session_idúnico manejado en el backend.
Negativas
- Checkpointer en memoria: hasta migrar a Redis, el estado del grafo no es compartido entre instancias del servicio.
Referencias
- Grafos de LangGraph:
src/agent/graph.py - Endpoints:
src/api/
Registrado por
Lead AI Solutions Architect / Antigravity Agent