AVA — agentes locales en una sola GPU

Una plataforma de datos privada para Windows: agentes Qwen3 que se ejecutan en tu propia GPU crean bases de datos Hadoop, flujos de n8n y paneles de ciencia de datos. Nada sale del equipo a menos que tú lo publiques.

Desplázate para explorar
Todo en local

Una carpeta, cuatro motores

Toda la plataforma se instala de forma portátil dentro del repositorio — unos 25 GB, sin permisos de administrador para el software del proyecto. Cada servicio escucha solo en 127.0.0.1.

Qwen3 · Ollamaqwen3:8b-64k (Q4_K_M, 64k de contexto) con razonamiento activado; CUDA incluido:11434
Hadoop HDFSEl almacén en /warehouse: una base de datos por carpeta de origen:9870
n8n 2.41Flujos, disparadores de chat y webhooks conectados a los modelos locales:5678
Python 3.12pandas, DuckDB, SciPy, scikit-learn, PyTorch (CUDA 13), Plotly.venv
Editor SQL DuckDBExplora el almacén como en Hue, bajo demanda:4213
El equipo

Cinco agentes, cada uno con sus permisos

Todos razonan sobre qwen3:8b-64k, y cada uno tiene su propio Modelfile, lanzador (<nombre>.exe) y agent.json con sus permisos. Ava crea agentes nuevos cuando hacen falta.

administradora

ava

Crea los agentes que le pides con su skill agent_coordinator, concede y revoca privilegios, coordina a los agentes delegándoles tareas y cambia el agente activo.

bases de datos

dbagent

Convierte carpetas en bases de datos Hadoop: csv, json, parquet, xlsx, xml, sas, stata… limpiando encabezados e infiriendo tipos.

ciencia de datos

ds_agent

Estadística con tamaños de efecto e intervalos de confianza, modelos de scikit-learn y PyTorch, scraping de productos y servicios, pronósticos con intervalos y paneles reproducibles.

n8n

n8n_agent

Crea y repara flujos de n8n usando 7.822 plantillas de IA de n8n como referencia; luego los despliega y los prueba.

desarrollo web

web_agent

Crea páginas web, apps y GUI con animación (aparición al hacer scroll, contadores, transiciones), accesibles, adaptables y sin conexión.

tu idioma

Responde como le hablas

La respuesta llega siempre en el idioma de la pregunta original, aunque el agente haya trabajado en otro.

AVA_agents.exe

Una ventana para todo el equipo

Así es la aplicación de escritorio: las pestañas a la izquierda, un botón por agente y el chat con el agente elegido, con la etapa de cada solicitud en una barra de progreso. Pruébala: esta réplica no está conectada a ningún modelo.

hotel_cancellations2026-10-07 02:103224

2026-10-07 02:10

• gradient_boosting: roc_auc = 0.9112, accuracy = 0.8571, f1 = 0.8013

🗄 hotel
▦ hotel_bookings_dataset
hotel · varchar
is_canceled · bigint
lead_time · bigint
arrival_date_year · bigint
adults · bigint
adr · double
country · varchar
▦ payments
🗄 sales
SELECT * FROM hotel.hotel_bookings_dataset LIMIT 100;
hotelis_canceledlead_timearrival_date_yearadultsadrcountry
Resort Hotel0342201520.0PRT
Resort Hotel0737201520.0PRT
Resort Hotel072015175.0GBR
Resort Hotel0132015175.0GBR
Resort Hotel0142015298.0GBR
Resort Hotel1852015282.0PRT
Resort Hotel17520152105.5PRT

Réplica interactiva: cambia de pestaña, elige un agente o envía un mensaje. Las respuestas son de ejemplo; en la aplicación real las escribe el modelo en tu GPU. Los datos de las pestañas son ilustrativos.

Un modelo en la GPU a la vez

El relevo de GPU

Con 12 GB de VRAM, cada agente necesita la GPU entera para su modelo y su contexto. Por eso un gestor no retiene la GPU mientras su equipo trabaja: la cede.

Encolar. El gestor llama a queue_task una vez por paso y después a hand_over_gpu.

Guardar y liberar. Su conversación se guarda comprimida en el almacenamiento temporal de la conversación y su modelo sale de la GPU.

Turnos. Cada agente en cola recibe la GPU completa y avisa al gestor con su informe.

Despachar. Un despachador qwen3:8b, solo en CPU y en RAM, razona si continuar o despertar al gestor.

Despertar. El gestor vuelve con su contexto restaurado y un mensaje [relay] con todos los informes.

1M de tokens por conversación

Ventana activa más memoria comprimida

La ventana activa en la GPU crece 8k → 16k → 32k → 48k → 64k tokens mientras el modelo quepa en el 90 % de la VRAM (pesos + caché KV + búferes). Cuando la ventana se llena, los turnos más antiguos pasan completos a archivos gzip, la ventana vuelve a empezar y el agente los recupera con recall_memory, hasta 1M de tokens por conversación.

VRAM de la GPU · 12 GB
pesos + búferes · 4,7 GB
límite 90 %
qwen3:8b-64k (Q4_K_M) y búferes de cálculocaché KV de la ventana activa (≈77 KB por token)
8k16k32k48k64kllena → gzip
Conversación · hasta 1M de tokens
memoria comprimida en agents/comp_convs/<conv>/*.gzventana activa en la GPU

¿Por qué no una ventana de 1M?

La caché KV de qwen3:8b necesitaría unos 80 GB de memoria de GPU. qwen3:8b-64k amplía el contexto del modelo a 65.536 tokens con escalado RoPE YaRN, y en 12 GB eso deja margen bajo el 90 %.

Temporal y compartida

Una carpeta por conversación, compartida por todos los agentes que participan en ella, y se borra al terminar.

Probado

~26.800 tokens movidos a un archivo de 815 bytes; el modelo recuperó por sí solo un código de proyecto en 20 s.

Aprendizaje por refuerzo

dbagent aprende practicando

En un entorno aislado, dbagent resuelve 13 familias de tareas generadas con comprobaciones automáticas. Lo que funciona se convierte en sus habilidades.

CAPA 1

Entorno y recompensa

Una copia temporal de dbagent con permiso solo sobre la carpeta del episodio; todo se limpia al final.

CAPA 2

Estrategias y lecciones

Un bandido UCB1 elige estrategia por familia; el modelo escribe lecciones tras cada fallo y solo se conservan las que suben la recompensa.

CAPA 3

Ajuste fino LoRA

Los episodios con éxito entrenan un adaptador LoRA que se evalúa como cualquier otro modelo.

Recompensa (máx. 1): proporción de comprobaciones superadas − 0,03 por llamada extra − 0,05 por llamada fallida − 0,5 por infracción. Las semillas múltiplo de 5 se reservan para evaluar, y solo se promociona lo que mejora en ellas.

Mínimo privilegio

Permisos comprobados en cada llamada

Los agentes solo reciben las herramientas de los privilegios que tienen. Una revocación surte efecto al instante.

Detallados

fs.read/write, hdfs.*, database.create/drop, table.select/insert/alter… sobre *, una base de datos o una tabla.

Recuperables

Los cambios destructivos van a /warehouse/_trash; todo queda registrado en audit/privileges.jsonl.

Carpetas seguras

Las carpetas fuera del repositorio solo se aceptan si aparecen en la propia petición, así que los datos que lee un agente no pueden desviarlo.

Clientes remotos

Otros PC se conectan por Tailscale con privilegios por cliente, un token cifrado con hash, registro de auditoría y desconexión con un botón.

Míralo responder

Una pregunta a AVA

Una grabación breve de la ventana de AVA. El cronómetro arranca cuando se envía la pregunta y se detiene cuando termina la respuesta: así ves cuánto tarda el modelo local.

0.0 s
Vídeo próximamente
Añade docs/media/ava-demo.mp4

“¿Para qué sirve el agente?”

Pregunta enviada–
Respuesta terminada–
Tiempo de respuesta–

Grabado en una RTX 5070 Ti Laptop GPU (12 GB). El tiempo incluye el razonamiento, porque todos los agentes piensan antes de responder.

Medido en arranque en frío

Latencia por agente y por GPU

De agents/benchmark.py: cada agente arranca con todos los modelos descargados de la GPU y responde «di quién eres y qué puedes hacer», con su propio prompt, herramientas y razonamiento. Cada barra separa la carga del modelo, la espera hasta el primer token y la generación. Segundos; menos es más rápido.

Arrastra para girar
carga del modelohasta el primer tokenrazonamiento y respuesta

Ver como tabla
AgenteModeloContextoCarga (s)Primer token (s)Primera respuesta (s)Total (s)Tokens/sPrompt (tokens/s)VRAM (MB)
AVA web

Usar AVA web en local o por Internet con Tailscale

AVA_web.cmd sirve en el navegador lo mismo que la ventana de AVA: una página de inicio de sesión y una página por usuario del archivo de credenciales, con sus pestañas y sus agentes. Sin abrir puertos: en este equipo, en tus dispositivos de la tailnet o, para las páginas que apruebes, en Internet con Tailscale Funnel.

Tailscale

Esta es la aplicación original de AVA web (agents/web/login.html y AVA_agents.html, sin cambios), como plantilla: un servidor simulado en el navegador sustituye al de AVA, así que no está conectada a nada. Entra con cualquier usuario (cualquier contraseña), cambia de pestaña, escribe a un agente, consulta las tablas de ejemplo o añade filas. Las respuestas y los datos son de ejemplo.

AVA monitor: el servidor de GPU de AVA web

http://127.0.0.1:8650 · tailnet :8651, con token

Cada GPU tiene su Ollama y su cola de modelos; cada sesión de AVA web, un nombre, una GPU y sus puertos. Varias sesiones en una GPU se turnan en su cola, una sesión parada se despierta con la primera petición, y las GPU se intercambian entre sesiones con un botón. Cuando escribes en la réplica de arriba, su petición aparece aquí.

AVA monitor
New session
name Sonia
GPUs
Sessions
Charts · GPU load, last 2 minutes
Events

Réplica de AVA monitor con datos simulados: arranca, para o reinicia sesiones, cámbiales la GPU, intercámbialas o crea una nueva. El monitor real lee nvidia-smi, Ollama y la cola de cada GPU cada pocos segundos.

# en el servidor
AVA\agents\web\AVA_web.cmd          → http://127.0.0.1:8630
AVA_monitor\AVA_monitor.cmd              → http://127.0.0.1:8650
# tailnet e Internet: netagent publica las URL (privilegio lan.publish ava_web)
AVA\agents\netagent\netagent.exe "Publica AVA web en la tailnet y en Internet"
Empieza

Instalación en una sola ventana

Windows 10/11 x64, una GPU NVIDIA, ≥ 30 GB libres y una ruta de carpeta sin espacios.

  1. 1 · Descarga el repositorio

    git clone https://github.com/gamindful/AVA.git
  2. 2 · Ejecuta AVA_installer.exe

    Responde a todas las preguntas una sola vez en la primera ventana; después la instalación sigue hasta el final sin preguntar nada.

  3. 3 · Abre AVA Agents desde la barra de tareas

    Pestañas: Agents, Analysis, Clients, Databases. O desde la terminal: python manage.py chat.