Агент Hermes: что это такое и как его использовать с Nstproxy Crawl
TL;DR
Hermes Agent — это самодостаточный AI-агент с открытым исходным кодом и лицензией MIT от Nous Research — терминальное и настольное приложение с постоянной памятью, системой саморазвивающихся навыков и поддержкой Telegram, Discord, Slack, WhatsApp, Signal и CLI.
Он поставляется с более чем 70 встроенными инструментами, включая web_search и web_extract, и может быть расширен двумя способами: подключив сервер MCP или написав плагин, который регистрирует пользовательский инструмент с помощью ctx.register_tool().
Встроенный инструмент web_extract в Hermes возвращает Markdown, но применяет жесткую обрезку по количеству символов и не документирован для рендеринга JavaScript; его путь browser_navigate/browser_snapshot может добавить обработку прокси и анти-ботов, но только через платный облачный браузер типа Browserbase и многошаговый цикл взаимодействия с деревом доступности.
Подключение Nstproxy Crawl в качестве плагина Hermes дает агенту единственный вызов инструмента, который рендерит JavaScript, разрешает через собственный пул прокси Nstproxy и возвращает чистый Markdown или JSON — без отдельной подписки на автоматизацию браузера.
Интеграция — это плагин Hermes длиной ~40 строк: манифест plugin.yaml, функция register(ctx) и обработчик, который отправляет POST-запрос на /api/v1/crawl/scrape Nstproxy Crawl и возвращает разобранный Markdown.
Nstproxy Crawl начисляет плату за успешные выборки (включая ответы 404/403), а обходы на уровне сайта требуют четких границ maxDepth/maxPages — оба параметра важны, когда агент вызывает инструмент автономно, а не человек запускает один запрос за раз.
Попробуйте Nstproxy - Начните бесплатный тест сегодня
Что такое Hermes Agent
Hermes Agent — это AI-агент с открытым исходным кодом и лицензией MIT, разработанный Nous Research, который распространяется в виде терминального приложения и родного настольного приложения для macOS и Windows. Установка производится с помощью одного скрипта (curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash на Linux/macOS/WSL2/Termux или однострочной команды PowerShell на Windows), и установщик включает Python 3.11, Node.js, ripgrep и ffmpeg, так что агент имеет рабочую среду сразу из коробки. Его определяющая черта — это цикл обучения: README проекта описывает агента, который "создает навыки на основе опыта, улучшает их во время использования" и ищет свою историю прошлых разговоров, а не начинает каждый сеанс с нуля.
Доступ к моделям не зависит от провайдера — hermes model переключается между собственным порталом Nous Research, OpenRouter, OpenAI или пользовательским конечным пунктом без изменения кода — и агент достигает пользователей через Telegram, Discord, Slack, WhatsApp, Signal, email или простую CLI-сессию. Внутри Hermes поставляется с более чем 70 встроенными инструментами, сгруппированными в наборы инструментов (автоматизация браузера, доступ к файлам и терминалу, веб-поиск и извлечение, зрение, генерация изображений, домашняя автоматизация и многое другое), настраиваемыми для каждой платформы с помощью команды hermes tools.
Почему стоит расширить его с помощью Nstproxy Crawl
Собственные веб-инструменты Hermes хорошо покрывают общие случаи, но имеют задокументированные ограничения, о которых стоит знать, прежде чем строить рабочий процесс вокруг них. Встроенный инструмент web_extract получает URL и возвращает Markdown, но в документации Nous Research описан фиксированный лимит символов на результат — примерно 15 000 символов по умолчанию, разделенные на "~75% заголовок / 25% хвост" с явным подвалом [TRUNCATED], как только страница превышает это — и те же документы указывают на страницы с тяжелым JS, которые "возвращают мало контента", к browser_navigate плюс browser_snapshot. Этот браузерный путь работает, но это совершенно другой тип инструмента: он открывает реальную сессию браузера, возвращает снимок дерева доступности с пронумерованными интерактивными элементами и требует сервера с поддержкой CDP (локальный Chrome или облачный вариант, такой как Browserbase) для работы — и обработка прокси или анти-ботов на этом пути является функцией платного уровня облачного браузера, а не тем, что сам по себе предоставляет web_extract.
Nstproxy Crawl заполняет пробел между этими двумя инструментами третьим типом: один API-запрос, который рендерит JavaScript, маршрутизируется через собственный пул прокси Nstproxy с обработкой отпечатков браузера и возвращает чистый Markdown, HTML или JSON — ближе к тому, что web_extract уже возвращает модели, но без поведения обрезки по умолчанию или пробела рендеринга JS и без необходимости отдельной подписки на облачный браузер для покрытия прокси.
Быстрый взгляд
Когда страница, которую агент должен прочитать, содержит много JS или находится за защитой от ботов, Nstproxy Crawl превращает ее в чистый Markdown или JSON за один вызов API с поддержкой прокси — не требуется отдельный бекенд автоматизации браузера.
Установленный Hermes Agent, доступный через hermes в вашем PATH, с уже настроенным бэкендом модели через hermes model.
Аккаунт Nstproxy и ключ API для Crawl, хранящийся в переменной окружения, а не закодированный в каком-либо файле.
Python 3.11, который уже входит в пакет установки Hermes.
Знание редактирования YAML и Python — плагин ниже короткий, но вам нужно будет адаптировать описание инструмента и параметры к вашему рабочему процессу.
Установка
Плагины Hermes находятся в ~/.hermes/plugins/<plugin-name>/. Создайте каталог и три файла, необходимые для плагина:
mkdir-p ~/.hermes/plugins/nstproxy-crawl
cd ~/.hermes/plugins/nstproxy-crawl
touch plugin.yaml __init__.py
Настройка
Объявите метаданные плагина в plugin.yaml:
name: nstproxy-crawl
version:"1.0"description: Получите URL как чистый Markdown через Nstproxy Crawl, с рендерингом JS и доступом с поддержкой прокси.
Установите ключ API Nstproxy как переменную окружения, а не записывайте его в какой-либо файле плагина — плагины Hermes работают как обычный Python, так что os.environ доступен им так же, как любому скрипту:
exportNSTPROXY_API_KEY="ваш-ключ-api-здесь"
Реальная рукопожатие
Зарегистрируйте инструмент внутри __init__.py, следуя документированной схемы плагинов Hermes — функция register(ctx), которая вызывает ctx.register_tool() с схемой и обработчиком:
import json
import os
import requests
NSTPROXY_API_BASE ="https://api.nstproxy.com"defregister(ctx): schema ={"name":"nstproxy_crawl_scrape","description":("Получите URL и верните чистый Markdown, рендеря JavaScript и ""перенаправляя через прокси-пул Nstproxy. Используйте это для страниц, для которых ""web_extract возвращает мало содержимого, или которые нуждаются в доступе с поддержкой прокси."),"parameters":{"type":"object","properties":{"url":{"type":"string","description":"URL для получения и преобразования в 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":"url is required"}) api_key = os.environ.get("NSTPROXY_API_KEY")ifnot api_key:return json.dumps({"success":False,"error":"NSTPROXY_API_KEY is not set"}) 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","request failed")}) result = envelope.get("data",{})ifnot result.get("success"):return json.dumps({"success":False,"error": result.get("status","crawl did not complete")}) 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,)
Два момента здесь важны, оба извлечены из документации по API Nstproxy и плейбука: ответ вложен — верхний уровень err/code/msg оборачивает внутренний объект success/status, который сам оборачивает фактический груз data.markdown — и HTTP 200 только подтверждает, что запрос был получен, а не то, что обход завершился успешно, поэтому обработчик явно проверяет err и success, а не доверяет только коду статуса.
Присоедините инструмент
Включите новый инструмент тем же способом, как вы включаете любой встроенный:
hermes tools
Выберите nstproxy_crawl из интерактивного списка (или передайте его напрямую с помощью hermes chat --toolsets "web,nstproxy_crawl"), и модель получит доступ к nstproxy_crawl_scrape вместе со своими существующими инструментами на остальную часть сеанса.
Пример сработы
Вот логика разбора обработчика, проверенная против документации по ответу Nstproxy Crawl — запущенная против локального фикстуры, который обслуживает эту точную JSON-структуру, поскольку эта среда не имеет действительного ключа API Nstproxy для вызова реальной конечной точки:
{"success":true,"title":"Карьерные возможности в Example Corp","markdown":"# Страница карьер в Example\n\nМы нанимаем старшего Backend-инженера на удаленную работу - США.\n\n[Подайте заявку здесь](https://example.com/jobs/8077887)"}
Это соответствует той же вложенной структуре err / data.success / data.data.markdown, которую описывает документация по живому API Nstproxy, подтверждая логику распаковки в обработчике плагина перед тем, как направить его на реальный ключ API.
Возвращенный вывод
Как только инструмент активирован, запрос на естественном языке, например, "читайте страницу карьер на nstproxy.com и подведите итоги открытым инженерным ролям", предоставляет модели вызов nstproxy_crawl_scrape, и инструмент возвращает строку JSON с полями success, title и markdown — той же структуры, что показана выше. Цикл вызова инструментов Hermes читает этот Markdown так же, как он читает вывод web_extract, поэтому изменения в том, как агент размышляет о результате, не требуются; разница полностью заключается в том, что может обрабатывать внутренний вызов.
Ограничения
Вышеупомянутый плагин получает одну страницу за вызов — он не устанавливает maxDepth или maxPages, поскольку эти параметры применяются только к конечной точке обхода на уровне сайта Nstproxy Crawl (POST /api/v1/crawl), а не к одностраничной конечной точке scrape, используемой здесь. Если вы расширите этот плагин для вызова конечной точки на уровне сайта, установите эти границы явно: необратимый обход сайта, запускаемый автономно агентом, может заблуждать в поисковых результатах, при переходе по страницам или на страницах входа без человека, чтобы заметить.
Nstproxy Crawl выставляет счет за каждую успешную выборку, а не за каждую попытку — ответ, который возвращается с действительным кодом состояния, включая 404 или 403, оплачивается один раз, поскольку выборка сама по себе была успешной, даже если страница не была. Это различие имеет большее значение, когда агент вызывает инструмент по своему расписанию, чем для одноразового ручного запроса, поскольку плохой URL, подаваемый агенту в цикле, все равно считается против использования. Повторно проверьте текущее ценовое предложение Crawla перед тем, как полагаться на конкретную цифру, поскольку она меняется, и смотрите справочник API Crawla для полной схемы запроса/ответа, на которой основан этот плагин, включая конечную точку обхода на уровне сайта и её параметры maxDepth/maxPages. Объявление о запуске Nstproxy Crawl охватывает более полный набор функций, если эта интеграция вырастет за рамки одностраничных выборок.
Обработчик также предполагает, что API Crawl отвечает в пределах своего таймаута 60 секунд; медленная или насыщенная JS страница может превысить это, в этом случае инструмент должен вернуть явный сбой, а не позволять запросу зависать — производственные версии этого плагина должны явно обрабатывать requests.Timeout, а не позволять ему распространиться как необработанное исключение, поскольку Hermes ожидает, что обработчики инструментов всегда возвращают строку JSON.
Заключение
Встроенные веб-инструменты агента Hermes охватывают большинство случаев, но сокращенный результат web_extract или сессия browser_navigate, которой нужна платная облачная браузерная поддержка для прокси, — это реальные границы, с которыми вы в конечном итоге столкнетесь. Небольшой плагин — один манифест plugin.yaml и функция register(ctx), оборачивающая один HTTP-вызов к конечной точке scrape Nstproxy Crawl — устраняет этот разрыв с помощью одного вызова, поддерживаемого прокси и рендеринга JavaScript, который возвращает тот же вид Markdown, который агент уже знает, как читать. Держите ключ API в переменной окружения, ограничьте любое добавленное позже обход на уровне сайта явными ограничениями по странице и глубине, и интеграция вписывается в существующий цикл вызова инструментов Hermes без изменения способа, которым агент размышляет о своих результатах.
Часто задаваемые вопросы
В: Что такое агент Hermes?
Агент Hermes — это агент ИИ с открытым исходным кодом, лицензированный MIT, который работает на собственном хостинге и разработан компанией Nous Research. Он работает как терминальное приложение и нативное десктопное приложение, поддерживает Telegram, Discord, Slack, WhatsApp и Signal, а также простое использование через CLI и построен вокруг системы самосовершенствующихся навыков с постоянной памятью между сессиями.
В: Нужно ли использовать Nous Portal для работы с Агентом Hermes?
Нет. hermes model переключается между бэкендами — Nous Portal, OpenRouter, OpenAI или пользовательским конечным пунктом — без изменения кода, поэтому Nous Portal является одним из нескольких вариантов, а не обязательным требованием.
В: Почему бы просто не использовать встроенный инструмент web_extract от Hermes? web_extract хорошо работает с обычными страницами, но документация компании Nous Research описывает стандартное ограничение по объему ~15,000 символов на его выходе и отмечает, что страницы с большим количеством JS, которые возвращают мало контента, вместо этого должны использовать browser_navigate/browser_snapshot. Плагин Nstproxy Crawl дает агенту один вызов инструмента, который обрабатывает рендеринг JavaScript и доступ через прокси непосредственно, без ограничений и отдельного бэкенда для автоматизации браузера.
В: Использует ли эта интеграция ползучесть на уровне сайта Nstproxy Crawl или только отдельные страницы?
Плагин в этом руководстве вызывает конечный пункт scrape для одной страницы Crawl. Ползучесть на уровне сайта — это отдельный конечный пункт (POST /api/v1/crawl), который требует явных ограничений maxDepth и maxPages — добавьте эти ограничения намеренно, если вы расширите плагин для обхода всего сайта, так как автономный агент не имеет встроенного понимания того, когда обход достиг достаточной глубины.
В: Где мне поместить мой API-ключ Nstproxy?
В переменной окружения (NSTPROXY_API_KEY в примере этого руководства), считываемой во время выполнения с помощью os.environ.get(). Никогда не записывайте его напрямую в plugin.yaml, __init__.py или любой файл, который может оказаться под контролем версий или в общей конфигурации Hermes.
В: Может ли Агент Hermes вызывать Nstproxy Crawl через MCP вместо плагина?
Hermes поддерживает подключение любого сервера MCP через ~/.hermes/config.yaml, но Nstproxy Crawl доступен в виде REST API, а не как опубликованный сервер MCP, поэтому регистрация плагина с пользовательским инструментом — подход в этом руководстве — является прямым путем интеграции на сегодняшний день. Обертка MCP вокруг того же REST API также сработает, если вы хотите стандартизироваться на MCP для нескольких агентов.
В: Что происходит, если запрос на обход неудачен или истекает по времени?
Обработчик в этом руководстве проверяет поля err и success в конверте ответа явно и возвращает объект JSON с ошибкой, а не вызывает исключение, так как Hermes ожидает, что каждый обработчик инструмента будет возвращать строку JSON. Версия для продакшна также должна обрабатывать сетевые ошибки, такие как requests.Timeout и requests.ConnectionError, так же, чтобы один неудачный вызов не приводил к сбою цикла вызова инструментов агента.
В: Заменяет ли это полностью инструменты автоматизации браузера Hermes?
Нет. browser_navigate и browser_snapshot по-прежнему являются правильным выбором для задач, которые требуют нажатия, прокрутки, заполнения формы или взаимодействия со страницей, а не просто чтения ее. Плагин Nstproxy Crawl является более быстрым, дешевым путем специально для "чтения содержимого этой страницы", что охватывает большую часть того, для чего на практике используются веб-инструменты агента.
Hermes Agent — это открытый, самостоятельно размещаемый ИИ-агент от Nous Research. Вот что он делает, где его встроенные веб-инструменты сталкиваются с реальными ограничениями и как предоставить ему доступ к рендерингу на JS, с прокси-поддержкой страниц с помощью короткого плагина Nstproxy Crawl.
Lena Zhou
Aug. 24th 2026
110M+ реальных IP с 99.9% успешных доступов
Средний отклик ~0.5с для задач высокой конкуренции
Всего от $0.1/GB
Мгновенный доступ к премиальным residential, datacenter, IPv6 и ISP пулам.