Saltar a contenido

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-net pueda 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