Перейти до основного вмісту

Web Search

Інструмент web_search виконує пошук у вебі за допомогою налаштованого провайдера й повертає результати. Результати кешуються за запитом на 15 хвилин (можна налаштувати). OpenClaw також містить x_search для дописів у X (раніше Twitter) і web_fetch для полегшеного отримання URL. На цьому етапі web_fetch лишається локальним, тоді як web_search і x_search можуть використовувати xAI Responses під капотом.
web_search — це легкий HTTP-інструмент, а не автоматизація браузера. Для сайтів із важким JS або входом у систему використовуйте Web Browser. Для отримання конкретного URL використовуйте Web Fetch.

Швидкий старт

1

Виберіть провайдера

Виберіть провайдера й виконайте всі потрібні кроки налаштування. Деякі провайдери не потребують ключа, тоді як інші використовують API-ключі. Докладніше див. на сторінках провайдерів нижче.
2

Налаштуйте

openclaw configure --section web
Це збереже провайдера й усі потрібні облікові дані. Ви також можете встановити env- змінну (наприклад BRAVE_API_KEY) і пропустити цей крок для провайдерів на основі API.
3

Використовуйте

Тепер агент може викликати web_search:
await web_search({ query: "OpenClaw plugin SDK" });
Для дописів у X використовуйте:
await x_search({ query: "dinner recipes" });

Вибір провайдера

Brave Search

Структуровані результати з фрагментами. Підтримує режим llm-context, фільтри країни/мови. Є безкоштовний тариф.

DuckDuckGo

Резервний варіант без ключа. API-ключ не потрібен. Неофіційна інтеграція на основі HTML.

Exa

Нейронний + ключовий пошук із витягуванням вмісту (підсвічування, текст, підсумки).

Firecrawl

Структуровані результати. Найкраще поєднується з firecrawl_search і firecrawl_scrape для глибокого витягування.

Gemini

Синтезовані ШІ відповіді з цитуванням через Google Search grounding.

Grok

Синтезовані ШІ відповіді з цитуванням через xAI web grounding.

Kimi

Синтезовані ШІ відповіді з цитуванням через Moonshot web search.

MiniMax Search

Структуровані результати через API пошуку MiniMax Coding Plan.

Ollama Web Search

Пошук без ключа через налаштований хост Ollama. Потрібен ollama signin.

Perplexity

Структуровані результати з керуванням витягуванням вмісту та фільтрацією доменів.

SearXNG

Self-hosted метапошук. API-ключ не потрібен. Агрегує Google, Bing, DuckDuckGo тощо.

Tavily

Структуровані результати з глибиною пошуку, фільтрацією за темою та tavily_extract для витягування URL.

Порівняння провайдерів

ПровайдерСтиль результатівФільтриAPI-ключ
BraveСтруктуровані фрагментиКраїна, мова, час, режим llm-contextBRAVE_API_KEY
DuckDuckGoСтруктуровані фрагментиНемає (без ключа)
ExaСтруктуровані + витягнутіНейронний/ключовий режим, дата, витягування вмістуEXA_API_KEY
FirecrawlСтруктуровані фрагментиЧерез інструмент firecrawl_searchFIRECRAWL_API_KEY
GeminiСинтезовані ШІ + цитуванняGEMINI_API_KEY
GrokСинтезовані ШІ + цитуванняXAI_API_KEY
KimiСинтезовані ШІ + цитуванняKIMI_API_KEY / MOONSHOT_API_KEY
MiniMax SearchСтруктуровані фрагментиРегіон (global / cn)MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY
Ollama Web SearchСтруктуровані фрагментиТипово немає; потрібен ollama signin, можна повторно використовувати bearer auth провайдера Ollama
PerplexityСтруктуровані фрагментиКраїна, мова, час, домени, ліміти вмістуPERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNGСтруктуровані фрагментиКатегорії, моваНемає (self-hosted)
TavilyСтруктуровані фрагментиЧерез інструмент tavily_searchTAVILY_API_KEY

Автовизначення

Моделі з підтримкою Codex можуть за потреби використовувати нативний інструмент Responses web_search від провайдера замість керованої функції web_search OpenClaw.
  • Налаштовується в tools.web.search.openaiCodex
  • Активується лише для моделей із підтримкою Codex (openai-codex/* або провайдерів, що використовують api: "openai-codex-responses")
  • Керований web_search і далі застосовується до моделей без підтримки Codex
  • mode: "cached" — значення за замовчуванням і рекомендований варіант
  • tools.web.search.enabled: false вимикає і керований, і нативний пошук
{
  tools: {
    web: {
      search: {
        enabled: true,
        openaiCodex: {
          enabled: true,
          mode: "cached",
          allowedDomains: ["example.com"],
          contextSize: "high",
          userLocation: {
            country: "US",
            city: "New York",
            timezone: "America/New_York",
          },
        },
      },
    },
  },
}
Якщо нативний пошук Codex увімкнено, але поточна модель не підтримує Codex, OpenClaw зберігає звичайну поведінку керованого web_search. Списки провайдерів у документації та сценаріях налаштування подаються за абеткою. Автовизначення використовує окремий порядок пріоритету. Якщо provider не задано, OpenClaw перевіряє провайдерів у такому порядку й використовує першого, який готовий: Спочатку провайдери на основі API:
  1. BraveBRAVE_API_KEY або plugins.entries.brave.config.webSearch.apiKey (порядок 10)
  2. MiniMax SearchMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY або plugins.entries.minimax.config.webSearch.apiKey (порядок 15)
  3. GeminiGEMINI_API_KEY або plugins.entries.google.config.webSearch.apiKey (порядок 20)
  4. GrokXAI_API_KEY або plugins.entries.xai.config.webSearch.apiKey (порядок 30)
  5. KimiKIMI_API_KEY / MOONSHOT_API_KEY або plugins.entries.moonshot.config.webSearch.apiKey (порядок 40)
  6. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEY або plugins.entries.perplexity.config.webSearch.apiKey (порядок 50)
  7. FirecrawlFIRECRAWL_API_KEY або plugins.entries.firecrawl.config.webSearch.apiKey (порядок 60)
  8. ExaEXA_API_KEY або plugins.entries.exa.config.webSearch.apiKey (порядок 65)
  9. TavilyTAVILY_API_KEY або plugins.entries.tavily.config.webSearch.apiKey (порядок 70)
Після цього резервні варіанти без ключа:
  1. DuckDuckGo — HTML-резервний варіант без ключа, без облікового запису чи API-ключа (порядок 100)
  2. Ollama Web Search — резервний варіант без ключа через налаштований хост Ollama; потрібна доступність Ollama і вхід через ollama signin, за потреби можна повторно використовувати bearer auth провайдера Ollama (порядок 110)
  3. SearXNGSEARXNG_BASE_URL або plugins.entries.searxng.config.webSearch.baseUrl (порядок 200)
Якщо жодного провайдера не виявлено, використовується Brave як резервний варіант (ви отримаєте помилку про відсутній ключ із підказкою налаштувати його).
Усі поля ключів провайдерів підтримують об’єкти SecretRef. У режимі автовизначення OpenClaw розв’язує лише ключ вибраного провайдера — SecretRef невибраних провайдерів лишаються неактивними.

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

{
  tools: {
    web: {
      search: {
        enabled: true, // default: true
        provider: "brave", // or omit for auto-detection
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}
Конфігурація для окремих провайдерів (API-ключі, base URL, режими) міститься в plugins.entries.<plugin>.config.webSearch.*. Приклади див. на сторінках провайдерів. Вибір резервного провайдера web_fetch виконується окремо:
  • виберіть його через tools.web.fetch.provider
  • або пропустіть це поле й дозвольте OpenClaw автоматично визначити першого готового провайдера web-fetch з доступних облікових даних
  • наразі вбудованим провайдером web-fetch є Firecrawl, що налаштовується в plugins.entries.firecrawl.config.webFetch.*
Коли ви вибираєте Kimi під час openclaw onboard або openclaw configure --section web, OpenClaw також може запитати:
  • регіон API Moonshot (https://api.moonshot.ai/v1 або https://api.moonshot.cn/v1)
  • стандартну модель Kimi для web-search (за замовчуванням kimi-k2.5)
Для x_search налаштуйте plugins.entries.xai.config.xSearch.*. Він використовує той самий резервний XAI_API_KEY, що й пошук Grok у вебі. Застаріла конфігурація tools.web.x_search.* автоматично мігрується через openclaw doctor --fix. Коли ви вибираєте Grok під час openclaw onboard або openclaw configure --section web, OpenClaw також може запропонувати необов’язкове налаштування x_search з тим самим ключем. Це окремий додатковий крок усередині шляху Grok, а не окремий вибір провайдера web-search верхнього рівня. Якщо ви виберете іншого провайдера, OpenClaw не показуватиме запит для x_search.

Зберігання API-ключів

Виконайте openclaw configure --section web або задайте ключ безпосередньо:
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "YOUR_KEY", // pragma: allowlist secret
          },
        },
      },
    },
  },
}

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

ПараметрОпис
queryПошуковий запит (обов’язково)
countРезультати для повернення (1-10, за замовчуванням: 5)
country2-літерний код країни ISO (наприклад “US”, “DE”)
languageКод мови ISO 639-1 (наприклад “en”, “de”)
search_langКод мови пошуку (лише Brave)
freshnessФільтр часу: day, week, month або year
date_afterРезультати після цієї дати (YYYY-MM-DD)
date_beforeРезультати до цієї дати (YYYY-MM-DD)
ui_langКод мови UI (лише Brave)
domain_filterМасив allowlist/denylist доменів (лише Perplexity)
max_tokensЗагальний бюджет вмісту, за замовчуванням 25000 (лише Perplexity)
max_tokens_per_pageЛіміт токенів на сторінку, за замовчуванням 2048 (лише Perplexity)
Не всі параметри працюють з усіма провайдерами. Режим Brave llm-context відхиляє ui_lang, freshness, date_after і date_before. Gemini, Grok і Kimi повертають одну синтезовану відповідь із цитуванням. Вони приймають count для сумісності спільного інструмента, але це не змінює форму grounded-відповіді. Perplexity поводиться так само, коли ви використовуєте шлях сумісності Sonar/OpenRouter (plugins.entries.perplexity.config.webSearch.baseUrl / model або OPENROUTER_API_KEY). SearXNG приймає http:// лише для довірених хостів приватної мережі або loopback; публічні кінцеві точки SearXNG мають використовувати https://. Firecrawl і Tavily підтримують через web_search лише query і count — для розширених параметрів використовуйте їхні спеціалізовані інструменти.
x_search виконує запити до дописів у X (раніше Twitter) через xAI та повертає синтезовані ШІ відповіді з цитуванням. Він приймає запити природною мовою та необов’язкові структуровані фільтри. OpenClaw вмикає вбудований інструмент xAI x_search лише в запиті, який обслуговує цей виклик інструмента.
xAI документує x_search як інструмент, що підтримує пошук за ключовими словами, семантичний пошук, пошук користувачів і отримання тредів. Для статистики окремого допису, як-от reposts, replies, bookmarks або views, віддавайте перевагу цільовому запиту за точним URL допису або status ID. Широкі пошуки за ключовими словами можуть знайти потрібний допис, але повернути менш повні метадані для окремого допису. Хороший шаблон: спочатку знайти допис, а потім виконати другий запит x_search, зосереджений саме на цьому дописі.
{
  plugins: {
    entries: {
      xai: {
        config: {
          xSearch: {
            enabled: true,
            model: "grok-4-1-fast-non-reasoning",
            inlineCitations: false,
            maxTurns: 2,
            timeoutSeconds: 30,
            cacheTtlMinutes: 15,
          },
          webSearch: {
            apiKey: "xai-...", // optional if XAI_API_KEY is set
          },
        },
      },
    },
  },
}
ПараметрОпис
queryПошуковий запит (обов’язково)
allowed_x_handlesОбмежити результати конкретними handle у X
excluded_x_handlesВиключити конкретні handle у X
from_dateВключати лише дописи в цю дату або пізніше (YYYY-MM-DD)
to_dateВключати лише дописи в цю дату або раніше (YYYY-MM-DD)
enable_image_understandingДозволити xAI аналізувати зображення, прикріплені до відповідних дописів
enable_video_understandingДозволити xAI аналізувати відео, прикріплене до відповідних дописів
await x_search({
  query: "dinner recipes",
  allowed_x_handles: ["nytfood"],
  from_date: "2026-03-01",
});
// Статистика окремого допису: за можливості використовуйте точний URL статусу або status ID
await x_search({
  query: "https://x.com/huntharo/status/1905678901234567890",
});

Приклади

// Базовий пошук
await web_search({ query: "OpenClaw plugin SDK" });

// Пошук із прив’язкою до Німеччини
await web_search({ query: "TV online schauen", country: "DE", language: "de" });

// Нещодавні результати (за останній тиждень)
await web_search({ query: "AI developments", freshness: "week" });

// Діапазон дат
await web_search({
  query: "climate research",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// Фільтрація доменів (лише Perplexity)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

Профілі інструментів

Якщо ви використовуєте профілі інструментів або allowlist, додайте web_search, x_search або group:web:
{
  tools: {
    allow: ["web_search", "x_search"],
    // or: allow: ["group:web"]  (includes web_search, x_search, and web_fetch)
  },
}

Пов’язане

  • Web Fetch — отримання URL і витягування читабельного вмісту
  • Web Browser — повна автоматизація браузера для сайтів із важким JS
  • Grok Search — Grok як провайдер web_search
  • Ollama Web Search — вебпошук без ключа через ваш хост Ollama