Поиск — входная точка любого исследования. Research Agent работает с шестью провайдерами и умеет мультиплексировать запросы между ними с автоматическим фоллбеком: недоступность одного сервиса не останавливает исследование.
Шесть провайдеров
- Serper — поиск через Google, API-ключ;
- Keenable — API-ключ;
- Brave — API-ключ;
- Tavily — API-ключ, возвращает и готовый AI-ответ;
- DuckDuckGo — работает без ключа;
- SearXNG — self-hosted метапоисковик, подключается своим base URL.
Настройка
Провайдеры настраиваются в разделе Services веб-интерфейса — по одному сервису-инстансу на каждого. API-ключи Serper, Keenable, Brave и Tavily задаются там же, SearXNG — base URL собственного инстанса. Переменных окружения для ключей нет. Каждый сервис можно протестировать прямо из интерфейса и задать приоритет для фоллбека. Подробнее — в разделе Сервисы и модели.
Поисковые сессии
Поиск выполняется сессиями: запросы уходят пакетом, статусы обновляются в реальном времени. Раздел Search показывает список сессий с фильтрацией и пагинацией, статусы (Pending, Running, Completed, Failed) и результаты каждой сессии. Результаты можно фильтровать по релевантности перед скачиванием — позиция в выдаче ещё не значит полезность, ссылки выбираются по заголовку и сниппету.
Фоллбек
Запросы мультиплексируются между провайдерами: при ошибке или недоступности система автоматически переходит к следующему сервису по приоритету. Одна тема спокойно ищется на нескольких провайдерах сразу — для покрытия выдачи.
Доступ внешних агентов
Поиск доступен и снаружи — например, из Pastukhov Agent другого проекта: POST /api/agent/search с заголовком X-API-Key (переменная RESEARCH_AGENT_API_KEY). Без ключа API возвращает 503. Подробнее — в разделе Интеграция с Pastukhov Agent.