# JARVIS verde Banco de pruebas con **Hermes Agent** debajo, para medir si un arnés agéntico aporta algo sobre el núcleo. **100 % software libre**, y **local por configuración pero no por construcción** — ver el aviso de aquí abajo. > ⚠ **La frase "no sale nada de esta máquina" era falsa y se ha corregido.** > El 16 de agosto, pidiéndole un cartel en ASCII, el agente encontró que > `pyfiglet` no estaba instalado y **se fue a una API de terceros por su > cuenta**. Nadie le dijo que podía. El cerebro, la voz, el oído y la memoria > siguen siendo locales y comprobados; lo que no es local es **lo que el agente > decida hacer con la terminal que le has dado**. Está contado entero en > `NOTAS.md`. > **Estrenado el 16 de agosto de 2026.** Arranca, contesta y llama herramientas. > Lo que costó llegar aquí fueron **dos topes encadenados**, los dos anotados en > `NOTAS.md`: > > 1. El prompt fijo de Hermes son **~20.500 tokens** y `qwen3.5:4b-jarvis` va con > `num_ctx 4096`. Por eso existe `qwen3.5:4b-verde`. > 2. Y Hermes **rechaza de plano** cualquier modelo por debajo de **64.000** > tokens de contexto. Eso invalidó la primera medida (24576, lo máximo que > cabía en la tarjeta) y obligó a bajar media red a la CPU. > > El precio de esa segunda concesión es el tiempo de respuesta. Está medido en > `NOTAS.md` y es **el dato que decide si este carril vale la pena**. Los tres se distinguen por color: **cian** el de Newelle (congelado), **naranja** el núcleo (en desarrollo), **verde** este. ## De dónde sale esto De un reel de 75 s que vende *"construye tu Jarvis en un fin de semana"* en nueve pasos. Siete de los nueve ya estaban hechos aquí, y mejor. Los tres que no: **skills que el agente se crea solo, canales de mensajería y memoria**. Eso es lo que este carril viene a probar. ## El stack | Capa | Pieza | Licencia | ¿Sale algo? | |---|---|---|---| | Arnés | Hermes Agent | MIT | no | | Cerebro | Ollama · `qwen3.5:4b-verde` | Apache 2.0 | **no** — `127.0.0.1:11434` | | Oír | faster-whisper local | MIT | **no** | | Hablar | Piper 1.2.0, vía `jarvis-piper.sh` | MIT | **no** | | Memoria de conversación | SQLite FTS5 de Hermes | MIT | **no** | | Memoria de conocimiento | `boveda/`, ficheros Markdown | — | **no** | | Navegador | Playwright + Chromium | Apache 2.0 / BSD-3 | solo si navega | **Cero claves, cero cuentas, cero euros.** Descartados por eso: ElevenLabs, Honcho, Groq, Firecrawl, Nous Portal. Y **Edge TTS**, que es gratis pero es un servicio de Microsoft y era la única pieza no libre del carril. ## Qué hay aquí ``` verde/ ├── arrancar.sh LA PUERTA DE ENTRADA: mide, configura y dictamina ├── pruebas/ las 7 comprobaciones; ninguna abre el TUI ├── ESCALERA.md el guion del primer arranque a mano, con huecos que rellenar ├── PLAN-ARRANQUE.md el plan del que salió todo esto ├── instalar.sh baja el instalador oficial, lo enseña y lo corre sin arrancar nada ├── install-oficial.sh el instalador tal cual, para poder auditarlo y diffearlo ├── instalacion.log lo que hizo ├── config.yaml la configuración → se copia a ~/.hermes/config.yaml ├── env.ejemplo plantilla del .env, sin una sola clave ├── voz-verde.sh adaptador para que hable con la voz del naranja ├── verde-launcher.sh arranca el TUI en verde fósforo ├── jarvis-verde.svg el icono ├── boveda/ memoria de conocimiento — vacía a propósito └── NOTAS.md lo medido y lo que queda abierto ``` Se entra siempre por el mismo sitio: ```bash ./arrancar.sh # deja el carril listo, y se planta si algo no cuadra ./pruebas/ejecutar.sh # 46 comprobaciones, ninguna abre el TUI ./verde-launcher.sh # el TUI → y se sigue ESCALERA.md ``` El código de Hermes vive en `~/.hermes/`, igual que el HUD de Newelle vive en `~/.var/app/…`. Aquí solo está lo que se edita a mano. ## Uso ```bash ./verde-launcher.sh --status # qué hay y cuánta VRAM, sin arrancar nada ./verde-launcher.sh # el TUI, en verde fósforo ./verde-launcher.sh --stop # cerrar ``` `--status` es el que se puede correr hoy: no toca la gráfica. ## La voz: por qué suena igual que el naranja Hermes trae un proveedor de TTS **por comando** que no está en su web pero sí en su código (`tools/tts_tool.py`). Eso permite llamar al mismo `config/jarvis-piper.sh` del naranja, con su binario Piper MIT, su `.onnx` y su cadena de audio. No es un detalle estético: si el verde hablara con una voz que Piper se descarga por su cuenta, comparar la voz de los dos carriles no diría nada. Detalles y trampas en `NOTAS.md` y en la cabecera de `voz-verde.sh`. ## El aviso que hay que leer antes de comparar El naranja tiene **150 acciones rápidas que se saltan el modelo**. Hermes no tiene ese atajo: allí toda orden pasa por el cerebro. **El verde va a medir más lento, y no será culpa del modelo.** Para comparar de verdad hay que usar solo frases que en el naranja también acaben en el cerebro. Está desarrollado en `NOTAS.md`. ## Lo comprobado el primer día, y lo que falta **Llama herramientas bien.** Era la duda que abría este carril —la guía de Hermes marca *sin* tool calling todo lo de 9B para abajo— y salió a favor: pide la herramienta cuando toca, acierta los argumentos, y **no** la llama cuando la pregunta no la necesita. **Es flojo con las rutas relativas.** Se le pidió `verde/README.md` y leyó el `README.md` de la raíz. El detalle está en `NOTAS.md`, con la observación que más pesa: cuando una herramienta le devuelve un **error**, se recupera y busca otro camino; cuando le devuelve **un fichero que existe pero no es el pedido**, no tiene forma de notarlo. Falta lo que solo se juzga a mano: los escalones 5 (una skill), 6 (la voz dentro de Hermes) y 7 (la escucha por micrófono) de `ESCALERA.md`.