Agente Hermes: Qué es y cómo usarlo con Nstproxy Crawl
TL;DR
Hermes Agent es el agente de IA de código abierto, con licencia MIT, autoalojado de Nous Research: una aplicación de terminal y de escritorio con memoria persistente, un sistema de habilidades de auto-mejoramiento y soporte para Telegram, Discord, Slack, WhatsApp, Signal y CLI.
Incluye más de 70 herramientas integradas, incluyendo web_search y web_extract, y se puede extender de dos maneras: conectando un servidor MCP o escribiendo un complemento que registre una herramienta personalizada a través de ctx.register_tool().
La herramienta web_extract integrada de Hermes devuelve Markdown pero aplica una truncación severa del presupuesto de caracteres y no está documentada para renderear JavaScript; su camino browser_navigate/browser_snapshot puede añadir manejo de proxy y anti-bot, pero solo a través de un backend de navegador en la nube tipo Browserbase de pago y un bucle de interacción del árbol de accesibilidad de múltiples pasos.
Integrar Nstproxy Crawl como un complemento de Hermes le da al agente una única llamada a la herramienta que renderiza JavaScript, resuelve a través de la propia piscina de proxies de Nstproxy y devuelve Markdown o JSON limpio, sin una suscripción separada de automatización de navegador.
La integración es un complemento de Hermes de ~40 líneas: un manifest plugin.yaml, una función register(ctx) y un manejador que POSTea al endpoint /api/v1/crawl/scrape de Nstproxy Crawl y devuelve el Markdown parseado.
Nstproxy Crawl cobra por cada búsqueda exitosa (incluyendo respuestas 404/403) en lugar de por intento, y los rastreos a nivel de sitio necesitan límites explícitos de / — ambos son importantes una vez que un agente llama a la herramienta de forma autónoma en lugar de un humano realizando una solicitud a la vez.
Hermes Agent es un agente de IA de código abierto, con licencia MIT, construido por Nous Research, distribuido como una aplicación de terminal y una aplicación de escritorio nativa para macOS y Windows. Se instala con un solo script (curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash en Linux/macOS/WSL2/Termux, o una línea de PowerShell en Windows), y el instalador incluye Python 3.11, Node.js, ripgrep y ffmpeg para que el agente tenga un entorno de ejecución funcional desde el principio. Su característica definitoria es un bucle de aprendizaje: el propio README del proyecto describe un agente que "crea habilidades a partir de la experiencia, las mejora durante su uso", y busca en su propio historial de conversaciones pasadas en lugar de empezar desde cero en cada sesión.
El acceso al modelo es agnóstico del proveedor: hermes model cambia entre el propio Nous Portal de Nous Research, OpenRouter, OpenAI o un endpoint personalizado sin tocar el código, y el agente llega a los usuarios a través de Telegram, Discord, Slack, WhatsApp, Signal, correo electrónico o una sesión CLI simple. En el fondo, Hermes incluye más de 70 herramientas integradas agrupadas en conjuntos de herramientas (automatización de navegador, acceso a archivos y terminal, búsqueda y extracción web, visión, generación de imágenes, automatización del hogar, y más), configurables por plataforma con el comando hermes tools.
Por qué extenderlo con Nstproxy Crawl
Las propias herramientas web de Hermes cubren bien el caso común, pero tienen limitaciones documentadas que vale la pena conocer antes de construir un flujo de trabajo a su alrededor. La herramienta integrada web_extract obtiene una URL y devuelve Markdown, pero los propios documentos de Nous Research describen un presupuesto fijo de caracteres en el resultado: aproximadamente 15,000 caracteres por defecto, divididos en "~75% cabeza / 25% cola" con un pie de página explícito [TRUNCATED] una vez que una página excede eso; y los mismos documentos dirigen las páginas pesadas en JS que "devuelven poco contenido" hacia browser_navigate más browser_snapshot en su lugar. Ese camino del navegador funciona, pero es una forma de herramienta completamente diferente: abre una sesión real de navegador, devuelve un snapshot del árbol de accesibilidad con elementos interactivos numerados, y necesita un backend capaz de CDP (Chrome local, o una opción en la nube como Browserbase) para ejecutarse — y el manejo de proxy o anti-bot en esa ruta es una característica del nivel de nube de navegador de pago, no algo que web_extract proporcione por sí mismo.
Nstproxy Crawl llena el vacío entre esas dos herramientas con una tercera forma: una llamada a la API que renderiza JavaScript, se enruta a través de la propia piscina de proxies de Nstproxy con manejo de huellas dactilares del navegador, y devuelve Markdown, HTML o JSON limpio — más parecido a lo que web_extract ya devuelve al modelo, pero sin el comportamiento de truncamiento por defecto o la brecha de renderizado de JS, y sin requerir una suscripción de navegador en la nube separada para cobertura de proxy.
Echa un vistazo rápido
Cuando una página que un agente necesita leer es pesada en JS o está detrás de la detección de bots, Nstproxy Crawl la convierte en Markdown o JSON limpio en una sola llamada a la API respaldada por un proxy: no se requiere un backend de automatización del navegador separado.
Agente Hermes instalado y accesible a través de hermes en tu PATH, con un backend de modelo ya configurado a través de hermes model.
Una cuenta de Nstproxy y una clave API para Crawl, mantenidas en una variable de entorno en lugar de codificadas en un archivo.
Python 3.11, que ya viene incluido con el instalador de Hermes.
Familiaridad con la edición de YAML y Python — el complemento a continuación es breve, pero querrás adaptar la descripción y los parámetros de la herramienta a tu propio flujo de trabajo.
Instalar
Los complementos de Hermes viven en ~/.hermes/plugins/<nombre-del-complemento>/. Crea el directorio y los tres archivos que necesita un complemento:
mkdir-p ~/.hermes/plugins/nstproxy-crawl
cd ~/.hermes/plugins/nstproxy-crawl
touch plugin.yaml __init__.py
Configurar
Declara los metadatos del complemento en plugin.yaml:
name: nstproxy-crawl
version:"1.0"description: Obtén una URL como Markdown limpio a través de Nstproxy Crawl, con renderizado de JS y acceso respaldado por proxy.
Establece la clave API de Nstproxy como una variable de entorno en lugar de escribirla en algún archivo de complemento: los complementos de Hermes se ejecutan como Python normal, así que os.environ está disponible para ellos igual que para cualquier script:
exportNSTPROXY_API_KEY="tu-clave-api-aquí"
Apertura real
Registra la herramienta dentro de __init__.py, siguiendo el patrón de complemento documentado de Hermes — una función register(ctx) que llama a ctx.register_tool() con un esquema y un controlador:
import json
import os
import requests
NSTPROXY_API_BASE ="https://api.nstproxy.com"defregister(ctx): schema ={"name":"nstproxy_crawl_scrape","description":("Obtén una URL y devuelve Markdown limpio, renderizando JavaScript y ""enrutando a través del grupo de proxies de Nstproxy. Usa esto para páginas que ""web_extract devuelve poco contenido, o que necesitan acceso respaldado por proxy."),"parameters":{"type":"object","properties":{"url":{"type":"string","description":"La URL para obtener y convertir a Markdown.",}},"required":["url"],},}defhandle_crawl_scrape(params,**kwargs):del kwargs
target_url =(params or{}).get("url","").strip()ifnot target_url:return json.dumps({"success":False,"error":"se requiere url"}) api_key = os.environ.get("NSTPROXY_API_KEY")ifnot api_key:return json.dumps({"success":False,"error":"NSTPROXY_API_KEY no está configurada"}) response = requests.post(f"{NSTPROXY_API_BASE}/api/v1/crawl/scrape", headers={"x-api-key": api_key,"Content-Type":"application/json"}, json={"url": target_url,"formats":["markdown"],"onlyMainContent":True}, timeout=60,) response.raise_for_status() envelope = response.json()if envelope.get("err"):return json.dumps({"success":False,"error": envelope.get("msg","fallo en la solicitud")}) result = envelope.get("data",{})ifnot result.get("success"):return json.dumps({"success":False,"error": result.get("status","el rastreo no se completó")}) page = result.get("data",{})return json.dumps({"success":True,"title": page.get("metadata",{}).get("title",""),"markdown": page.get("markdown",""),}) ctx.register_tool( name="nstproxy_crawl_scrape", toolset="nstproxy_crawl", schema=schema, handler=handle_crawl_scrape,)
Dos detalles son importantes aquí, ambos extraídos de la propia documentación y manual de API de Nstproxy: la respuesta está anidada: un sobre de nivel superior err/code/msg envuelve un objeto interno success/status, que a su vez envuelve la carga útil real de data.markdown — y un HTTP 200 solo confirma que la solicitud fue recibida, no que el rastreo fue exitoso, por lo que el controlador verifica explícitamente err y success en lugar de confiar solo en el código de estado.
Adjuntar la herramienta
Habilita el nuevo conjunto de herramientas de la misma manera en que habilitarías cualquiera integrado:
hermes tools
Seleccione nstproxy_crawl de la lista interactiva (o páselo directamente con hermes chat --toolsets "web,nstproxy_crawl"), y el modelo obtiene acceso a nstproxy_crawl_scrape junto con sus herramientas existentes durante el resto de la sesión.
Ejemplo trabajado
Aquí está la lógica de análisis del controlador verificada contra el sobre de respuesta documentado de Nstproxy Crawl — ejecutado contra un accesorio local que sirve esa forma JSON exacta, ya que este entorno no tiene una clave API de Nstproxy en vivo para llamar al endpoint real:
{"success":true,"title":"Carreras en Example Corp","markdown":"# Página de Carreras de Ejemplo\n\nEstamos contratando un Ingeniero de Backend Senior en Remoto - EE. UU.\n\n[Aplica aquí](https://example.com/jobs/8077887)"}
Esto coincidió con la misma estructura anidada err / data.success / data.data.markdown que describe la documentación de la API en vivo de Nstproxy, confirmando la lógica de desanidación en el controlador del complemento antes de apuntarlo a una clave API real.
Salida devuelta
Una vez activada la herramienta, una solicitud en lenguaje natural como "lee la página de carreras en nstproxy.com y resume los roles de ingeniería abiertos" le da al modelo una llamada nstproxy_crawl_scrape para hacer, y la herramienta devuelve una cadena JSON con campos success, title, y markdown — la misma forma mostrada arriba. El bucle de llamada de herramientas de Hermes lee ese Markdown de la misma manera que leería la salida de web_extract, por lo que no se necesitan cambios en la forma en que el agente razona sobre el resultado; la diferencia está completamente en lo que la obtención subyacente puede manejar.
Límites
El complemento anterior obtiene una sola página por llamada — no establece maxDepth o maxPages, porque esos parámetros solo se aplican al endpoint de rastreo a nivel de sitio de Nstproxy Crawl (POST /api/v1/crawl), no al endpoint scrape de una sola página utilizado aquí. Si amplías este complemento para llamar al endpoint a nivel de sitio en su lugar, establece esos límites explícitamente: un rastreo de sitio sin límites lanzado autónomamente por un agente puede vagar hacia resultados de búsqueda, paginación o páginas de inicio de sesión sin un humano en el bucle para notarlo.
Nstproxy Crawl cobra por cada obtención exitosa en lugar de por intento — una respuesta que regrese con un código de estado real, incluyendo un 404 o 403, es facturable una vez, ya que la obtención en sí tuvo éxito aunque la página no. Esa distinción importa más una vez que un agente llama a la herramienta por su propio horario que para una solicitud manual única, ya que una URL incorrecta alimentada al agente en un bucle aún cuenta contra el uso. Verifica nuevamente los precios de suscripción actuales de Crawl antes de confiar en una cifra específica, ya que cambia, y consulta la referencia de la API de Crawl para el esquema completo de solicitud/respuesta en el que se basa este complemento, incluyendo el endpoint de rastreo a nivel de sitio y sus parámetros maxDepth/maxPages. El anuncio de lanzamiento de Crawl de Nstproxy cubre el conjunto de funciones más completo si esta integración crece más allá de las obtenciones de una sola página.
El controlador también asume que la API de Crawl responde dentro de su tiempo de espera de 60 segundos; una página lenta o pesada en JS puede exceder eso, en cuyo caso la herramienta debería devolver una falla clara en lugar de permitir que la solicitud cuelgue — las versiones de producción de este complemento deberían capturar explícitamente requests.Timeout en lugar de dejar que se propague como una excepción no manejada, ya que Hermes espera que los controladores de herramientas devuelvan siempre una cadena JSON.
Conclusión
Las herramientas web integradas del Agente Hermes cubren la mayoría de los casos, pero un resultado truncado de web_extract o una sesión de browser_navigate que necesita un backend de navegador en la nube de pago para soporte de proxy son ambos límites reales que eventualmente alcanzarás. Un pequeño complemento — un manifiesto plugin.yaml y una función register(ctx) que envuelve una sola llamada HTTP al endpoint de raspado de Nstproxy Crawl — cierra esa brecha con una única llamada de herramienta respaldada por proxy y renderizada por JavaScript que devuelve el mismo tipo de Markdown que el agente ya sabe leer. Mantén la clave API en una variable de entorno, establece cualquier rastreo a nivel de sitio que añadas más tarde con límites explícitos de página y profundidad, y la integración se encaixa en el bucle de llamadas de herramientas existente de Hermes sin cambiar la forma en que el agente razona sobre sus resultados.
Preguntas frecuentes
P: ¿Qué es el Agente Hermes?
El agente Hermes es un agente de IA autohospedado y de código abierto con licencia MIT, construido por Nous Research. Se ejecuta como una aplicación de terminal y una aplicación de escritorio nativa, soporta Telegram, Discord, Slack, WhatsApp y Signal junto con el uso de CLI en texto plano, y está construido en torno a un sistema de habilidades de auto-mejora con memoria persistente a lo largo de las sesiones.
Q: ¿Necesito usar Nous Portal para ejecutar Hermes Agent?
No. hermes model cambia entre backend — Nous Portal, OpenRouter, OpenAI o un punto final personalizado — sin cambiar ningún código, por lo que Nous Portal es una opción entre varias en lugar de un requisito.
Q: ¿Por qué no usar simplemente la herramienta web_extract integrada en Hermes? web_extract funciona bien para páginas ordinarias, pero la propia documentación de Nous Research describe una truncación predeterminada de ~15,000 caracteres en su salida y señala que las páginas con mucho JS que devuelven poco contenido deberían usar en su lugar browser_navigate/browser_snapshot. Un complemento Nstproxy Crawl le da al agente una sola llamada a la herramienta que maneja la representación de JavaScript y el acceso respaldado por proxy directamente, sin truncación ni un backend de automatización de navegador separado.
Q: ¿Esta integración utiliza la recopilación a nivel de sitio de Nstproxy Crawl, o solo páginas individuales?
El complemento en esta guía llama al punto final scrape de una sola página de Crawl. La recopilación a nivel de sitio es un punto final separado (POST /api/v1/crawl) que requiere límites explícitos de maxDepth y maxPages — añada esos límites deliberadamente si extiende el complemento para rastrear un sitio completo, ya que un agente autónomo no tiene un sentido incorporado de cuándo una recopilación ha ido lo suficientemente lejos.
Q: ¿Dónde pongo mi clave API de Nstproxy?
En una variable de entorno (NSTPROXY_API_KEY en el ejemplo de esta guía), leída en tiempo de ejecución con os.environ.get(). Nunca la escriba directamente en plugin.yaml, __init__.py o cualquier archivo que pueda acabar en el control de versiones o en una configuración compartida de Hermes.
Q: ¿Puede Hermes Agent llamar a Nstproxy Crawl a través de MCP en lugar de un complemento?
Hermes sí admite conectar cualquier servidor MCP a través de ~/.hermes/config.yaml, pero Nstproxy Crawl se expone como una API REST y no como un servidor MCP publicado, por lo que un complemento que registre una herramienta personalizada — el enfoque en esta guía — es el camino de integración directa hoy en día. Un envoltura MCP en torno a la misma API REST también funcionaría, si prefiere estandarizar en MCP a través de múltiples agentes.
Q: ¿Qué sucede si la solicitud de recopilación falla o se agota el tiempo?
El controlador en esta guía verifica explícitamente los campos err y success del sobre de respuesta y devuelve un objeto de fallo en JSON en lugar de generar una excepción, ya que Hermes espera que cada controlador de herramienta devuelva una cadena JSON. Una versión de producción también debería capturar errores a nivel de red como requests.Timeout y requests.ConnectionError de la misma manera, para que una única recuperación fallida no cierre el bucle de llamadas a herramientas del agente.
Q: ¿Esto reemplaza completamente las herramientas de automatización del navegador de Hermes?
No. browser_navigate y browser_snapshot siguen siendo la elección correcta para tareas que necesitan hacer clic, desplazarse, llenar un formulario o interactuar con una página de otra manera en lugar de solo leerla. El complemento Nstproxy Crawl es un camino más rápido y barato específicamente para "leer el contenido de esta página", que cubre una gran parte de lo que se utiliza en práctica las herramientas web de un agente.
Hermes Agent es el agente de IA de código abierto y autohospedado de Nous Research. Aquí está lo que hace, dónde sus herramientas web integradas alcanzan límites reales y cómo darle acceso a páginas con renderizado JS y respaldo de proxy con un breve plugin Nstproxy Crawl.
Lena Zhou
Aug. 24th 2026
110M+ IP reales con 99.9% de acceso exitoso
Respuesta media ultrarrapida ~0.5s para tareas de alta concurrencia
Desde solo $0.1/GB
Acceso inmediato a pools premium de proxies residenciales, datacenter, IPv6 e ISP.