Перейти к содержанию

Search

На этой странице

Hermes Agent включает три веб-инструмента на базе нескольких провайдеров:

  • web_search — поиск в интернете с ранжированными результатами
  • web_extract — получение и извлечение читаемого содержимого из одного или нескольких URL
  • web_crawl — рекурсивный обход сайта с возвратом структурированного содержимого

Все три инструмента настраиваются через единый выбор бэкенда. Провайдеры выбираются через hermes tools или задаются напрямую в config.yaml.

Бэкенды​

Провайдер Переменная окружения Поиск Извлечение Обход Бесплатный тариф
Firecrawl (по умолчанию) FIRECRAWL_API_KEY ✔ ✔ ✔ 500 кредитов/мес
SearXNG SEARXNG_URL ✔ — — ✔ Бесплатно (самостоятельный хостинг)
Tavily TAVILY_API_KEY ✔ ✔ ✔ 1 000 поисков/мес
Exa EXA_API_KEY ✔ ✔ — 1 000 поисков/мес
Parallel PARALLEL_API_KEY ✔ ✔ — Платный

Разделение по возможностям: вы можете использовать разных провайдеров для поиска и извлечения независимо — например, SearXNG (бесплатно) для поиска и Firecrawl для извлечения. См. Конфигурация по возможностям ниже.

Подписчики Nous

Если у вас есть платная подписка Nous Portal, веб-поиск и извлечение доступны через Tool Gateway через управляемый Firecrawl — без необходимости API-ключа. Запустите hermes tools, чтобы включить.


Настройка​

Быстрая настройка через hermes tools​

Запустите hermes tools, перейдите в Web Search & Extract и выберите провайдера. Мастер запросит необходимый URL или API-ключ и запишет его в вашу конфигурацию.

[code] hermes tools

[/code]


Firecrawl (по умолчанию)​

Полнофункциональный поиск, извлечение и обход. Рекомендуется для большинства пользователей.

[code] # ~/.hermes/.env
FIRECRAWL_API_KEY=fc-your-key-here

[/code]

Получите ключ на firecrawl.dev. Бесплатный тариф включает 500 кредитов/месяц.

Самостоятельный хостинг Firecrawl: укажите на свой собственный экземпляр вместо облачного API:

[code] # ~/.hermes/.env
FIRECRAWL_API_URL=http://localhost:3002

[/code]

Когда FIRECRAWL_API_URL задан, API-ключ опционален (отключите аутентификацию сервера с помощью USE_DB_AUTHENTICATION=false).


SearXNG (бесплатно, самостоятельный хостинг)​

SearXNG — это уважающий конфиденциальность мета-поисковик с открытым исходным кодом, который агрегирует результаты из 70+ поисковых систем. API-ключ не требуется — просто укажите Hermes на работающий экземпляр SearXNG.

SearXNG — только для поиска — web_extract и web_crawl требуют отдельного провайдера для извлечения.

Вариант A — Самостоятельный хостинг с Docker (рекомендуется)​

Это даёт вам приватный экземпляр без ограничений на количество запросов.

1. Создайте рабочую директорию:

[code] mkdir -p ~/searxng/searxng
cd ~/searxng

[/code]

2. Напишите docker-compose.yml:

[code] # ~/searxng/docker-compose.yml
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8888:8080"
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://localhost:8888/
restart: unless-stopped

[/code]

3. Запустите контейнер:

[code] docker compose up -d

[/code]

4. Включите формат JSON API:

SearXNG поставляется с отключённым выводом JSON по умолчанию. Скопируйте сгенерированную конфигурацию и включите его:

[code] # Скопируйте автоматически сгенерированную конфигурацию из контейнера
docker cp searxng:/etc/searxng/settings.yml ~/searxng/searxng/settings.yml

[/code]

Откройте ~/searxng/searxng/settings.yml и найдите блок formats (около строки 84):

[code] # До (по умолчанию — JSON отключён):
formats:
- html

# После (включить JSON для Hermes):  
formats:  
  - html  
  - json

[/code]

5. Перезапустите для применения изменений:

[code] docker cp ~/searxng/searxng/settings.yml searxng:/etc/searxng/settings.yml
docker restart searxng

[/code]

6. Проверьте, что всё работает:

[code] curl -s "http://localhost:8888/search?q=test&format=json" | python3 -c \ "import sys,json; d=json.load(sys.stdin); print(f'{len(d[\"results\"])} results')"

[/code]

Вы должны увидеть что-то вроде 10 results. Если вы получили 403 Forbidden, значит формат JSON всё ещё отключён — перепроверьте шаг 4.

7. Настройте Hermes:

[code] # ~/.hermes/config.yaml
SEARXNG_URL: http://localhost:8888

[/code]

Или установите через hermes tools → Web Search & Extract → SearXNG.


Вариант B — Использование публичного экземпляра​

Публичные экземпляры SearXNG перечислены на searx.space. Отфильтруйте по экземплярам, у которых включён формат JSON (показано в таблице).

[code] # ~/.hermes/config.yaml
SEARXNG_URL: https://searx.example.com

[/code]

Публичные экземпляры

Публичные экземпляры имеют ограничения на количество запросов, нестабильное время работы и могут в любой момент отключить формат JSON. Для production-использования настоятельно рекомендуется самостоятельный хостинг.


Совмещение SearXNG с провайдером извлечения​

SearXNG обрабатывает поиск; вам нужен отдельный провайдер для web_extract и web_crawl. Используйте ключи для разделения по возможностям:

[code] # ~/.hermes/config.yaml
web:
search_backend: "searxng"
extract_backend: "firecrawl" # или tavily, exa, parallel

[/code]

С такой конфигурацией Hermes использует SearXNG для всех поисковых запросов и Firecrawl для извлечения URL — сочетая бесплатный поиск с качественным извлечением.


Tavily​

Оптимизированный для ИИ поиск, извлечение и обход с щедрым бесплатным тарифом.

[code] # ~/.hermes/.env
TAVILY_API_KEY=tvly-your-key-here

[/code]

Получите ключ на app.tavily.com. Бесплатный тариф включает 1 000 поисков/месяц.


Exa​

Нейронный поиск с семантическим пониманием. Хорош для исследований и поиска концептуально связанного контента.

[code] # ~/.hermes/.env
EXA_API_KEY=your-exa-key-here

[/code]

Получите ключ на exa.ai. Бесплатный тариф включает 1 000 поисков/месяц.


Parallel​

ИИ-ориентированный поиск и извлечение с возможностями глубокого исследования.

[code] # ~/.hermes/.env
PARALLEL_API_KEY=your-parallel-key-here

[/code]

Получите доступ на parallel.ai.


Конфигурация​

Единый бэкенд​

Установите одного провайдера для всех веб-возможностей:

[code] # ~/.hermes/config.yaml
web:
backend: "searxng" # firecrawl | searxng | tavily | exa | parallel

[/code]

Конфигурация по возможностям​

Используйте разных провайдеров для поиска и извлечения. Это позволяет сочетать бесплатный поиск (SearXNG) с платным провайдером извлечения или наоборот:

[code] # ~/.hermes/config.yaml
web:
search_backend: "searxng" # используется web_search
extract_backend: "firecrawl" # используется web_extract и web_crawl

[/code]

Когда ключи для отдельных возможностей пусты, они переходят к web.backend. Когда web.backend также пуст, бэкенд определяется автоматически по наличию API-ключа/URL.

Приоритет (для каждой возможности):

  1. web.search_backend / web.extract_backend (явное указание для возможности)
  2. web.backend (общий запасной вариант)
  3. Автоопределение из переменных окружения

Автоопределение​

Если бэкенд явно не настроен, Hermes выбирает первый доступный на основе того, какие учётные данные заданы:

Наличие учётных данных Автоматически выбранный бэкенд
FIRECRAWL_API_KEY или FIRECRAWL_API_URL firecrawl
PARALLEL_API_KEY parallel
TAVILY_API_KEY tavily
EXA_API_KEY exa
SEARXNG_URL searxng

Проверка настройки​

Запустите hermes setup, чтобы увидеть, какой веб-бэкенд обнаружен:

[code] ✅ Web Search & Extract (searxng)

[/code]

Или проверьте через CLI:

[code] # Активируйте venv и запустите модуль веб-инструментов напрямую
source ~/.hermes/hermes-agent/.venv/bin/activate
python -m tools.web_tools

[/code]

Это выведет активный бэкенд и его статус:

[code] ✅ Web backend: searxng
Using SearXNG (search only): http://localhost:8888

[/code]


Устранение неполадок​

web_search возвращает {"success": false}​

  • Проверьте доступность SEARXNG_URL: curl -s "http://localhost:8888/search?q=test&format=json"
  • Если вы получаете HTTP 403, значит формат JSON отключён — добавьте json в список formats в settings.yml и перезапустите
  • Если вы получаете ошибку соединения, контейнер может не работать: docker ps | grep searxng

web_extract сообщает "search-only backend"​

SearXNG не может извлекать содержимое URL. Установите web.extract_backend на провайдера, поддерживающего извлечение:

[code] web:
search_backend: "searxng"
extract_backend: "firecrawl" # или tavily / exa / parallel

[/code]

SearXNG возвращает 0 результатов​

Некоторые публичные экземпляры отключают определённые поисковые системы или категории. Попробуйте:

  • Другой запрос
  • Другой публичный экземпляр с searx.space
  • Самостоятельный хостинг своего экземпляра для надёжных результатов

Ограничение запросов на публичном экземпляре​

Переключитесь на собственный экземпляр (см. Вариант A выше). С Docker ваш собственный экземпляр не имеет ограничений на количество запросов.


Для агентов, которым необходимо использовать SearXNG напрямую через curl (например, в качестве запасного варианта, когда набор веб-инструментов недоступен), установите опциональный навык searxng-search:

[code] hermes skills install official/research/searxng-search

[/code]

Это добавит навык, который обучает агента: