Rama JARVIS-GREEN, independiente de master (el nucleo naranja queda intacto). - README propio del carril verde con diagrama de arquitectura y capturas del panel. - verde/: arranque, panel web, puente de voz (escucha local con faster-whisper + habla con la voz del naranja), pruebas (07 voz, 08 escucha), config y notas. - Integracion RAG: nucleo/saber/busca_cli.py + skill buscar-en-apuntes, para que el agente consulte el mismo indice que el nucleo. - Todo local (127.0.0.1); sin datos personales (rutas y modelo de GPU scrubeados).
134 lines
6.9 KiB
YAML
134 lines
6.9 KiB
YAML
# JARVIS verde — lo que se cambio en la configuracion de Hermes Agent.
|
|
#
|
|
# ── OJO: esto NO se copia encima de ~/.hermes/config.yaml ──────────────────
|
|
#
|
|
# El instalador genera alli un fichero de 1890 lineas (121 activas) con toda
|
|
# su documentacion dentro. Machacarlo con estas 30 lineas funcionaria —lo que
|
|
# falte cae a los valores de hermes_cli/config_defaults.py— pero se perderia
|
|
# esa documentacion y el siguiente `hermes update` no tendria con que comparar.
|
|
#
|
|
# Asi que alli se editaron SOLO los bloques de abajo, en su sitio, y este
|
|
# fichero es el registro de que se toco y por que. La copia intacta del
|
|
# instalador quedo en ~/.hermes/config.yaml.recien-instalado.
|
|
#
|
|
# ── Y una trampa que casi cuela ────────────────────────────────────────────
|
|
#
|
|
# Ese config.yaml declara `provider` y `base_url` DOS VECES dentro de `model:`.
|
|
# En YAML gana la ultima. Poner Ollama en la primera dejaba el fichero con
|
|
# buena pinta y el trafico saliendo por OpenRouter. Hay que PARSEARLO, no
|
|
# leerlo:
|
|
#
|
|
# python3 -c "import yaml;print(yaml.safe_load(open('~/.hermes/config.yaml'))['model'])"
|
|
#
|
|
# NADA de lo de abajo saca datos de la maquina. Comprobado pieza a pieza: el
|
|
# modelo es Ollama en 127.0.0.1, la voz es Piper local, el oido es whisper
|
|
# local y la memoria es un SQLite en ~/.hermes. Cero claves, cero cuentas.
|
|
|
|
# ── El cerebro ─────────────────────────────────────────────────────────────
|
|
#
|
|
# CORREGIDO EL 16 DE AGOSTO. Aqui ponia :4b-jarvis, el mismo modelo del naranja,
|
|
# con el argumento de que Ollama sirve una sola copia a los dos y asi los dos
|
|
# carriles caben en la GPU. El argumento era bueno y la conclusion imposible:
|
|
#
|
|
# 1. El prompt fijo de Hermes son ~20.500 tokens y el naranja va con
|
|
# num_ctx 4096. No es que rinda mal: no entra la pregunta.
|
|
# 2. Hermes RECHAZA cualquier modelo por debajo de 64.000 tokens de contexto
|
|
# (MINIMUM_CONTEXT_LENGTH en agent/model_metadata.py). Tope duro.
|
|
#
|
|
# Asi que el verde necesita modelo propio, y a 65536 no caben las 32 capas en
|
|
# 4 GB: van 16, el resto a la CPU. Los dos carriles ya NO comparten copia
|
|
# cargada — abrir los dos a la vez no cabe. Se abre uno u otro.
|
|
#
|
|
# context_length aqui es obligatorio: sin el, Hermes se cree lo que dice
|
|
# /api/show, que son 262144 (el maximo del modelo) y no lo configurado.
|
|
model:
|
|
default: "qwen3.5:4b-verde"
|
|
provider: "custom"
|
|
base_url: "http://127.0.0.1:11434/v1"
|
|
context_length: 65536
|
|
|
|
# ── Desde donde mira ───────────────────────────────────────────────────────
|
|
#
|
|
# Este bloque se añadio el 16 de agosto y arregla un fallo que NO parecia de
|
|
# rutas. De fabrica `cwd: "."`, que la documentacion describe como "el
|
|
# directorio desde el que lanzas hermes". No lo es: el agente arrancaba
|
|
# siempre en $HOME por mucho `cd` que se hiciera delante, y `--in DIR` se
|
|
# ignora en el modo de una sola pregunta (-z sale por _run_and_exit_oneshot y
|
|
# nunca llega a cmd_chat, que es donde vive esa bandera).
|
|
#
|
|
# El sintoma: se pide "lee verde/README.md y resumelo" y contesta un resumen
|
|
# impecable del README de Gitleaks, que es el que hay en $HOME. Sin un
|
|
# solo error por ningun lado. Ver NOTAS.md.
|
|
#
|
|
# Con la raiz en $HOME ademas se ahoga: un search_files de "*.md" devolvia
|
|
# sobre todo site-packages de los venv.
|
|
terminal:
|
|
cwd: "$HOME/COFRE/CODERS/JARVIS"
|
|
|
|
# Ollama no pide clave. Si al arrancar Hermes insiste en una, la guia oficial
|
|
# dice que vale cualquier cosa ("no-key"). No se pone aqui para que el .env
|
|
# siga sin una sola credencial. Ver NOTAS.md.
|
|
|
|
# ── Telemetria ─────────────────────────────────────────────────────────────
|
|
# Hermes dice no recoger nada. Se apaga igualmente, que es gratis.
|
|
telemetry:
|
|
shared_metrics:
|
|
enabled: false
|
|
|
|
# ── El oido ────────────────────────────────────────────────────────────────
|
|
#
|
|
# faster-whisper local. `small` porque es lo que usa el naranja y comparar dos
|
|
# carriles con modelos de escucha distintos no mediria el harness, mediria el
|
|
# modelo.
|
|
#
|
|
# unload_after_idle_seconds es el ajuste que importa en esta maquina: whisper
|
|
# pide 839 MiB en el pico de una transcripcion y la tarjeta son 4096. Soltarlo
|
|
# a los 5 minutos de silencio devuelve ese hueco al modelo. Cuesta una recarga
|
|
# en la siguiente frase; a cambio, no compite con el cerebro estando parado.
|
|
stt:
|
|
enabled: true
|
|
provider: "local"
|
|
local:
|
|
model: "small"
|
|
language: "es"
|
|
unload_after_idle_seconds: 300
|
|
|
|
# ── La boca ────────────────────────────────────────────────────────────────
|
|
#
|
|
# NO se usa el proveedor `piper` de Hermes, y el motivo no es capricho.
|
|
#
|
|
# El `piper` de serie se descarga sus propias voces de OHF-Voice/piper1-gpl y
|
|
# no sabe bajar el tono. Sonaria distinto al naranja, y entonces comparar las
|
|
# voces de los dos carriles no diria nada de nada.
|
|
#
|
|
# En su lugar se usa el proveedor por COMANDO (`type: command`), que existe en
|
|
# el codigo (tools/tts_tool.py, bloque "Custom command providers") aunque no
|
|
# este en la web. Eso permite llamar al mismo config/jarvis-piper.sh que usa el
|
|
# naranja: mismo binario Piper 1.2.0 (MIT), mismo modelo .onnx, mismo trato de
|
|
# audio. El verde suena EXACTAMENTE igual que el naranja.
|
|
#
|
|
# El adaptador voz-verde.sh existe porque las interfaces no encajan: Hermes
|
|
# pasa un fichero con el texto y jarvis-piper.sh espera el texto como
|
|
# argumento. Ver la cabecera de voz-verde.sh.
|
|
tts:
|
|
provider: "jarvis-piper"
|
|
providers:
|
|
jarvis-piper:
|
|
type: command
|
|
command: "$HOME/COFRE/CODERS/JARVIS/verde/voz-verde.sh {output_path} {input_path}"
|
|
output_format: wav
|
|
|
|
# La referencia de fabrica, por si algun dia se quiere oir que da Hermes sin
|
|
# tocarlo. NO se activa: edge es un servicio de Microsoft y le manda el texto
|
|
# de cada respuesta. Seria la unica pieza no libre del carril.
|
|
# provider: "edge"
|
|
|
|
# ── Memoria ────────────────────────────────────────────────────────────────
|
|
#
|
|
# La que trae Hermes: SQLite con FTS5 en ~/.hermes. Local y sin instalar nada.
|
|
# Es el sustituto de Honcho (el "Hancho AI" del video), que es AGPL y se puede
|
|
# autoalojar, pero cuyo razonamiento exige clave de Gemini, Anthropic u OpenAI
|
|
# y sacaria las conversaciones de la maquina.
|
|
#
|
|
# La memoria de CONOCIMIENTO va aparte, en verde/boveda/, como ficheros de
|
|
# contexto. Ver boveda/README.md.
|