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
Agentes conversacionales autónomos. Problema: que los agentes sean adaptables sin tocar código. Solución: Microkernel + Hexagonal + CQRS, personalidades desde YAML. Stack: Python, FastAPI, Google ADK, ChromaDB, pgvector. Resultado: agente de ventas con memoria vectorial, agente de documentos con cero alucinaciones.
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.