Funciones ocultas para multiplicar por 10 la configuración de tu agente Hermes

AAI LABS
컴퓨터/소프트웨어경영/리더십AI/미래기술

Transcript

00:00:00Desde que empezamos a usar Hermes, hemos configurado muchos de nuestros flujos de trabajo en él, tal como les mostramos en
00:00:04los videos anteriores, ha estado monitoreando nuestras aplicaciones, coordinando al equipo en Slack y más, pero cuanto
00:00:09más lo usábamos, más nos topábamos con los mismos problemas y empezó a parecer que nuestra configuración
00:00:13no era suficiente. Como siempre hacemos, empezamos a buscar formas de resolver los problemas, pero fue ahí cuando
00:00:18nos dimos cuenta de que no necesitábamos añadir nada más, porque todo lo que necesitábamos ya estaba en Hermes
00:00:23en sí; simplemente no lo estábamos usando a su máximo potencial. Ahora, si eres nuevo en el canal,
00:00:27bienvenido. Somos una empresa de software y esto es AI Labs, donde te mostramos cómo optimizar un negocio
00:00:32con IA utilizando métodos probados por nuestro propio equipo. Y en este video, repasaremos todos los ajustes
00:00:37que cambiamos para mejorar nuestro flujo de trabajo, así que la primera categoría trata sobre el contexto y los límites de salida.
00:00:43Hermes utiliza la carpeta .hermes que contiene todas las configuraciones e información que ejecutan el agente, y todo
00:00:49eso reside en un único archivo llamado config.yaml. Es un archivo muy largo y contiene cada configuración
00:00:55vinculada a la configuración del agente, así que si estás administrando varios perfiles como nosotros, cada uno obtiene su
00:01:00propia carpeta separada y cada perfil tiene su propio archivo config.yaml. Así que el primero que cambiaremos es
00:01:06max bytes. Por defecto, esto está configurado en 50,000, lo que significa que extrae 50,000 caracteres de cualquier salida de herramienta
00:01:13hacia la ventana de contexto a la vez, y el resto se corta. Eso se convirtió en un problema cuando lo usábamos
00:01:17para monitorear ejecuciones de prueba, porque no lograba ver adecuadamente los problemas cuando eran extensos, así que necesitábamos más de
00:01:23esa salida en la ventana de contexto. Para eso, puedes establecer max bytes directamente en el archivo config.yaml
00:01:29o cambiarlo al número que necesites usando el comando “hermes config”. Una vez hecho esto, extrae esa cantidad de
00:01:34caracteres a la ventana de contexto desde todas las salidas de herramientas, pero deberás asegurarte de que el perfil correcto
00:01:39esté seleccionado, porque los cambios que haces con el comando “hermes config” se muestran en el archivo de configuración
00:01:44de tus perfiles activos. Otro problema aparece cuando el agente lee un archivo con muchas líneas. Esto nos sucedió
00:01:50cuando conectamos Hermes a la base de conocimientos de nuestra empresa, donde tenemos esos grandes documentos de políticas que
00:01:55tienen fácilmente más de 2000 líneas, así que cuando los extraía dividiéndolos en fragmentos, seguía pasando por alto
00:02:01detalles importantes, así que lo configuramos en 5000 y dejamos que el agente lea más del archivo a la vez. Hay otro
00:02:07límite que se convierte en un problema cuando tienes muchos archivos markdown grandes. Si tu documento tiene párrafos largos
00:02:12almacenados como una sola línea larga y esa línea tiene más de 2000 caracteres, no se leerá completamente, así que si
00:02:18quieres aumentar eso, puedes cambiarlo con el comando “hermes config” y establecer el recuento de caracteres que
00:02:23necesites; de esa manera, el agente puede leer más de 2000 caracteres en una sola línea. Los primeros tres ajustes
00:02:28importan principalmente si trabajas con archivos grandes, pero este siguiente es importante para todos, y es el
00:02:33umbral de compresión. Por defecto, el umbral de compresión está configurado en 50, lo que significa que una vez que el 50% de
00:02:39la ventana de contexto está llena, comprime todo lo que hay ahí, pero muchos otros agentes como Codex y
00:02:45Claude Code tienen esto configurado alrededor de 75. Nosotros mismos nos encontramos con esto al ejecutar Hermes, ya que lo habíamos
00:02:51configurado con un modelo más pequeño en 200,000 de contexto; se comprimía demasiado pronto, lo cual no es ideal cuando
00:02:56realmente quieres hacer las cosas. Ahora, modelos como Opus o los de Gemini con una ventana de un millón de tokens
00:03:02estarían bien aquí porque la compresión solo ocurre a los 500,000 tokens para ellos, pero para modelos con 200,000
00:03:08de contexto, ocurre a los 100,000 tokens, lo que causa problemas en una ejecución larga, así que configuramos el umbral de compresión
00:03:15en 0.75; de esa manera podemos usar al menos el 75% de la ventana de contexto antes de que llegue a la compresión. Otro
00:03:22ajuste se llama relación objetivo (target ratio), que está configurado en 20 por defecto. Cuando Hermes llega a comprimir, no
00:03:28comprime todo el chat, sino que deja el 20% de la conversación sin comprimir y comienza la nueva
00:03:34conversación con esa parte sin comprimir junto con el resumen, así que ese 20% sin comprimir se convierte en tu cola
00:03:40una vez que comienza la nueva conversación comprimida. Ahora, cuánto queda sin comprimir depende de qué tan grande
00:03:45sea tu ventana de contexto; para una ventana de contexto de 1 millón de tokens, se añaden 100,000 tokens, y para una de 200,000
00:03:52tokens de contexto, solo se añaden 20,000 tokens, y esta cola le da al agente más contexto sobre la
00:03:58conversación anterior para que pueda retomar fácilmente, así que 20 nos funciona en una ventana de contexto de 200,000, pero si
00:04:04estás en un modelo más grande, puedes usar el comando “config” para configurarlo más alto; el rango ideal está entre
00:04:0910 y 80 por ciento. Cuanto mayor sea el número, más tokens permanecerán en tu ventana de contexto, pero también tendrás
00:04:15menos espacio libre para trabajar. Como hablamos en el video anterior, los archivos memory.md y user.md
00:04:21que mantiene Hermes tienen un límite estricto de cuántos caracteres pueden contener; después de eso, Hermes
00:04:26comienza a descartar información que el agente cree que ya no necesita. Puedes cambiar estos límites también, ya sea
00:04:32directamente en tu archivo config.yaml o a través de la aplicación de escritorio de Hermes desde el panel de configuración. Desde allí
00:04:37también puedes cambiar la mayoría de los ajustes de los que acabamos de hablar. Y si te está gustando el video hasta ahora,
00:04:42suscríbete al canal y presiona el botón de “hype”. Este pequeño gesto de apoyo es de gran ayuda para nosotros.
00:04:47La segunda categoría son los sub-agentes. En Hermes, estás limitado a generar tres sub-agentes a la vez, y cuando
00:04:53estábamos trabajando en nuestros proyectos, alcanzamos este límite y las cosas terminaron tomando más tiempo de lo necesario.
00:04:58En la configuración, este límite proviene del valor max concurrent children, que está establecido en tres por defecto.
00:05:03Como teníamos problemas, usamos el comando “config” y cambiamos este valor a cinco. A partir de
00:05:08ese momento, cada vez que genera sub-agentes, puede ejecutar hasta cinco de ellos juntos, pero esto consume muchos
00:05:13tokens, así que si trabajas con muchos sub-agentes, el costo es algo que debes tener en cuenta. Ahora, en
00:05:18Claude Code, cada sub-agente puede crear sus propios sub-agentes, y eso es útil cuando trabajas
00:05:23con una carpeta grande donde un agente puede ramificarse en más agentes para explorar repositorios anidados, pero Hermes
00:05:28bloquea esto con el indicador max spawn depth, que está configurado en uno por defecto, y eso detiene a cualquier sub-agente
00:05:34de crear más, así que puedes aumentar la profundidad máxima de generación (max spawn depth) por encima de uno. Después de eso, tus sub-agentes pueden crear
00:05:39sus propios sub-agentes también. Hay otra característica de sub-agentes llamada auto-approve, que está configurada como falsa por
00:05:44defecto. Esto significa que los sub-agentes que generas solo heredan los permisos del padre y podrían
00:05:50seguir siendo bloqueados por solicitudes de permiso, así que si quieres cambiar esto, puedes establecerlo como verdadero directamente
00:05:55aquí. Una vez que hayas hecho eso, tus sub-agentes pueden ejecutarse en modo de auto-aprobación y no se verán bloqueados por ninguna
00:06:00solicitud de permiso. Los sub-agentes manejan tareas simples como búsquedas web que no necesitan el trabajo pesado de
00:06:06tu modelo principal, pero ejecutarlos en ese modelo potente conlleva un costo elevado para trabajos como este, así que puedes
00:06:11cambiar el modelo utilizado para cualquier sub-agente y cambiarlo por uno más pequeño, lo cual te ahorra tokens
00:06:16y si ese modelo más pequeño es de un proveedor diferente, puedes añadirlo usando el comando “hermes auth”
00:06:21que te permite incorporar modelos del proveedor que desees. Pero antes de pasar
00:06:25a los ajustes que nos ahorran costos, tengamos unas palabras de nuestro patrocinador, Helix. Cada semana hay una nueva herramienta
00:06:31de IA que te ayuda a construir aplicaciones, sitios web y productos más rápido que nunca, pero nadie habla de lo que sucede
00:06:37antes de que empieces a construir. La mayoría de las personas se lanzan directamente a programar con una idea a medio hornear y terminan
00:06:42reconstruyendo lo mismo tres veces. Helix es una plataforma de planificación de productos guiada por IA que toma una idea
00:06:48aproximada y la convierte en un plan estructurado que realmente puedes entregar a un desarrollador o a una parte interesada.
00:06:53Describe tu idea en una oración y cinco agentes especialistas en IA se ponen a trabajar cubriendo validación,
00:06:59investigación de mercado, desarrollo de producto, modelado de negocio y estrategia de crecimiento. Extrae datos de mercado en vivo en tiempo
00:07:05real, se conecta a más de 20 herramientas que ya usas como Notion, Jira y Airtable, y el “canvas” se adapta a
00:07:11las necesidades reales de tu producto en lugar de obligarte a usar una plantilla genérica. Cuando terminas, exportas un
00:07:16plan listo para inversores que está realmente construido sobre investigación real, no sobre conjeturas. Haz clic en el enlace de
00:07:21la descripción y prueba Helix gratis. La tercera categoría es costos; estos son básicamente los ajustes que te ahorran
00:07:27tokens. Cuando configuras Hermes por primera vez, le das los modelos para diferentes propósitos, pero puedes configurar
00:07:32modelos auxiliares también. Los modelos auxiliares son básicamente los más baratos y rápidos que Hermes utiliza para
00:07:38subtareas en segundo plano, de modo que el costoso modelo principal que has configurado no se desperdicie en tareas pequeñas que
00:07:43no son tan complicadas. Por defecto, cuando dejas los modelos auxiliares vacíos, Hermes recurre al
00:07:48modelo de menor costo en tu configuración; como usábamos OpenRouter, estaba configurado en Gemini Flash, así que estos
00:07:54modelos más baratos podían manejar tareas entre bastidores, así que si quieres ahorrar costos puedes configurar modelos más baratos
00:07:59manualmente. Pueden ahorrarte mucho dinero en tareas como búsquedas web o compresión si tu modelo principal
00:08:05es algo como Opus, probablemente no quieras desperdiciarlo en tareas triviales. Para ahorrar costos, otra
00:08:11cosa que puedes configurar es el nivel de esfuerzo del modelo que estás usando. El esfuerzo es básicamente cuánto
00:08:15pensamiento pone el modelo en una tarea. Si el esfuerzo es mayor, aunque la salida será mejor, los
00:08:20tokens consumidos también serán mayores. Puedes configurarlo en “bajo” o “mínimo” para que el agente no desperdicie tokens.
00:08:26También puedes desactivar el pensamiento por completo si no quieres usar niveles de esfuerzo. La cuarta categoría es
00:08:32flujo de trabajo y cubre un montón de otras características que hacen que Hermes sea mucho mejor de usar. La primera es
00:08:37comandos rápidos (quick commands). Si has estado usando Claude Code, quizás conozcas los comandos de barra diagonal donde añades instrucciones
00:08:43personalizadas reutilizables. Hacen un trabajo similar, pero Hermes los maneja de manera diferente porque no utiliza instrucciones de
00:08:48mensaje de la forma en que lo hacen Claude Code y otros agentes. Los comandos rápidos vienen en dos tipos: el primero es
00:08:54exec, que ejecuta un comando de terminal y suelta su salida en la ventana de contexto. Esto es útil para
00:08:59crear scripts que ejecutan toda una serie de comandos a partir de uno solo; por ejemplo, para operaciones de Git
00:09:04puedes configurar un comando exec personalizado y ejecutarlo cada vez que quieras que el agente utilice esos comandos. El
00:09:09otro tipo es “alias”; esto es menos un comando personalizado y más una forma de renombrar los existentes. Por
00:09:15ejemplo, si quieres una forma más rápida de ejecutar “compress”, puedes establecer un alias con una sola letra y ejecutarlo
00:09:20rápido. No hay una forma directa de configurar esto, así que en realidad tienes que hacerlo en config.yaml, o simplemente puedes
00:09:25pedirle a Claude Code o a Hermes que lo haga por ti y hará los cambios por sí mismo. Aparte de eso, Hermes tiene
00:09:31un mecanismo de puntos de control (checkpointing) también. Un punto de control es básicamente un estado guardado de tus archivos en un momento
00:09:36determinado en el tiempo; puedes revertir a él si un experimento rompe algo. Está desactivado por defecto, así que tendrás que
00:09:41establecerlo en verdadero. Una vez que el checkpointing esté activado, puedes usar el comando “rollback” para volver a un punto
00:09:46Otra cosa que puedes cambiar son las notificaciones de procesos en segundo plano; si ajustas esto a "all",
00:09:52recibirás una notificación por todo lo que Hermes esté haciendo en segundo plano. Puedes cambiarlo si no quieres
00:09:56esas. También hay una bandera llamada “hermes ephemeral system prompt”, que te permite añadir contenido en el
00:10:01mensaje del sistema del agente. Esta es una variable de entorno y la instrucción que añades como valor
00:10:06se convierte en parte del mensaje del sistema, así que puedes añadir las instrucciones que quieras de esta manera, pero este
00:10:11mensaje solo se aplica a la sesión que abres en esa terminal y no permanece a largo plazo,
00:10:16así que es útil principalmente para casos de uso de una sola vez. También puedes ejecutar Hermes en modo “yolo”, que es lo mismo
00:10:22que el modo de saltar permisos peligrosamente en Claude. Esto detiene al agente de estar ahí esperando a
00:10:27que apruebes cada acción. Puedes activarlo con el comando “yolo” o lanzando Hermes con la
00:10:32bandera “yolo” en la terminal. En un momento, nos encontramos con un error y no estábamos seguros de si provenía de Hermes
00:10:37en sí o de alguna configuración que habíamos establecido. Fue entonces cuando nos topamos con el modo “ignore user config”; elimina
00:10:43al agente de todas las configuraciones en tu carpeta .hermes y lo ejecuta de forma aislada para que puedas descubrir
00:10:48qué es lo que realmente está causando el error y arreglarlo. También puedes cambiar entre las múltiples personalidades
00:10:53que vienen con él y divertirte con los diferentes estilos de voz que ya están en las configuraciones usando el comando
00:10:59“personality”. Dado que mucha gente ha estado preguntando por ello, hemos preparado un paquete de inicio con todas las
00:11:03guías y recursos que necesitarás. Está disponible dentro de nuestra comunidad AI Labs Pro, así que si te gustaría
00:11:09apoyar al canal y obtener acceso a este paquete de recursos, asegúrate de echarle un vistazo; el enlace está en la
00:11:14descripción. Eso nos lleva al final de este video. Si te gustaría apoyar al canal y ayudarnos a seguir
00:11:19haciendo videos como este, puedes hacerlo usando el botón de “super gracias” de abajo. Como siempre, gracias por
00:11:24ver y los veré en el próximo.

Key Takeaway

Optimizar el archivo config.yaml de Hermes ajustando límites de contexto, umbrales de compresión y capacidades de sub-agentes permite maximizar el rendimiento y reducir el costo operativo del agente.

Highlights

  • Ajustar 'max bytes' en config.yaml permite ampliar el límite de caracteres (por defecto 50,000) que el agente extrae de las herramientas a la ventana de contexto.

  • Modificar 'compression threshold' a 0.75 evita la compresión prematura en modelos con 200,000 tokens de contexto, permitiendo usar el 75% de la ventana.

  • Aumentar 'max concurrent children' de 3 a 5 permite que el agente ejecute más sub-agentes simultáneamente en proyectos complejos.

  • Establecer 'max spawn depth' por encima de 1 permite que los sub-agentes creen sus propios agentes subordinados para explorar repositorios anidados.

  • Utilizar modelos auxiliares configurados manualmente permite delegar tareas triviales y reducir el consumo de tokens del modelo principal.

  • Activar 'checkpointing' y usar el comando 'rollback' permite revertir el estado de los archivos a un momento anterior tras experimentos fallidos.

Timeline

Configuración de contexto y límites

  • El archivo config.yaml gestiona todos los límites de rendimiento por perfil de agente.
  • Aumentar el límite de lectura de archivos permite procesar documentos extensos sin omitir información crítica.
  • Ajustar el umbral de compresión al 75% optimiza el uso de memoria en modelos con ventanas de 200,000 tokens.
  • La relación objetivo (target ratio) determina la cantidad de conversación no comprimida que permanece como cola en el contexto.

El rendimiento de Hermes depende directamente de los parámetros definidos en config.yaml. Modificar 'max bytes' resuelve problemas al monitorear salidas extensas de herramientas, mientras que aumentar el límite de lectura asegura que documentos de más de 2000 líneas sean procesados correctamente. El ajuste del umbral de compresión al 0.75 previene pérdidas de contexto en ejecuciones largas. Asimismo, la relación objetivo permite equilibrar el espacio libre de la ventana de contexto con el historial necesario para que el agente retome conversaciones.

Optimización de sub-agentes

  • El valor 'max concurrent children' limita la cantidad de sub-agentes activos simultáneamente.
  • Elevar 'max spawn depth' habilita la creación de sub-agentes anidados para explorar estructuras complejas.
  • Activar 'auto-approve' elimina las solicitudes de permiso para sub-agentes, permitiendo una ejecución ininterrumpida.
  • Delegar tareas simples a sub-agentes con modelos más pequeños reduce significativamente el costo total.

La gestión de sub-agentes permite paralelizar tareas, pero requiere configuraciones específicas para evitar cuellos de botella. Incrementar la concurrencia y la profundidad de generación facilita el trabajo en repositorios grandes. El modo de auto-aprobación elimina la necesidad de intervención manual constante, mientras que el uso de proveedores de modelos alternativos para tareas ligeras permite ahorrar tokens de manera eficiente.

Gestión de costos y flujo de trabajo

  • Configurar modelos auxiliares permite ejecutar subtareas con modelos de bajo costo.
  • Reducir el nivel de esfuerzo del modelo disminuye el consumo de tokens en tareas triviales.
  • El uso de comandos 'exec' y 'alias' en config.yaml permite automatizar operaciones repetitivas en la terminal.
  • El modo 'ignore user config' permite aislar el agente de configuraciones personalizadas para diagnosticar errores.

El ahorro de costos se logra al delegar procesos como búsquedas web o compresión a modelos auxiliares menos costosos que el modelo principal. Ajustar el nivel de pensamiento del agente evita gastos innecesarios en tareas de baja complejidad. Adicionalmente, características como los puntos de control y los comandos rápidos mejoran la eficiencia operativa, proporcionando mecanismos de recuperación ante errores y métodos de ejecución optimizados.

Community Posts

View all posts