agente-ia · asistente · voz-local · memoria-persistente · multi-plataforma
Hermes Agent — Asistente IA autónomo con memoria, voz y automatización para SmallCountry¶
Podría ser el centro de asistencia IA de SmallCountry: un agente que unifica lo que antes requería tres servicios separados. No sería un servicio crítico —
SmallCountry funcionaría sin él — sino una capa de asistencia que reduciría la carga cognitiva del mantenimiento diario.
Sustituiría a OpenClaw (agente conversacional), Whisper+Piper (transcripción/síntesis de voz) y Sherlog (análisis de logs con IA).
Como usuario¶
Qué podrías hacer¶
- Hablar con Hermes desde Telegram, Signal o la terminal mientras conduces o trabajas en el campo
- Grabar notas de voz en el campo: Hermes transcribe con
faster-whisper(local, sin API keys), extrae datos con Ollama y registra en farmOS - Delegar tareas de mantenimiento: "Hermes, verifica los backups de esta noche"
- Preguntar sobre logs del sistema: "¿Por qué falló el backup anoche?" — Hermes consulta VictoriaLogs/Loki
- Crear y modificar workflows de n8n pidiéndoselo por chat
- Recibir un resumen diario de noticias por Telegram (sustituye a FreshRSS para el admin)
- Preguntar sobre el estado del sistema: "¿Cómo está la memoria del servidor Ra?"
- Recibir alertas proactivas cuando algo necesite atención
- Consultar decisiones pasadas: "¿Por qué usamos ZFS en lugar de Btrfs?"
Cómo accederías¶
| Plataforma | Cómo |
|---|---|
| Terminal | hermes (CLI interactiva) |
| Telegram | Bot vinculado a tu cuenta |
| Signal | Bot vinculado a tu cuenta |
| Navegador | Dashboard web |
Primeros pasos¶
flowchart TD
Inicio([Inicio]) --> Instalar[1. Instalar Hermes Agent<br>curl script de instalación]
Instalar --> Configurar[2. Configurar modelo<br>hermes model]
Configurar --> Conectar[3. Conectar gateway<br>Telegram, Signal]
Conectar --> Hablar([4. Empezar a hablar])
- Instalar:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash - Configurar modelo:
hermes model(DeepSeek, Ollama local, o cualquier proveedor) - Conectar gateway:
hermes gateway setup(Telegram, Signal) - Empezar a hablar
Integración con otros servicios de SmallCountry¶
| Servicio | Relación |
|---|---|
| Spec Kit | Hermes ejecutaría comandos /speckit.* para proponer y ejecutar cambios |
| Forgejo | Hermes leería el repo, crearía PRs, consultaría ADRs y specs |
| MkDocs | Hermes leería la documentación existente y propondría actualizaciones |
| Ollama + Qdrant | Proveedor local de modelos IA sin dependencia externa |
| n8n | Hermes crearía y modificaría workflows de n8n vía API REST |
| farmOS | Hermes registraría observaciones de voz → texto → datos estructurados |
| VictoriaLogs | Hermes consultaría logs vía API para diagnóstico en lenguaje natural |
| ntfy | Canal redundante de notificaciones para watchdogs sin LLM |
Servicios que lo harían posible¶
- Hermes Agent — el agente en sí (MIT, Python)
- DeepSeek API o Ollama — backend de IA
- faster-whisper — STT local (tiny/base/small/large-v3, ~150MB, sin API keys)
- Edge TTS o NeuTTS — síntesis de voz (gratis, local)
- Honcho — modelado dialectico del usuario (memoria avanzada)
- SQLite (FTS5) — búsqueda en conversaciones pasadas
Para el administrador
Datos del servicio¶
| LXC | N/A — se ejecutaría en el host o en LXC dedicado (por definir) |
| Directorio | ~/.hermes/ |
| Memoria | ~/.hermes/memories/MEMORY.md + USER.md |
| Skills | ~/.hermes/skills/ + directorio externo skills/ del repo |
| Cron jobs | ~/.hermes/cron/jobs.json |
Instalación¶
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
hermes # primer arranque
hermes model # elegir proveedor IA
hermes gateway setup # conectar Telegram/Signal
Configuración de skills SmallCountry¶
Actualización¶
Problemas comunes¶
- Hermes no arranca: verificar
hermes doctor - No responde en Telegram:
hermes gateway starty verificar token - Memoria llena: Hermes autogestiona, consolida entradas antiguas
Para el arquitecto
Relaciones con otros servicios¶
flowchart LR
Arquitecto[Arquitecto] -->|Telegram / CLI| Hermes[Hermes Agent]
Hermes -->|lee documentación| Forgejo[Forgejo Repositorio]
Hermes -->|ejecuta skills| Skills[skills/]
Hermes -->|memoria persistente| Memoria[~/.hermes/memories/]
Hermes -->|especifica cambios| SpecKit[Spec Kit]
Hermes -->|notifica| Telegram[Telegram]
Hermes -->|notifica| ntfy[ntfy]
Hermes -->|consulta IA| IA
Forgejo -->|provee contexto| Hermes
subgraph IA[Backend de IA]
DeepSeek[DeepSeek API]
Ollama[Ollama local]
end
Principios Zen aplicables¶
| Regla Zen | Cómo la cumpliría Hermes |
|---|---|
| IA nunca es requisito | |
| Degradación planificada | Si Hermes fallara, las tareas se harían manualmente vía CLI |
| Soberanía operativa | Hermes podría usar Ollama local (sin internet) como backend |
| Conocimiento compartido | La memoria de Hermes reduciría la dependencia del conocimiento tácito del arquitecto |
| Documentación | Hermes leería y propondría actualizaciones de docs, pero no decidiría solo |
Riesgos identificados (de la crítica)¶
| Riesgo | Mitigación |
|---|---|
| IA como nueva capa de fallo | No-agent mode para cron jobs críticos. Watchdogs sin LLM |
| Complejidad añadida | Sus skills y memoria externalizarían conocimiento; reducirían carga cognitiva neta |
| Dependencia externa (API) | Migrable a Ollama local cuando el hardware lo permita |
| Deriva de comportamiento | Las 13 reglas Zen como skill obligatoria, validación en CI |
Captura de pantalla¶
📸 Pendiente de captura
🟢 Enlaces de interés¶
Sitio oficial · Documentación · GitHub
🏠 Despliegue real en SmallCountry¶
Instalación¶
| Elemento | Ruta / Valor |
|---|---|
| WebUI | https://hermes-sc.duckdns.org (vía Caddy reverse_proxy) |
| Proxy | Caddy: reverse_proxy localhost:8787 con CSP personalizada para WebSockets y CDN |
| Binario | ~/.local/bin/hermes (shell script → Python venv) |
| Entorno virtual | ~/.hermes/hermes-agent/venv/ (Python 3.11.15) |
| Código fuente | ~/.hermes/hermes-agent/ (clon de GitHub + custom skills) |
| Datos y skills | ~/.hermes/ |
Configuración¶
| Archivo | Contenido |
|---|---|
~/.hermes/config.yaml |
Modelo deepseek-v4-pro (provider: deepseek), toolsets hermes-cli, max_turns 60, gateway_timeout 1800s |
~/.hermes/hermes-agent/cli-config.yaml.example |
Plantilla de configuración CLI con todos los providers soportados |
~/.config/systemd/user/hermes-gateway.service |
Servicio systemd de usuario para el gateway de mensajería |
Servicios¶
| Servicio | Tipo | Estado | Descripción |
|---|---|---|---|
| hermes-gateway | systemd user | 🟢 running | Gateway de mensajería (Telegram + plataformas), ejecuta python -m hermes_cli.main gateway run --replace desde el venv |
| Hermes WebUI | Docker compose | ⬜ no desplegado | Interfaz web en ~/hermes-webui/ (puerto 127.0.0.1:8787) |
Dónde corre cada pieza¶
Hermes Agent se ejecuta íntegramente en el servidor Ra (Chapinería). No necesita nada en Garganta la Olla: los usuarios de la finca se conectan desde sus teléfonos vía Telegram, y el bot responde desde el servidor. Si la VPN con la finca cae, Hermes sigue funcionando porque no depende de ningún servicio en Garganta.
| Ubicación | Qué necesita | Qué aporta Hermes |
|---|---|---|
| Chapinería — Servidor Ra | Python 3.11, venv, ~/.hermes/, systemd user, API key DeepSeek, token bot Telegram |
Procesa mensajes, ejecuta skills, transcribe audio, consulta logs, responde por Telegram |
| Garganta la Olla — Finca | Solo un teléfono con Telegram | Nada — Hermes responde desde Chapinería. Si no hay internet en la finca, el usuario no puede chatear, pero Hermes sigue operativo para el resto |
Docker Compose¶
Existe un docker-compose.yml en el repositorio (~/.hermes/hermes-agent/docker-compose.yml) con servicios gateway y dashboard, pero no se usa en este despliegue. Hermes corre de forma nativa: binario en ~/.local/bin/hermes, venv en ~/.hermes/hermes-agent/venv/, y el gateway como servicio systemd de usuario (hermes-gateway.service). La WebUI tiene su propio compose en ~/hermes-webui/ pero tampoco está desplegada actualmente.
Integración con opencode¶
Hermes y opencode comparten el mismo proveedor IA (deepseek-v4-pro), el directorio ~/.hermes/ para skills y configuraciones, y el usuario tonatiuh para commits en Forgejo.
Telegram¶
La integración con Telegram se gestiona desde el gateway. La configuración del bot y los tokens están en variables de entorno del servicio systemd.