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

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]

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