Hermes Agent: agentes de IA que recuerdan, aprenden workflows y no arrancan de cero cada vez

{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"La mayoría de agentes de IA tienen un problema simple: "},{"type":"text","marks":[{"type":"bold"}],"text":"olvidan demasiado rápido"},{"type":"text","text":"."}]},{"type":"paragraph","content":[{"type":"text","text":"Podés pasar una hora explicándole cómo funciona tu proyecto, corregirle convenciones, mostrarle cómo se corren los tests o guiarlo hasta resolver un bug complejo. Pero en la siguiente sesión, muchas veces vuelve a comportarse como si nada hubiera pasado."}]},{"type":"paragraph","content":[{"type":"text","text":"Ese es el problema que Hermes Agent intenta resolver."}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes no es solo un chatbot con herramientas. Es un framework para crear agentes que pueden mantener memoria entre sesiones, guardar procedimientos reutilizables y ejecutar tareas de forma más persistente."}]},{"type":"paragraph","content":[{"type":"text","text":"La promesa no es “un agente mágico que hace todo solo”. La idea es más concreta:"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"type":"text","text":"Que un agente pueda recordar contexto útil, aprender cómo trabajás y reutilizar ese aprendizaje en tareas futuras."}]}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"Qué problema intenta resolver"}]},{"type":"paragraph","content":[{"type":"text","text":"Hoy muchos usamos IA para programar, investigar, escribir, diseñar o automatizar tareas. El problema aparece cuando esas tareas requieren contexto."}]},{"type":"paragraph","content":[{"type":"text","text":"Por ejemplo:"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"cómo está organizado un proyecto,"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"qué convenciones usa un equipo,"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"qué comandos funcionan,"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"qué errores ya se resolvieron,"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"qué estilo de respuesta prefiere una persona,"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"qué pasos hay que seguir para una tarea repetida."}]}]}]},{"type":"paragraph","content":[{"type":"text","text":"Sin memoria, el agente depende de que le expliques todo de nuevo."}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes intenta reducir esa fricción."}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"Cómo lo hace"}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes combina varias piezas:"}]},{"type":"codeBlock","attrs":{"language":null}},{"type":"codeBlock","attrs":{"language":null},"content":[{"type":"text","text":"Identidad + Memoria + Skills + Automatización"}]},{"type":"paragraph","content":[{"type":"text","text":"Cada una cumple una función distinta."}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"1. Identidad: definir cómo debe comportarse el agente"}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes usa un archivo llamado "},{"type":"text","marks":[{"type":"code"}],"text":"SOUL.md"},{"type":"text","text":"."}]},{"type":"paragraph","content":[{"type":"text","text":"Ahí se define la personalidad y el criterio del agente."}]},{"type":"paragraph","content":[{"type":"text","text":"Por ejemplo, para un agente programador podrías definir:"}]},{"type":"codeBlock","attrs":{"language":null}},{"type":"codeBlock","attrs":{"language":null},"content":[{"type":"text","text":"You are a pragmatic staff engineer.\nRead code before writing code.\nPrefer small changes.\nRun tests before saying done."}]},{"type":"paragraph","content":[{"type":"text","text":"Esto evita que todos los agentes se comporten igual."}]},{"type":"paragraph","content":[{"type":"text","text":"Podés tener un agente programador, uno investigador y uno diseñador, cada uno con una forma distinta de trabajar."}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"2. Memoria: guardar contexto útil"}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes maneja memoria en distintos niveles."}]},{"type":"paragraph","content":[{"type":"text","text":"El primer nivel son archivos simples como:"}]},{"type":"codeBlock","attrs":{"language":null}},{"type":"codeBlock","attrs":{"language":null},"content":[{"type":"text","text":"MEMORY.md\nUSER.md"}]},{"type":"paragraph","content":[{"type":"text","text":"Ahí se guarda información importante:"}]},{"type":"codeBlock","attrs":{"language":null}},{"type":"codeBlock","attrs":{"language":null},"content":[{"type":"text","text":"- El proyecto usa pnpm.\n- El backend espera sort=name,asc.\n- El usuario prefiere respuestas directas.\n- Evitar agregar dependencias sin revisar alternativas."}]},{"type":"paragraph","content":[{"type":"text","text":"Esto sirve para que el agente no tenga que reaprender lo básico en cada sesión."}]},{"type":"paragraph","content":[{"type":"text","text":"También guarda conversaciones en una base SQLite, para poder buscar contexto histórico cuando hace falta."}]},{"type":"paragraph","content":[{"type":"text","text":"La diferencia es importante:"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"la memoria corta está siempre disponible,"},{"type":"hardBreak"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"el historial completo se busca cuando se necesita."},{"type":"hardBreak"}]}]}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"3. Skills: guardar procedimientos, no solo datos"}]},{"type":"paragraph","content":[{"type":"text","text":"La parte más interesante de Hermes son las skills."}]},{"type":"paragraph","content":[{"type":"text","text":"Una skill es un procedimiento reutilizable."}]},{"type":"paragraph","content":[{"type":"text","text":"No guarda simplemente “información”, sino una forma de hacer algo."}]},{"type":"paragraph","content":[{"type":"text","text":"Ejemplo:"}]},{"type":"codeBlock","attrs":{"language":null}},{"type":"codeBlock","attrs":{"language":null},"content":[{"type":"text","text":"---\nname: debug-kubernetes-pod\ndescription: Use when a pod is crashing or restarting.\n---\n\n## Procedure\n\n1. Check pod status.\n2. Review events.\n3. Pull logs.\n4. Check previous logs if the container restarted.\n5. Look for OOMKilled, ImagePullBackOff or config errors.\n\n## Pitfalls\n\n- Forgetting to use --previous."}]},{"type":"paragraph","content":[{"type":"text","text":"Esto permite que el agente no resuelva siempre desde cero."}]},{"type":"paragraph","content":[{"type":"text","text":"Si ya encontró una forma correcta de hacer algo, puede guardarla y reutilizarla."}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"4. Skills auto-generadas"}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes puede crear skills por sí mismo."}]},{"type":"paragraph","content":[{"type":"text","text":"Por ejemplo, si durante una tarea el agente:"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"tuvo que probar varios caminos,"},{"type":"hardBreak"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"recibió una corrección importante,"},{"type":"hardBreak"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"descubrió un workflow útil,"},{"type":"hardBreak"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"o resolvió algo que probablemente se repita,"},{"type":"hardBreak"}]}]}]},{"type":"paragraph","content":[{"type":"text","text":"puede guardar ese procedimiento como una skill."}]},{"type":"paragraph","content":[{"type":"text","text":"El ciclo sería:"}]},{"type":"codeBlock","attrs":{"language":null}},{"type":"codeBlock","attrs":{"language":null},"content":[{"type":"text","text":"Resuelve una tarea\n→ identifica un aprendizaje reutilizable\n→ crea una skill\n→ la usa en futuras tareas similares"}]},{"type":"paragraph","content":[{"type":"text","text":"Esto es lo que hace que Hermes sea diferente de un agente común."}]},{"type":"paragraph","content":[{"type":"text","text":"No solo ejecuta. También intenta acumular experiencia."}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"5. Curator: evitar que las skills se vuelvan basura"}]},{"type":"paragraph","content":[{"type":"text","text":"Si un agente puede crear skills, también puede crear demasiadas skills malas, repetidas o demasiado específicas."}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes incluye un sistema llamado Curator para revisar esas skills."}]},{"type":"paragraph","content":[{"type":"text","text":"Puede:"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"mantenerlas,"},{"type":"hardBreak"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"mejorarlas,"},{"type":"hardBreak"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"fusionarlas,"},{"type":"hardBreak"}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"hardBreak"},{"type":"text","text":"archivarlas."},{"type":"hardBreak"}]}]}]},{"type":"paragraph","content":[{"type":"text","text":"Esto es importante porque la memoria sin mantenimiento se vuelve ruido."}]},{"type":"paragraph","content":[{"type":"text","text":"Hermes no elimina todo de forma agresiva. Archiva y permite volver atrás."}]},{"type":"horizontalRule"},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"6. GEPA: mejorar skills con evaluación offline"}]},{"type":"paragraph","content":[{"type":"text","text":"GEPA es una herramienta complementaria para optimizar skills."}]},{"type":"paragraph","content":[{"type":"text","text":"No entrena el modelo. No hace fine-tuning."}]},{"type":"paragraph","content":[{"type":"text","text":"Lo que hace es probar variantes de una skill, mirar trazas de ejecución y evaluar cuál funciona mejor."}]},{"type":"paragraph","content":[{"type":"text","text":"La idea es simple:"}]},{"type":"codeBlock","attrs":{"language":null}},{"type":"codeBlock","attrs":{"language":null},"content":[{"type":"text","text":"Tomar una skill\n→ generar casos de prueba\n→ crear variantes\n→ evaluarlas\n→ quedarse con la mejor"}]},{"type":"paragraph","content":[{"type":"text","text":"Esto sirve porque los agentes no siempre son buenos evaluándose a sí mismos. Pueden creer que resolvieron algo bien cuando no fue así."}]},{"type":"paragraph","content":[{"type":"text","text":"GEPA agrega una capa de validación más objetiva."}]}]}

0 respuestas

para participar en la discusión.