AETHELGARD
Sistema de agentes conversacionales autónomos en fase de pruebas: un vendedor con persuasión y empatía, y un lector de documentos con respuestas verificadas. Arquitectura híbrida adaptable.
Pure software architecture
Robust backend · No visual UI
Vista General del Proyecto
Estoy desarrollando AETHELGARD, un sistema de agentes de inteligencia artificial conversacionales construido sobre Google ADK y FastAPI. La arquitectura combina un núcleo mínimo tipo Microkernel (donde los agentes son plugins independientes) con patrones Hexagonales (Puertos y Adaptadores) para desacoplar completamente la lógica de negocio de la infraestructura, y CQRS para separar las consultas de los comandos. Esto permite añadir nuevos agentes o cambiar modelos de lenguaje (DeepSeek, Gemini, etc.) sin tocar el núcleo. Ya está operativo un agente de ventas que adopta personalidades dinámicas desde archivos YAML (Alejandro: consultivo, Valeria: empática) y aplica estrategias como SPIN Selling, escucha activa y manejo de objeciones; busca productos en ChromaDB, recuerda preferencias con memoria vectorial (Gemini Embeddings) y mantiene conversaciones coherentes gracias a sesiones persistentes en PostgreSQL. También funciona un agente de documentos que procesa PDFs y manuales usando ChromaDB y pgvector, respondiendo solo con información verificada y citando fuentes. Un supervisor revisa cada respuesta antes de entregarla al usuario. Lo que aún estoy afinando son las pruebas de integración, el ajuste fino de las personalidades para diferentes sectores comerciales, el despliegue productivo, el pipeline secuencial de ventas (buscar → comparar → recomendar), la integración completa con WhatsApp Cloud API y las notificaciones automáticas de cierre de ventas. Si tienes alguna idea para apoyar al proyecto, escríbeme.
Módulos Core
Núcleo Microkernel y Orquestador de Agentes
El núcleo del sistema es mínimo: solo gestiona el registro de agentes (plugins) y la comunicación entre ellos. Un orquestador central clasifica la intención del usuario y deriva la conversación al agente especializado correspondiente (ventas o documentos) sin intervención del núcleo, permitiendo añadir o quitar agentes en caliente.
Agente de Ventas con Personalidades Dinámicas
Agente autónomo que adopta distintas personalidades (vendedor agresivo, consultivo, empático) según el perfil del cliente. Las estrategias de venta (SPIN Selling, Challenger, etc.) se cargan desde YAML. Incluye herramientas de búsqueda semántica de productos en ChromaDB y memoria a largo plazo vectorizada (Gemini Embeddings).
Agente de Documentos con RAG Extrema
Agente especializado en procesar documentos largos (manuales, contratos, normativas). Utiliza ChromaDB y pgvector para búsqueda vectorial semántica, con chunking inteligente (recursivo o por entidades). Responde exclusivamente con citas extraídas de los documentos, sin alucinaciones.
Arquitectura Hexagonal + CQRS
Los puertos y adaptadores aíslan la lógica de negocio de los detalles de infraestructura (modelos de IA, bases de datos, APIs). CQRS separa las operaciones de escritura (comandos) de las de lectura (consultas), permitiendo escalar cada lado independientemente y usar distintas optimizaciones (caché, índices vectoriales).
Memoria a Largo Plazo Vectorizada
Almacena preferencias, historial de conversaciones y datos relevantes del usuario como vectores en ChromaDB (Gemini Embedding 2). El agente de ventas puede recuperar información de interacciones anteriores para personalizar ofertas sin necesidad de login explícito.
Supervisor de Calidad de Respuestas
Filtro de seguridad que revisa cada respuesta generada antes de enviarla al usuario. Valida que no haya inventos, que el tono sea adecuado y que se respeten las reglas del negocio. Si detecta problemas, corrige o reemplaza la respuesta por un mensaje de fallback controlado.
Sesiones Persitentes Multi-instancia
Las conversaciones se guardan en PostgreSQL (tablas adk_sessions y adk_events), permitiendo que el historial sobreviva a reinicios y sea compartido entre múltiples instancias del servidor. El agente recuerda el contexto (talla, preferencias, productos mencionados) incluso si el usuario vuelve días después.