Hermes Agent: construir un agente es diseñar un sistema, no solo un prompt
Hermes Agent es un framework open source de Nous Research que ejecuta un mismo núcleo agéntico desde terminal, escritorio, IDE, API y plataformas de mensajería. Su unidad de diseño útil es el perfil: identidad, modelos, herramientas, memoria, skills, seguridad y automatizaciones con ciclos de vida separados.
Flujo de una ejecución Hermes
- EntradaCLI · gateway · ACP · API · cron
- PromptSOUL · contexto · skills · memoria
- Proveedormodelo · API mode · fallback
- Agent looprazonar · llamar tools · iterar
- Ejecuciónterminal · archivos · web · MCP
- Estado y salidaSQLite · FTS5 · entrega
Un núcleo, muchas superficies
El núcleo AIAgent sirve a varias entradas: CLI y TUI, aplicación de escritorio, gateway de mensajería, ACP para editores, servidor compatible con OpenAI, batch runner y biblioteca Python. Las diferencias de interfaz viven fuera del loop central; esa separación permite que el mismo agente actúe desde Telegram o un IDE sin duplicar la lógica de ejecución.
- CLI/TUI para trabajo interactivo en terminal.
- Desktop y dashboard para sesiones, configuración y operación visual.
- Gateway para Telegram, Discord, Slack, WhatsApp y otros adaptadores.
- ACP, API y batch para integración con editores, aplicaciones y experimentos.
La arquitectura detrás del agent loop
AIAgent ensambla el prompt y los schemas de herramientas, resuelve proveedor y modo de API, realiza una llamada cancelable al modelo y despacha las tool calls. Los resultados vuelven al historial y el ciclo continúa hasta obtener una respuesta final, alcanzar un límite o ser interrumpido.
- Tres modos convergen en un historial interno común: chat completions, Codex Responses y Anthropic Messages.
- Las llamadas múltiples a herramientas pueden ejecutarse en paralelo y sus resultados regresan en el orden original.
- Retries, proveedores fallback, compresión y persistencia forman parte del loop, no de una capa improvisada.
- La alternancia de roles y los pares tool call/result se preservan como invariantes del historial.
Capacidades: herramientas agrupadas por toolsets
Hermes expone herramientas como funciones registradas y las agrupa en toolsets que pueden habilitarse por superficie. El catálogo incluye trabajo sobre web, navegador, sistema operativo, repositorios, documentos, medios y servicios externos; la disponibilidad real depende de configuración, credenciales y backend.
- Web y navegador: búsqueda, extracción, automatización, snapshots y visión.
- Ingeniería: terminal, procesos, lectura, escritura, patches, búsqueda, LSP y ejecución Python programática.
- Multimodal: visión, generación de imágenes y video, STT y text-to-speech.
- Orquestación: todo, clarify, delegation, cron, kanban, goals y background jobs.
- Integraciones: MCP, Home Assistant, Spotify, Discord y plugins especializados.
Memoria, sesiones y skills no son lo mismo
La memoria conserva hechos compactos y estables; USER.md modela al usuario; SQLite y FTS5 permiten persistir y buscar sesiones; las skills almacenan procedimientos que se cargan solo cuando son relevantes. Esa separación mantiene el contexto base pequeño y convierte una solución repetible en capacidad reutilizable.
- MEMORY.md y USER.md entran como snapshots al crear o reconstruir el prompt.
- session_search recupera conversaciones guardadas sin tratarlas como memoria permanente.
- SKILL.md usa divulgación progresiva: índice compacto, contenido principal y referencias bajo demanda.
- El agente puede crear y mejorar skills; un gate opcional permite revisar cada escritura.
Automatización, delegación y extensibilidad
Hermes puede convertir una conversación en trabajo paralelo o durable. Los subagentes aíslan contexto para tareas concurrentes; execute_code compone varias herramientas desde Python; cron ejecuta trabajos programados; webhooks reaccionan a eventos externos; MCP y plugins agregan capacidades sin modificar el núcleo.
- delegate_task crea workers aislados y devuelve resultados al agente padre.
- Cron soporta horarios, skills adjuntas, scripts, workdir y entrega multiplataforma.
- Webhooks con HMAC pueden disparar ejecuciones desde GitHub, CI, monitoreo o sistemas propios.
- MCP descubre herramientas por stdio o HTTP y las registra junto a las herramientas nativas.
- Plugins pueden aportar tools, hooks, proveedores de memoria, context engines y superficies visuales.
SOUL.md define identidad; AGENTS.md define el proyecto
SOUL.md vive en HERMES_HOME y ocupa la primera posición del system prompt. Debe contener voz, carácter, postura ante incertidumbre y estilo de interacción que aplican en todos los contextos. Las convenciones de un repositorio, comandos, puertos y arquitectura pertenecen a archivos de contexto del proyecto.
- SOUL.md: identidad durable, tono, directitud, límites de estilo y valores operativos.
- .hermes.md o AGENTS.md: reglas, arquitectura, comandos y verificación de un proyecto.
- Skills: procedimientos reutilizables y conocimiento especializado bajo demanda.
- Memory/User: hechos estables sobre entorno, preferencias y persona; no procedimientos largos.
- /personality: overlay temporal de sesión, no sustituto de una identidad bien diseñada.
Cómo construir un agente Hermes
La ruta recomendada es crear un perfil aislado, definir su identidad, elegir modelo y herramientas, agregar reglas de proyecto y skills, configurar memoria e integraciones, y probarlo con tareas adversariales antes de habilitar automatizaciones. Un perfil puede luego exportarse o publicarse como distribución versionada.
- Crear: `hermes profile create research-bot` y ejecutar su setup.
- Definir identidad en `$HERMES_HOME/SOUL.md` sin mezclar secretos ni rutas temporales.
- Seleccionar proveedor/modelo, fallbacks y toolsets con privilegio mínimo.
- Agregar AGENTS.md, skills, MCP y cron solo cuando el caso los necesita.
- Dogfood, revisar trazas, validar aprobaciones y publicar como distribución Git si se compartirá.
El system prompt es una composición con estabilidad deliberada
Hermes ordena el prompt en tiers estables, contextuales y volátiles. SOUL.md, guía de herramientas y skills forman el prefijo estable; reglas del proyecto forman contexto; memoria, perfil de usuario, timestamp y datos de sesión forman el tier volátil. Los overlays por llamada no mutan el prefijo cacheado.
- La estabilidad del prefijo preserva prompt caching y continuidad.
- Los context files pasan por escaneo de seguridad y truncación antes de entrar.
- Las escrituras de memoria no reescriben silenciosamente un prompt ya congelado.
- La compresión resume el centro del historial y conserva mensajes recientes y pares de herramientas.
Poder operativo exige fronteras explícitas
Un agente con terminal, navegador, credenciales y mensajería puede producir efectos reales. Hermes incorpora aprobación de comandos, redacción de secretos, aislamiento por backend, perfiles separados, autorización en gateway, filtrado de entorno para MCP y checkpoints, pero la configuración sigue siendo una decisión de riesgo del operador.
- Usar aprobaciones smart o manual; reservar el modo yolo para entornos deliberadamente desechables.
- Guardar secretos en `.env` o stores de autenticación, nunca en SOUL.md, skills o repositorios.
- Elegir local, Docker, SSH o backends cloud según el radio de impacto aceptable.
- Tratar skills, plugins, MCP servers y distribuciones como código de terceros con privilegios.
- Verificar artefactos, CI, despliegue y efectos externos antes de declarar una tarea terminada.
Fuentes oficiales
- Hermes Agent — documentación oficial
- Hermes Agent — arquitectura
- Hermes Agent — agent loop
- Hermes Agent — prompt assembly
- Hermes Agent — features overview
- Hermes Agent — Personality & SOUL.md
- Hermes Agent — profiles
- Hermes Agent — tools and toolsets
- Hermes Agent — skills system
- Hermes Agent — repositorio oficial