Toto Garza

Caso técnico · WorkChat Core

El backend de un ChatGPT empresarial con gobierno de herramientas

Orquestación LLM, tool calling autorizado, streaming, persistencia conversacional y auditoría para una SPA interna.

LaravelSSEMCPOpenAI
Diagrama de arquitectura de WorkChat Core

Problema

El equipo necesitaba una interfaz conversacional interna tipo ChatGPT donde cada usuario solo pudiera acceder a las herramientas autorizadas, con auditoría completa de cada interacción.

Restricciones

  • Múltiples aplicaciones con herramientas variables
  • Permisos granulares por usuario, rol y app
  • Streaming de respuestas en tiempo real
  • Auditoría de queries, tool calls y errores
  • Manejo de estado conversacional persistente

Arquitectura

Cliente

SPA (React)SSE connection

Backend

LaravelAuth & RBACConversation Manager

Servicios

OpenAI OrchestrationMCP Tool CallingAuth & Audit

Datos

Conversations & MessagesTool Call LogPostgreSQL + Redis

Decisiones de arquitectura

¿Por qué SSE en lugar de WebSocket?

Porque SSE sobre HTTP es más simple de operar, se integra naturalmente con Laravel, y no requiere mantener estado de conexión bidireccional. El streaming unidireccional es suficiente.

¿Por qué MCP para tool governance?

Porque MCP permite definir herramientas con schemas explícitos, validar parámetros antes de ejecutar y aislar la lógica de cada herramienta del orquestador principal.

¿Por qué monolito en lugar de microservicios?

Porque el equipo es pequeño, el dominio es coherente y un monolito bien estructurado reduce complejidad operativa sin sacrificar modularidad interna.

Riesgos y modos de fallo

  • Tool call inválido generado por el LLM
  • LLM no responde o timeout
  • Rate limiting de OpenAI
  • Permisos revocados durante una conversación activa
  • Error parcial en tool call múltiple
  • Pérdida de conexión SSE

Qué construí

  • Arquitectura del backend monolítico
  • Sistema de autenticación y autorización
  • Orquestador LLM con streaming SSE
  • Integración MCP para tool calling
  • Persistencia conversacional
  • Sistema de auditoría completo
  • Panel administrativo con Filament

Stack

LaravelSSEMCPOpenAIPostgreSQLRedisFilament

¿Buscas alguien que piense así?

Hablemos sobre tu próximo proyecto.