Search
На этой странице
Hermes Agent включает три веб-инструмента на базе нескольких провайдеров:
web_search— поиск в интернете с ранжированными результатамиweb_extract— получение и извлечение читаемого содержимого из одного или нескольких URLweb_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.
Приоритет (для каждой возможности):
web.search_backend/web.extract_backend(явное указание для возможности)web.backend(общий запасной вариант)- Автоопределение из переменных окружения
Автоопределение¶
Если бэкенд явно не настроен, 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-search¶
Для агентов, которым необходимо использовать SearXNG напрямую через curl (например, в качестве запасного варианта, когда набор веб-инструментов недоступен), установите опциональный навык searxng-search:
[code] hermes skills install official/research/searxng-search
[/code]
Это добавит навык, который обучает агента:
- Вызывать JSON API SearXNG через
curlили Python - Фильтровать по категориям (
general,news,scienceи т.д.) - Обрабатывать пагинацию и ошибки
-
Корректно завершать работу, когда SearXNG недоступен
- Настройка
- Быстрая настройка через
hermes tools - Firecrawl (по умолчанию)
- SearXNG (бесплатно, самостоятельный хостинг)
- Tavily
- Exa
- Parallel
- Конфигурация
- Единый бэкенд
- Конфигурация по возможностям
- Автоопределение
- Проверка настройки
- Устранение неполадок
web_searchвозвращает{"success": false}web_extractсообщает "search-only backend"- SearXNG возвращает 0 результатов
- Ограничение запросов на публичном экземпляре
- Опциональный навык:
searxng-search