← Proyectos

atom-agent-ia

Plataforma AaaS (Agent as a Service) que orquesta agentes de IA multi-proveedor y los expone como API REST.

Rol · Desarrollador único Fecha · En desarrollo Stack · Python · FastAPI · LangChain · LangGraph · PostgreSQL · Docker
PythonFastAPILangChainLangGraphAaaS
atom-agent-ia

Problema

Construir y mantener agentes de IA "a mano" para cada caso de uso no escala: cada integración termina reinventando el mismo ciclo de registrar el agente, exponerlo por API, conectar herramientas externas, controlar el consumo de tokens y medir qué está pasando en producción.

Solución

atom-agent-ia es una plataforma AaaS (Agent as a Service) construida con FastAPI y LangChain / LangGraph: expone agentes de IA como un servicio consumible por API REST, con autenticación por token, cuotas de consumo, tres tipos de agente (DAG, ReAct y Deep) sobre el mismo registro de agente, un sistema de herramientas configurables sin escribir código (HTTP personalizadas, servidores MCP, salida estructurada) y un panel de observabilidad con costo y latencia por sesión — pensada para que integrar un agente en otro sistema sea tan simple como llamar un endpoint REST.

Stack y arquitectura

  • FastAPI como capa de API, en arquitectura por capas (router → service → repository → modelo ORM) con responsabilidad única por capa.
  • LangChain / LangGraph para orquestar tres tipos de agente sobre la misma configuración (llm_id, system_prompt, tools): DAG (StateGraph con control total del grafo), ReAct (prebuilt, para uso general) y Deep (razonamiento multi-paso con la librería deepagents).
  • PostgreSQL para persistencia (agentes, tokens, logs de uso) con pool de conexiones dimensionado a la concurrencia de workers, y migraciones automáticas con Alembic en cada arranque.
  • Sistema de herramientas dinámico sin tocar código: HTTP personalizadas, servidores MCP (expone automáticamente todas sus tools remotas) y herramientas de salida estructurada, todas registrables vía API.
  • Docker / Docker Compose para despliegue, con logs separados por componente (API y core de agentes) y observabilidad vía stdout en contenedores multi-worker.
  • Autenticación por Bearer token (hash SHA-256), cuotas de tokens por cliente y locking por sesión para serializar turnos concurrentes.

Retos

Diseñar una API genérica para tres tipos de agente distintos sin volverla excesivamente abstracta — resuelto dejando que el agent_id sea el mismo entre rutas y que la ruta de chat invocada (/agents/chat, /prebuilt-agents/chat, /deep-agents/chat) decida el wrapper a construir. Otro reto fue diseñar el sistema de herramientas para que terceros pudieran registrar integraciones HTTP o servidores MCP sin tocar el código del agente, y hacerlo de forma segura: las herramientas de acceso directo a bases de datos se eliminaron por completo del proyecto por razones de seguridad.