Hermes Agent con Ollama: memoria, herramientas y limites
Sí: Hermes Agent de Nous Research se conecta a un Ollama local declarando un proveedor personalizado con la dirección http://127.0.0.1:11434 y una clave de API vacía. Pero la inferencia local no hace que el agente funcione sin conexión por defecto: la búsqueda web, la síntesis de voz y el navegador en la nube siguen siendo servicios de terceros mientras no los desactives. Elige un modelo que indique que admite llamadas a herramientas; de lo contrario, puede describir una acción en lugar de ejecutarla.
Hermes Agent es el framework de agentes autónomos publicado por Nous Research, con terminal, memoria persistente y conectores de mensajería. Esta guía cubre su conexión a una instancia local de Ollama, la elección de un modelo capaz de llamar a herramientas, lo que realmente conserva su memoria y las limitaciones de seguridad y fiabilidad que hay que conocer antes de usarlo a diario.
#Qué es Hermes Agent
Hermes Agent (repositorio NousResearch/hermes-agent) es un agente autónomo de línea de comandos, con una interfaz TUI, una puerta de enlace de mensajería (Telegram, Discord, Slack, WhatsApp, Signal) y un sistema de habilidades que se crean y mejoran con el uso. No reemplaza a Hermes 4, que es un modelo de lenguaje: Hermes Agent es el software que coordina las llamadas a herramientas, la memoria y el terminal, independientemente del modelo conectado.
El repositorio avanza a un ritmo sostenido: la versión etiquetada v2026.9.24 (Hermes Agent v0.21.5), publicada el 24 de septiembre de 2026, reúne varios cientos de correcciones desde la versión anterior. Nous Research publica el proyecto bajo la licencia MIT, lo que permite su uso profesional sin pagar regalías, incluso en un despliegue modificado.
El agente funciona en un solo proceso de enlace capaz de atender varios canales al mismo tiempo: terminal local, Telegram, Discord, Slack, WhatsApp y Signal comparten la misma memoria y el mismo historial de conversación. Esto permite iniciar una tarea desde el escritorio y seguirla desde un teléfono, sin duplicar la configuración del modelo ni la memoria de un canal respecto a otro.
#Conectar Ollama localmente
Agentes que actúan en tu máquina: Cline agéntico, MCP, n8n + Ollama, automatizaciones locales.
- Espacio en línea de por vida
- PDF + archivos
- Actualizaciones de por vida
Hermes Agent enruta las solicitudes a proveedores autoalojados compatibles con OpenAI (Ollama, vLLM, llama.cpp), cada uno bajo su propio nombre de proveedor. La documentación oficial es explícita sobre el formato esperado: un base_url que apunte al servidor y una clave de API vacía que sirva como simple marcador de posición.
Una base_url reducida a un simple host:port (sin /v1) recibe automáticamente el sufijo esperado por la API compatible con OpenAI: no es necesario añadirlo manualmente. Este mismo mecanismo funciona para vLLM y llama.cpp cambiando solo el nombre del proveedor y el puerto.
Este mismo bloque de configuración puede dirigirse a roles diferentes: el modelo principal de conversación, el modelo de compresión de contexto o el modelo usado para generar un título de sesión. Cada uno puede apuntar a un proveedor distinto — por ejemplo, un modelo Ollama local para la conversación, y un modelo en la nube más rápido destinado a tareas auxiliares — lo que permite mantener la confidencialidad en los intercambios principales mientras evita que un pequeño modelo local ralentice las tareas secundarias.
#¿Qué modelo para la llamada a herramientas?
Hermes Agent expone más de 40 herramientas (terminal, archivos, navegador, memoria, cron) que el modelo debe invocar a través de llamadas estructuradas, no mediante una simple descripción en texto. Un modelo Ollama que no haya sido entrenado para el tool-calling — o una cuantización demasiado agresiva del mismo modelo — responde frecuentemente con una explicación en lugar de activar la llamada.
- Modelo principal de conversación
- Prioriza una variante de Ollama que figure explícitamente como compatible con herramientas (etiqueta tools en ollama.com/library) en lugar de un modelo genérico de chat.
- Modelo auxiliar (títulos, compresión)
- Puede seguir siendo ligero: cuando el proveedor local solo dispone de una ranura de ejecución, Hermes Agent lo llama después de recibir la respuesta del turno principal, no en paralelo, para evitar que un servidor con una sola ranura mezcle las dos solicitudes.
- Formato de identificador
- Un proveedor con nombre puede añadir un prefijo al identificador del modelo, por ejemplo ollama-local/qwen3.6:27b-q4_k_m; este prefijo también se aplica cuando al servidor solo llega la solicitud sin modificar (sin prefijo).
Un detalle que conviene observar de cerca: con un proveedor local personalizado, la llamada al modelo que genera el título se envía después de que llegue la respuesta del turno, no al mismo tiempo. En un servidor local que solo puede procesar una solicitud a la vez, esto evita que una solicitud de título en JSON estructurado interrumpa la generación de la propia respuesta: un detalle de planificación de las solicitudes que rara vez se documenta en otros lugares.
#Memoria: lo que realmente persiste
La memoria de Hermes Agent se basa en archivos de texto simples, legibles y modificables directamente: MEMORY.md y USER.md en el directorio de perfil. El modelo decide, a través de una herramienta específica, qué merece la pena escribir en ellos: preferencias, hechos duraderos, procedimientos aprendidos.
El punto débil documentado por el propio proyecto: un modelo local pequeño puede anunciar «está guardado» sin haber llamado realmente a la herramienta de escritura. La documentación oficial recomienda, para un modelo local de menos de unos 30 mil millones de parámetros o que no invoque herramientas de forma fiable, pedir explícitamente que se use la herramienta de memoria y después verificar el archivo, en lugar de multiplicar las instrucciones en el prompt.
#Seguridad: ocho capas, no un muro
Nous Research documenta un modelo de seguridad de ocho capas: autorización de usuarios, aprobación humana de comandos peligrosos, salvaguardas para la escritura de archivos, aislamiento mediante contenedores (Docker, Singularity, Modal), filtrado de las credenciales transmitidas a los servidores MCP, detección de inyección de prompts en los archivos de contexto, aislamiento entre sesiones y validación de las rutas de trabajo de las herramientas de terminal.
La aprobación de comandos peligrosos se configura a través de approvals.mode en el archivo de configuración, con tres modos disponibles: automático, manual o inteligente (el modo predeterminado recomendado, que aprueba acciones de bajo riesgo y bloquea las demás para validación).
#Límites de un pequeño modelo local para este agente
Un agente con tantas herramientas como Hermes Agent exige mucho de la capacidad del modelo para seguir instrucciones: memoria, planificación, llamadas encadenadas a herramientas y, a veces, subagentes en paralelo. Con un modelo de 7 a 14 mil millones de parámetros con cuantización Q4_K_M, debes prever llamadas fallidas a herramientas, confirmaciones sin ejecución real y una compresión del contexto más frecuente en sesiones largas.
| Función | Síntoma típico |
|---|---|
| Memoria (herramienta dedicada) | Confirmación verbal sin escritura real del archivo |
| Secuencia de herramientas | El modelo describe la siguiente etapa en lugar de ejecutarla |
| Subagentes paralelos | Instrucciones mal transmitidas, resultados que hay que contrastar manualmente |
| Sesiones largas | Compresión del contexto más frecuente, pérdida de detalles antiguos |
Nada de esto es exclusivo de Hermes Agent: es la limitación conocida de los modelos pequeños cuantizados ante los formatos de salida estructurados. La respuesta documentada por el proyecto no es añadir instrucciones, sino utilizar un modelo más sólido al menos durante la fase de configuración inicial. Una vez almacenadas las entradas en memoria, un modelo más ligero puede volver a leerlas sin problemas, ya que se incorporan directamente al prompt de sistema.
Los subagentes y los scripts de Python que llaman a herramientas mediante RPC —dos funciones destacadas por el proyecto para paralelizar tareas— se basan en la misma capacidad de seguimiento de instrucciones que una llamada simple a una herramienta. Un modelo que ya tiene dificultades con una llamada aislada tendrá aún más problemas para coordinar varios subagentes sin mezclar sus respectivos contextos: es mejor validar el comportamiento básico antes de activar estas funcionalidades avanzadas.
#Servidores MCP: catálogo y permisos
Hermes Agent incluye un catálogo de servidores MCP revisados e integrados por el equipo de Nous Research (Linear, GitHub, Figma y Asana, entre otros), pero cada servidor permanece desactivado por defecto: es necesario instalarlo explícitamente antes de que sea accesible para el agente. Una vez introducidas las credenciales, Hermes Agent consulta al servidor para enumerar las herramientas que expone y muestra una lista con casillas de selección, lo que evita activar de golpe todas las capacidades de un servidor de terceros aún poco conocido.
Un detalle que pocos tutoriales mencionan: para los servidores MCP en modo stdio, Hermes Agent no transmite al subproceso el entorno completo del shell del equipo. Solo se pasan las variables declaradas explícitamente en la configuración del servidor, junto con un conjunto mínimo (en particular, PATH, HOME, USER, LANG, TERM y SHELL); las demás variables de entorno, incluidas las claves de API y los tokens, se filtran. Este mecanismo reduce el riesgo de que un servidor MCP de terceros mal auditado extraiga un secreto presente en el shell.
#Subagentes: lo que permite la delegación
La herramienta delegate_task permite a Hermes Agent encargar una tarea a un agente hijo: cada subagente inicia su propia conversación, con su propia sesión de terminal, y solo hereda las herramientas ya habilitadas para el agente padre; no puede otorgarse una capacidad adicional que el propio padre no tenga. Solo el resumen final del subagente se incorpora al contexto del agente principal; las llamadas intermedias a herramientas nunca se incorporan a él, lo que limita el consumo de contexto en tareas largas y evita llenar la conversación principal de detalles de ejecución.
Por defecto, hasta diez subagentes pueden ejecutarse en paralelo —un límite configurable, sin un límite de hardware impuesto por el software—, pero la profundidad de delegación predeterminada sigue fijada en 1: un subagente no puede, a su vez, crear otros subagentes mientras ese comportamiento no se active explícitamente en la configuración. Con un modelo local de 7 a 14B, conviene mantener esa profundidad en 1: cada nivel adicional de delegación multiplica el número de llamadas a herramientas que deben encadenarse correctamente, precisamente el punto débil señalado anteriormente para los modelos pequeños cuantizados.
#Solución de problemas: síntomas, causa, corrección
La mayoría de los problemas con un endpoint local de Ollama se reducen a cuatro grupos de síntomas, cada uno con una causa identificable en la documentación oficial, en lugar de una hipótesis formulada a tientas.
| Síntoma | Causa probable | Corrección |
|---|---|---|
| Interrupciones de flujo o timeout en un contexto largo | El tiempo de espera de lectura predeterminado no cubre la latencia de un modelo local de gran tamaño | Aumentar HERMES_STREAM_READ_TIMEOUT (por ejemplo, 1800 segundos) en la configuración |
| El modelo describe la acción en lugar de ejecutarla | Modelo cuya compatibilidad con las llamadas a herramientas no se ha anunciado, o cuantización demasiado agresiva del mismo modelo | Elegir una variante que figure con la etiqueta «tools» en la ficha del modelo en ollama.com/library |
| Confirmación de que se ha guardado en la memoria sin escribir el archivo | Modelo local por debajo de aproximadamente 30B con llamadas a herramientas poco fiables | Verificar MEMORY.md/USER.md después de cada solicitud; si es necesario, volver temporalmente a un modelo más potente |
| Un servidor MCP de terceros no ve una variable esperada | Filtrado de entorno: solo las variables declaradas y el mínimo esencial se envían al subproceso | Declarar explícitamente la variable en la configuración de este servidor MCP |
Hermes Agent detecta automáticamente los endpoints locales y amplía sus tiempos de espera de lectura en consecuencia, pero un contexto voluminoso en un modelo Ollama lento aún puede superar ese tiempo de espera predeterminado; la documentación oficial recomienda ajustar la variable HERMES_STREAM_READ_TIMEOUT en lugar de reducir arbitrariamente el contexto enviado al modelo.
#Instalar en la práctica
- 01Instalar Hermes AgentEn Linux, macOS o WSL2: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash, luego recargar el shell y ejecutar hermes.
- 02Preparar el modelo OllamaVerificar que Ollama esté funcionando en el puerto 11434 y que el modelo elegido se anuncie como compatible con tool-calling antes de declararlo como proveedor.
- 03Declarar el proveedor localUsar hermes config set para especificar provider: ollama, el nombre del modelo y la base_url http://127.0.0.1:11434, con una clave de API vacía.
- 04Probar una llamada sencilla a una herramientaPedir una acción verificable (listar un directorio, leer un archivo) y confirmar en el terminal que la herramienta se ha ejecutado realmente y que no se ha limitado a describir la acción.
- 05Controlar la memoriaPedir explícitamente que se memorice la información y luego abrir MEMORY.md para comprobar que la entrada figure allí antes de confiar en el agente en este aspecto.
- Ejecutar el modelo Hermes 4 localmente
- Conectar servidores MCP a Ollama
- Agente de IA: definiciones y límites generales
- Fuente: repositorio oficial de Hermes Agent en GitHub
- Fuente: documentación de configuración de proveedores
- Fuente: documentación del modelo de seguridad
¿Funciona Hermes Agent sin conexión a internet una vez conectado a Ollama?+
¿Qué modelo Ollama elegir para Hermes Agent?+
¿Hermes Agent es lo mismo que el modelo Hermes 4?+
¿Cómo verificar que la memoria de Hermes Agent funciona realmente?+
¿El aislamiento mediante contenedores se activa automáticamente?+
¿Cómo activar un servidor MCP en Hermes Agent?+
¿Cuántos subagentes puede lanzar Hermes Agent en paralelo?+
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.