Sistema inteligente de ventas asistido por agentes de IA que gestiona automáticamente todo el proceso comercial: desde la consulta de productos hasta la generación del link de pago, utilizando un equipo coordinado de agentes especializados trabajando en conjunto.
Este proyecto es un sistema de ventas inteligente que utiliza múltiples agentes de inteligencia artificial trabajando en equipo para automatizar todo el proceso de ventas. Imagina tener un equipo de vendedores virtuales, cada uno especializado en una tarea específica:
- Un coordinador de ventas que gestiona la conversación
- Un experto en productos que conoce todo el catálogo
- Un especialista en pedidos que arma y procesa las órdenes
Todos estos agentes trabajan juntos de forma coordinada para brindar una experiencia de compra fluida y profesional, similar a tener un equipo de ventas humano, pero disponible 24/7 y con acceso instantáneo a toda la información.
- Empresas de e-commerce que quieren automatizar su atención al cliente
- Desarrolladores interesados en aprender sobre sistemas multi-agente
- Emprendedores que buscan integrar IA en sus procesos comerciales
- Estudiantes de inteligencia artificial y desarrollo de software
- 3 agentes especializados trabajando en coordinación
- Delegación inteligente de tareas entre agentes
- Memoria persistente de conversaciones en base de datos SQLite
- Historial completo de interacciones con el cliente
- Búsqueda de productos por nombre, categoría o características
- Cálculo automático de totales e impuestos
- Validación de datos de envío del cliente
- Generación de links de pago únicos y seguros
- AgentUI: Interfaz visual moderna con Next.js/TypeScript
- Streaming en tiempo real de respuestas
- Visualización de herramientas utilizadas por los agentes
- Historial persistente de conversaciones
- Endpoints FastAPI para integración con otros sistemas
- Documentación automática con Swagger/OpenAPI
- Página de pago simulada para demostración
Un agente de IA es como un asistente virtual especializado. Cada agente tiene:
- Un rol específico: sabe qué tarea debe realizar
- Herramientas: funciones que puede usar para completar su trabajo
- Memoria: recuerda las conversaciones anteriores
- Capacidad de razonamiento: puede tomar decisiones basadas en el contexto
Un team es un grupo de agentes que trabajan juntos. Tiene un líder coordinador que decide qué agente debe realizar cada tarea. Es como un equipo de trabajo donde cada miembro tiene su especialidad, pero todos colaboran para alcanzar un objetivo común.
AgentOS es el "sistema operativo" que gestiona todos los agentes. Se encarga de:
- Coordinar las comunicaciones entre agentes
- Gestionar la base de datos y el historial
- Proporcionar una API para interactuar con el sistema
- Ejecutar las herramientas cuando los agentes las necesitan
┌─────────────────────────────────────────────────────────────┐
│ Cliente/Usuario │
└───────────────────────┬─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ AgentUI (Frontend) │
│ Interfaz visual Next.js/TypeScript │
└───────────────────────┬─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ AgentOS (Backend) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ SalesTeam (Team Coordinador) │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │ │
│ │ │ SalesAgent │ │ ProductAgent │ │OrderAgent │ │ │
│ │ │ (Coordinador)│ │ (Productos) │ │ (Pedidos) │ │ │
│ │ └──────┬───────┘ └──────┬───────┘ └─────┬─────┘ │ │
│ └─────────┼──────────────────┼────────────────┼───────-┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Herramientas (Tools) │ │
│ │ • buscar_productos() • calcular_total_pedido() │ │
│ │ • validar_datos_envio() • generar_link_pago() │ │
│ └──────────────────────────────────────────────────────┘ │
└───────────────────────┬─────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ SQLite DB │ │ Products │ │ FastAPI │
│ (Historial) │ │ (JSON) │ │ (API REST) │
└──────────────┘ └──────────────┘ └──────────────┘
- SalesAgent: Coordinador principal que gestiona el flujo de ventas
- ProductAgent: Experto en búsqueda y consulta de productos
- OrderAgent: Especialista en armado de pedidos y generación de pagos
- product_tools.py: Funciones para buscar y consultar productos
- payment_tools.py: Funciones para calcular totales, validar datos y generar links de pago
- SQLite: Almacena el historial de conversaciones y sesiones
- products.json: Catálogo de productos disponible
- Endpoints FastAPI para interactuar con el sistema
- Gestión de pedidos y consultas
- payment.html: Página simulada de pago
- agent-ui/: Interfaz visual moderna con Next.js
- Python 3.8 o superior
- Node.js 18+ y pnpm (para AgentUI)
- Clave API de OpenAI (o el proveedor de LLM que prefieras)
git clone <url-del-repositorio>
cd Agentes_IApython3 -m venv .venv
source .venv/bin/activate # En Windows: .venv\Scripts\activatepip install -r requirements.txtcp .env.example .envEdita el archivo .env y agrega tu clave API:
MODEL_PROVIDER=openai
MODEL_ID=gpt-4o-mini
OPENAI_API_KEY=tu_clave_api_aqui
DB_FILE=data/agno.db
HOST=0.0.0.0
PORT=7777cd agent-ui
pnpm installSi no tienes pnpm instalado:
npm install -g pnpmAgentUI proporciona una interfaz visual moderna y fácil de usar.
En una terminal:
python main.pyDeberías ver:
🚀 Sistema de Ventas Multi-Agente iniciado
📡 Servidor corriendo en http://0.0.0.0:7777
🤖 Team de ventas listo para recibir consultas
💳 Página de pago disponible en http://0.0.0.0:7777/payment/{order_id}
En otra terminal:
cd agent-ui
pnpm dev- Abre http://localhost:3000
- AgentUI se conectará automáticamente a
http://localhost:7777 - Selecciona "SalesTeam" en el selector de agentes/teams
- ¡Comienza a chatear!
- 💬 Chat en tiempo real con streaming de respuestas
- 🧩 Visualización de herramientas utilizadas por los agentes
- 🧠 Pasos de razonamiento visibles
- 📚 Referencias y fuentes de información
- 🖼️ Soporte multi-modal (imágenes, video, audio)
- 📝 Historial persistente de conversaciones
Puedes interactuar con el sistema usando la API REST:
curl -X POST "http://localhost:7777/chat" \
-H "Content-Type: application/json" \
-d '{
"message": "Hola, busco una laptop",
"session_id": "mi-sesion-123"
}'curl "http://localhost:7777/status?session_id=mi-sesion-123"El cliente inicia una conversación. El SalesAgent (coordinador) saluda y pregunta en qué puede ayudar.
Cuando el cliente busca productos:
- El SalesAgent delega al ProductAgent
- El ProductAgent usa sus herramientas para buscar en el catálogo
- Los resultados se presentan al cliente de forma atractiva
El cliente selecciona productos:
- El SalesAgent confirma cada selección
- Mantiene un registro mental de todos los productos elegidos
- Pregunta si desea agregar algo más
El proceso se repite hasta que el cliente indica que no quiere más productos (puede decir "no quiero más", "eso es todo", "listo", etc.).
Cuando el cliente termina de seleccionar:
- El SalesAgent delega al OrderAgent
- El OrderAgent:
- Recopila todos los productos seleccionados
- Calcula el total (incluyendo impuestos del 21%)
- Solicita los datos de envío (nombre, dirección, ciudad, código postal, teléfono, email)
- Valida los datos de envío
- Genera un ID único para el pedido
- Genera el link de pago
Se presenta al cliente:
- Resumen completo del pedido
- Lista de productos con cantidades y precios
- Datos de envío confirmados
- Subtotal, impuestos y total final
- Link de pago único
El cliente puede hacer clic en el link de pago para acceder a la página de pago simulada.
Envía un mensaje al team de ventas.
Request:
{
"message": "Hola, busco una laptop",
"session_id": "opcional-session-id"
}Response:
{
"response": "¡Hola! Con gusto te ayudo a encontrar una laptop...",
"session_id": "generated-session-id"
}Obtiene el estado de la sesión actual.
Query Parameters:
session_id(opcional): ID de la sesión
Muestra la página de pago simulada para un pedido específico.
Ejemplo:
http://localhost:7777/payment/ORD-ABC12345
Verifica el estado de salud del sistema.
Obtiene todos los productos disponibles.
Obtiene un producto específico por ID.
Obtiene información de un pedido específico.
Almacena un nuevo pedido (usado internamente).
Una vez que el servidor esté corriendo, puedes acceder a la documentación interactiva de la API en:
- Swagger UI: http://localhost:7777/docs
- ReDoc: http://localhost:7777/redoc
Puedes usar cualquier modelo compatible con Agno. Edita .env:
MODEL_PROVIDER=openai # o anthropic, etc.
MODEL_ID=gpt-4o-mini # o gpt-4, claude-3-opus, etc.Por defecto se usa SQLite. Puedes cambiar la ubicación en .env:
DB_FILE=data/agno.dbHOST=0.0.0.0 # Escuchar en todas las interfaces
PORT=7777 # Puerto del servidorEdita data/products.json para agregar o modificar productos:
{
"id": 1,
"name": "Nombre del Producto",
"description": "Descripción detallada",
"price": 99.99,
"category": "Categoría",
"stock": 10,
"image": "URL de la imagen"
}Este proyecto demuestra competencia en:
- Arquitectura de agentes: Diseño de agentes especializados con roles claros
- Coordinación de equipos: Implementación de teams con delegación inteligente
- Comunicación entre agentes: Sistema de mensajería y contexto compartido
- Memoria persistente: Almacenamiento y recuperación de historial de conversaciones
- Funciones personalizadas: Creación de tools específicas para el dominio
- Validación de datos: Implementación de validaciones robustas
- Integración con APIs: Conexión con servicios externos
- Manejo de errores: Gestión de errores y casos edge
- Separación de responsabilidades: Código modular y organizado
- Configuración centralizada: Gestión de configuración con variables de entorno
- API RESTful: Diseño de endpoints REST bien estructurados
- Integración frontend-backend: Conexión entre AgentUI y AgentOS
- SQLite: Uso de base de datos relacional para historial
- JSON: Almacenamiento de catálogo de productos
- Gestión de sesiones: Manejo de sesiones de usuario
- Next.js/TypeScript: Interfaz moderna con TypeScript
- UI/UX: Diseño de interfaz de usuario intuitiva
- Streaming en tiempo real: Visualización de respuestas en tiempo real
- Gestión de dependencias: requirements.txt y package.json
- Variables de entorno: Configuración segura con .env
- Documentación: README completo y detallado
Agno es un framework de código abierto para construir sistemas multi-agente. Proporciona:
- Runtime de alto rendimiento para ejecutar agentes
- Sistema de herramientas para extender capacidades
- Gestión de memoria y persistencia
- API REST integrada
- Interfaz de control para monitoreo
Un LLM es un modelo de inteligencia artificial entrenado con grandes cantidades de texto. Puede:
- Entender lenguaje natural
- Generar respuestas coherentes
- Realizar razonamiento básico
- Seguir instrucciones complejas
En este proyecto, usamos modelos como GPT-4o-mini de OpenAI, pero puedes usar cualquier modelo compatible.
FastAPI es un framework moderno de Python para construir APIs REST. Ofrece:
- Alto rendimiento: Comparable a Node.js y Go
- Documentación automática: Genera Swagger/OpenAPI automáticamente
- Validación de datos: Con Pydantic
- Type hints: Soporte completo para tipos de Python
SQLite es una base de datos relacional ligera que almacena datos en un archivo. Es perfecta para:
- Aplicaciones pequeñas y medianas
- Prototipos y desarrollo
- Almacenamiento local
- No requiere servidor separado
AgentUI es una interfaz de usuario de código abierto para interactuar con AgentOS. Proporciona:
- Interfaz visual moderna
- Visualización de herramientas y razonamiento
- Historial de conversaciones
- Soporte multi-modal
- Integración con pasarelas de pago reales (Stripe, PayPal, etc.)
- Sistema de autenticación de usuarios
- Panel de administración para gestionar productos
- Análisis y reportes de ventas
- Soporte multi-idioma
- Integración con sistemas de inventario
- Notificaciones por email de confirmación de pedidos
- Sistema de recomendaciones de productos
- Chatbot con voz (text-to-speech y speech-to-text)
- Integración con CRM existentes
- Tests automatizados (unitarios e integración)
- Dockerización del proyecto
- CI/CD pipeline para deployment automático
- Monitoreo y logging avanzado
- Caché de respuestas para mejorar rendimiento
- Rate limiting para proteger la API
- Migración a PostgreSQL para producción
- Implementación de WebSockets para actualizaciones en tiempo real
Agentes_IA/
├── agents/ # Agentes especializados
│ ├── __init__.py
│ ├── sales_agent.py # Agente coordinador de ventas
│ ├── product_agent.py # Agente experto en productos
│ └── order_agent.py # Agente especialista en pedidos
│
├── tools/ # Herramientas personalizadas
│ ├── __init__.py
│ ├── product_tools.py # Herramientas de búsqueda de productos
│ └── payment_tools.py # Herramientas de pago y pedidos
│
├── data/ # Datos y base de datos
│ ├── products.json # Catálogo de productos
│ └── agno.db # Base de datos SQLite (se crea automáticamente)
│
├── api/ # Endpoints FastAPI adicionales
│ ├── __init__.py
│ └── routes.py # Rutas de la API
│
├── web/ # Interfaz web
│ └── payment.html # Página de pago simulada
│
├── config/ # Configuración
│ ├── __init__.py
│ └── settings.py # Configuración centralizada
│
├── agent-ui/ # Interfaz visual AgentUI (Next.js)
│ ├── src/
│ ├── package.json
│ └── ...
│
├── main.py # Punto de entrada principal
├── requirements.txt # Dependencias de Python
├── .env.example # Ejemplo de variables de entorno
├── .env # Variables de entorno (no versionado)
└── README.md # Este archivo
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Pablo Mereles
Desarrollador especializado en sistemas multi-agente e inteligencia artificial.
- 📧 Email: pablomereles@gmail.com
- 🐙 GitHub: https://github.com/polsebas
- 💼 LinkedIn: https://www.linkedin.com/in/pablomereles
- Agno Framework por proporcionar una excelente plataforma para sistemas multi-agente
- OpenAI por los modelos de lenguaje
- FastAPI por el framework web
- AgentUI por la interfaz visual
Si tienes preguntas o necesitas ayuda:
- Revisa la documentación de Agno
- Abre un issue en el repositorio
- Contacta al autor
¡Gracias por usar este proyecto! 🚀