Веб-инструменты

OpenClaw поставляется с двумя легковесными веб-инструментами:

  • web_search — Поиск в интернете через Brave Search API (по умолчанию) или Perplexity Sonar (напрямую или через OpenRouter).
  • web_fetch — HTTP получение + извлечение читаемого контента (HTML → markdown/text).

Это не автоматизация браузера. Для сайтов с большим количеством JS или входов используйте Инструмент браузера.

Как это работает

  • web_search вызывает вашего настроенного провайдера и возвращает результаты.
    • Brave (по умолчанию): возвращает структурированные результаты (заголовок, URL, сниппет).
    • Perplexity: возвращает AI-синтезированные ответы с цитатами из поиска в реальном времени.
  • Результаты кэшируются по запросу на 15 минут (настраивается).
  • web_fetch выполняет простой HTTP GET и извлекает читаемый контент (HTML → markdown/text). Он не выполняет JavaScript.
  • web_fetch включён по умолчанию (если явно не отключён).

Выбор провайдера поиска

ПровайдерПлюсыМинусыAPI-ключ
Brave (по умолчанию)Быстро, структурированные результаты, бесплатный уровеньТрадиционные результаты поискаBRAVE_API_KEY
PerplexityAI-синтезированные ответы, цитаты, реальное времяТребуется доступ Perplexity или OpenRouterOPENROUTER_API_KEY или PERPLEXITY_API_KEY

См. Настройка Brave Search и Perplexity Sonar для деталей, специфичных для провайдера.

Установите провайдера в конфигурации:

\{
  tools: \{
    web: \{
      search: \{
        provider: "brave"  // или "perplexity"
      \}
    \}
  \}
\}

Пример: переключение на Perplexity Sonar (прямой API):

\{
  tools: \{
    web: \{
      search: \{
        provider: "perplexity",
        perplexity: \{
          apiKey: "pplx-...",
          baseUrl: "https://api.perplexity.ai",
          model: "perplexity/sonar-pro"
        \}
      \}
    \}
  \}
\}

Получение API-ключа Brave

  1. Создайте учётную запись Brave Search API на https://brave.com/search/api/
  2. В панели управления выберите план Data for Search (не "Data for AI") и создайте API-ключ.
  3. Запустите openclaw configure --section web для сохранения ключа в конфигурации (рекомендуется), или установите BRAVE_API_KEY в вашем окружении.

Brave предоставляет бесплатный уровень плюс платные планы; проверьте портал Brave API для текущих лимитов и цен.

Где установить ключ (рекомендуется)

Рекомендуется: запустите openclaw configure --section web. Он сохраняет ключ в ~/.openclaw/openclaw.json под tools.web.search.apiKey.

Альтернатива через окружение: установите BRAVE_API_KEY в окружении процесса Gateway. Для установки шлюза поместите его в ~/.openclaw/.env (или окружение вашего сервиса). См. Переменные окружения.

Использование Perplexity (напрямую или через OpenRouter)

Модели Perplexity Sonar имеют встроенные возможности веб-поиска и возвращают AI-синтезированные ответы с цитатами. Вы можете использовать их через OpenRouter (кредитная карта не требуется - поддерживает криптовалюту/предоплату).

Получение API-ключа OpenRouter

  1. Создайте учётную запись на https://openrouter.ai/
  2. Добавьте кредиты (поддерживает криптовалюту, предоплату или кредитную карту)
  3. Создайте API-ключ в настройках вашей учётной записи

Настройка поиска Perplexity

\{
  tools: \{
    web: \{
      search: \{
        enabled: true,
        provider: "perplexity",
        perplexity: \{
          // API-ключ (опционально, если установлен OPENROUTER_API_KEY или PERPLEXITY_API_KEY)
          apiKey: "sk-or-v1-...",
          // Base URL (по умолчанию с учётом ключа, если опущен)
          baseUrl: "https://openrouter.ai/api/v1",
          // Модель (по умолчанию perplexity/sonar-pro)
          model: "perplexity/sonar-pro"
        \}
      \}
    \}
  \}
\}

Альтернатива через окружение: установите OPENROUTER_API_KEY или PERPLEXITY_API_KEY в окружении Gateway. Для установки шлюза поместите его в ~/.openclaw/.env.

Если base URL не установлен, OpenClaw выбирает значение по умолчанию на основе источника API-ключа:

  • PERPLEXITY_API_KEY или pplx-...https://api.perplexity.ai
  • OPENROUTER_API_KEY или sk-or-...https://openrouter.ai/api/v1
  • Неизвестные форматы ключей → OpenRouter (безопасный резервный вариант)

Доступные модели Perplexity

МодельОписаниеЛучше всего для
perplexity/sonarБыстрые Q&A с веб-поискомБыстрые запросы
perplexity/sonar-pro (по умолчанию)Многошаговое рассуждение с веб-поискомСложные вопросы
perplexity/sonar-reasoning-proАнализ цепочки мыслейГлубокое исследование

Поиск в интернете с использованием вашего настроенного провайдера.

Требования

  • tools.web.search.enabled не должен быть false (по умолчанию: включено)
  • API-ключ для вашего выбранного провайдера:
    • Brave: BRAVE_API_KEY или tools.web.search.apiKey
    • Perplexity: OPENROUTER_API_KEY, PERPLEXITY_API_KEY или tools.web.search.perplexity.apiKey

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

\{
  tools: \{
    web: \{
      search: \{
        enabled: true,
        apiKey: "BRAVE_API_KEY_HERE", // опционально, если установлен BRAVE_API_KEY
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15
      \}
    \}
  \}
\}

Параметры инструмента

  • query (обязательно)
  • count (1–10; по умолчанию из конфигурации)
  • country (опционально): 2-буквенный код страны для результатов для конкретного региона (например, "DE", "US", "ALL"). Если опущено, Brave выбирает свой регион по умолчанию.
  • search_lang (опционально): код языка ISO для результатов поиска (например, "de", "en", "fr")
  • ui_lang (опционально): код языка ISO для элементов UI
  • freshness (опционально, только Brave): фильтр по времени обнаружения (pd, pw, pm, py или YYYY-MM-DDtoYYYY-MM-DD)

Примеры:

// Поиск для Германии
await web_search({
  query: "TV online schauen",
  count: 10,
  country: "DE",
  search_lang: "de"
});

// Французский поиск с французским UI
await web_search({
  query: "actualités",
  country: "FR",
  search_lang: "fr",
  ui_lang: "fr"
});

// Недавние результаты (прошлая неделя)
await web_search({
  query: "TMBG interview",
  freshness: "pw"
});

web_fetch

Получить URL и извлечь читаемый контент.

Требования

  • tools.web.fetch.enabled не должен быть false (по умолчанию: включено)
  • Опциональный резервный вариант Firecrawl: установите tools.web.fetch.firecrawl.apiKey или FIRECRAWL_API_KEY.

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

\{
  tools: \{
    web: \{
      fetch: \{
        enabled: true,
        maxChars: 50000,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
        maxRedirects: 3,
        userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
        readability: true,
        firecrawl: \{
          enabled: true,
          apiKey: "FIRECRAWL_API_KEY_HERE", // опционально, если установлен FIRECRAWL_API_KEY
          baseUrl: "https://api.firecrawl.dev",
          onlyMainContent: true,
          maxAgeMs: 86400000, // мс (1 день)
          timeoutSeconds: 60
        \}
      \}
    \}
  \}
\}

Параметры инструмента

  • url (обязательно, только http/https)
  • extractMode (markdown | text)
  • maxChars (обрезать длинные страницы)

Примечания:

  • web_fetch использует Readability (извлечение основного контента) сначала, затем Firecrawl (если настроено). Если оба не работают, инструмент возвращает ошибку.
  • Запросы Firecrawl используют режим обхода ботов и кэшируют результаты по умолчанию.
  • web_fetch отправляет User-Agent похожий на Chrome и Accept-Language по умолчанию; переопределите userAgent при необходимости.
  • web_fetch блокирует приватные/внутренние имена хостов и повторно проверяет перенаправления (ограничьте с помощью maxRedirects).
  • web_fetch — это извлечение лучших усилий; некоторым сайтам понадобится инструмент браузера.
  • См. Firecrawl для настройки ключа и деталей сервиса.
  • Ответы кэшируются (по умолчанию 15 минут) для уменьшения повторных получений.
  • Если вы используете профили инструментов/белые списки, добавьте web_search/web_fetch или group:web.
  • Если ключ Brave отсутствует, web_search возвращает короткую подсказку настройки со ссылкой на документацию.