Volver al Portafolio
v3.0.0 — Active Production

Youkai Agent

Un agente inteligente avanzado para la automatización e interacción multimedia en servidores de Discord. Diseñado como un microservicio autónomo con enrutamiento semántico, base de datos vectorial local y sistemas embebidos de seguridad.

Grafo de la Arquitectura

Interactúa con los módulos para inspeccionar la canalización de procesamiento del Agente.

1. Entrada de Mensajes y NLP
2. Identidades Cruzadas (Nexus)
3. Orquestador y Selección de Tools
4. RAG Híbrido (sqlite-vec + FTS5)
5. Salvaguardas Locales (ONNX & LLMs)
6. Dream-Quest (Grafo Narrativo)

1. Entrada de Mensajes y NLP

Archivos: cogs/nlp_handler.py / listeners.py

El punto de entrada del agente intercepta eventos asíncronos del gateway de Discord y analiza la estructura del texto.

Características principales:

  • Filtrado Selectivo: Evalúa niveles de autorización y permisos antes de activar el pipeline semántico.
  • Procesamiento de Adjuntos: Extrae enlaces, imágenes y frames de video para su posterior análisis.
  • Control de Concurrencia: Evita colisiones en la cola de mensajes mediante bloqueos por canal.

Componentes del Stack

Capa Módulo / Tecnología Función del Stack
Core Bot discord.py v2.4+ Gestión de eventos asíncronos y API de Discord
LLM Principal Gemma 4 (AI Studio) Modelo conversacional de razonamiento lógico
Búsqueda Vectorial sqlite-vec / KNN Recuperación semántica mediante embeddings locales
Embeddings all-MiniLM-L6-v2 Modelo local sentence-transformers (384-dim)
Visión Inteligente ONNX / MobileNetV3 Embeddings de imagen rápidos en CPU para MediaGuard
LLMs Locales llama-cpp-python Inferencia local CPU del modelo Qwen-0.6B

Desafíos Técnicos Resueltos

  • Optimización de Almacenamiento Vectorial

    Los embeddings de mensajes se guardaban duplicados (formato BLOB e índice sqlite-vec). Se implementó un script de depuración periódica (daily pruning) para estabilizar el tamaño del archivo de la base de datos principal en 168 MB.

  • Prevención de Bloqueos (SQLite Lock)

    SQLite limita las escrituras simultáneas en múltiples hilos asíncronos. Se resolvió creando un control de colas centralizado en utils/database.py que serializa las llamadas de escritura mediante un semáforo lógico de asyncio.Lock.

  • Evasión de Rate Limits de Webhooks

    Los sistemas de ofuscación de insultos borran el mensaje original y lo reenvían simulando al usuario con Webhooks. Para evitar baneos por spam, se implementó una caché en memoria y un limitador de frecuencia (debounce) por usuario y canal.