Tools

Вебпошук

Edit source

Інструмент web_search виконує пошук в інтернеті за допомогою налаштованого вами провайдера та повертає результати. Результати кешуються за запитом на 15 хвилин (налаштовується).

OpenClaw також включає x_search для дописів X (раніше Twitter) і web_fetch для легкого отримання URL. На цьому етапі web_fetch залишається локальним, тоді як web_search і x_search можуть використовувати xAI Responses під капотом.

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

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

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

  • Налаштуйте

    bash
    openclaw configure --section web

    Це зберігає провайдера та всі потрібні облікові дані. Ви також можете задати змінну середовища (наприклад, BRAVE_API_KEY) і пропустити цей крок для провайдерів, що працюють через API.

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

    Тепер агент може викликати web_search:

    javascript
    await web_search({ query: "OpenClaw plugin SDK" });

    Для дописів X використовуйте:

    javascript
    await x_search({ query: "dinner recipes" });
  • Вибір провайдера

    Brave Search

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

    DuckDuckGo

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

    Exa

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

    Firecrawl

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

    Gemini

    AI-синтезовані відповіді з цитуваннями через прив’язку до Google Search.

    Grok

    AI-синтезовані відповіді з цитуваннями через вебприв’язку xAI.

    Kimi

    AI-синтезовані відповіді з цитуваннями через вебпошук Moonshot; незаземлені резервні чати явно завершуються помилкою.

    MiniMax Search

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

    Ollama Web Search

    Пошук через локальний хост Ollama з виконаним входом або розміщений API Ollama.

    Perplexity

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

    SearXNG

    Самостійно розміщений метапошук. API-ключ не потрібен. Агрегує Google, Bing, DuckDuckGo тощо.

    Tavily

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

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

    Провайдер Стиль результатів Фільтри API-ключ
    Brave Структуровані фрагменти Країна, мова, час, режим llm-context BRAVE_API_KEY
    DuckDuckGo Структуровані фрагменти -- Немає (без ключа)
    Exa Структуровані + витягнуті Нейронний/ключовий режим, дата, витягування вмісту EXA_API_KEY
    Firecrawl Структуровані фрагменти Через інструмент firecrawl_search FIRECRAWL_API_KEY
    Gemini AI-синтезовані + цитування -- GEMINI_API_KEY
    Grok AI-синтезовані + цитування -- XAI_API_KEY
    Kimi AI-синтезовані + цитування; помилка для незаземлених резервних чатів -- KIMI_API_KEY / MOONSHOT_API_KEY
    MiniMax Search Структуровані фрагменти Регіон (global / cn) MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
    Ollama Web Search Структуровані фрагменти -- Немає для локальних хостів із виконаним входом; OLLAMA_API_KEY для прямого пошуку https://ollama.com
    Perplexity Структуровані фрагменти Країна, мова, час, домени, ліміти вмісту PERPLEXITY_API_KEY / OPENROUTER_API_KEY
    SearXNG Структуровані фрагменти Категорії, мова Немає (самостійне розміщення)
    Tavily Структуровані фрагменти Через інструмент tavily_search TAVILY_API_KEY

    Автовиявлення

    Нативний вебпошук OpenAI

    Прямі моделі OpenAI Responses автоматично використовують розміщений OpenAI інструмент web_search, коли вебпошук OpenClaw увімкнено й не закріплено жодного керованого провайдера. Це поведінка, що належить провайдеру в комплектному OpenAI plugin, і вона застосовується лише до нативного трафіку OpenAI API, а не до базових URL проксі, сумісних з OpenAI, чи маршрутів Azure. Установіть tools.web.search.provider на іншого провайдера, наприклад brave, щоб залишити керований інструмент web_search для моделей OpenAI, або встановіть tools.web.search.enabled: false, щоб вимкнути як керований пошук, так і нативний пошук OpenAI.

    Нативний вебпошук Codex

    Моделі з підтримкою Codex можуть додатково використовувати провайдер-нативний інструмент Responses web_search замість керованої функції OpenClaw web_search.

    • Налаштуйте його в tools.web.search.openaiCodex
    • Він активується лише для моделей із підтримкою Codex (openai-codex/* або провайдерів, що використовують api: "openai-codex-responses")
    • Керований web_search і далі застосовується до моделей без Codex
    • mode: "cached" є стандартним і рекомендованим налаштуванням
    • tools.web.search.enabled: false вимикає як керований, так і нативний пошук
    json5
    {  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.

    Безпека мережі

    Виклики провайдерів керованого web_search використовують захищений шлях fetch OpenClaw. Для довірених API-хостів провайдерів OpenClaw дозволяє fake-IP DNS-відповіді Surge, Clash і sing-box у 198.18.0.0/15 та fc00::/7 лише для імені хоста цього провайдера. Інші приватні, loopback, link-local і metadata призначення залишаються заблокованими.

    Цей автоматичний дозвіл не застосовується до довільних URL web_fetch. Для web_fetch вмикайте tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange і tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange явно лише тоді, коли ваш довірений проксі володіє цими синтетичними діапазонами.

    Налаштування вебпошуку

    Списки провайдерів у документації та потоках налаштування впорядковані за алфавітом. Автовиявлення зберігає окремий порядок пріоритету.

    Якщо provider не задано, OpenClaw перевіряє провайдерів у такому порядку та використовує першого готового:

    Спочатку провайдери на основі API:

    1. Brave -- BRAVE_API_KEY або plugins.entries.brave.config.webSearch.apiKey (порядок 10)
    2. MiniMax Search -- MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY або plugins.entries.minimax.config.webSearch.apiKey (порядок 15)
    3. Gemini -- plugins.entries.google.config.webSearch.apiKey, GEMINI_API_KEY або models.providers.google.apiKey (порядок 20)
    4. Grok -- XAI_API_KEY або plugins.entries.xai.config.webSearch.apiKey (порядок 30)
    5. Kimi -- KIMI_API_KEY / MOONSHOT_API_KEY або plugins.entries.moonshot.config.webSearch.apiKey (порядок 40)
    6. Perplexity -- PERPLEXITY_API_KEY / OPENROUTER_API_KEY або plugins.entries.perplexity.config.webSearch.apiKey (порядок 50)
    7. Firecrawl -- FIRECRAWL_API_KEY або plugins.entries.firecrawl.config.webSearch.apiKey (порядок 60)
    8. Exa -- EXA_API_KEY або plugins.entries.exa.config.webSearch.apiKey; необов’язковий plugins.entries.exa.config.webSearch.baseUrl перевизначає кінцеву точку Exa (порядок 65)
    9. Tavily -- TAVILY_API_KEY або plugins.entries.tavily.config.webSearch.apiKey (порядок 70)

    Після цього резервні варіанти без ключа:

    1. DuckDuckGo -- резервний HTML-варіант без ключа, без облікового запису чи API-ключа (порядок 100)
    2. Ollama Web Search -- резервний варіант без ключа через ваш налаштований локальний хост Ollama, коли він доступний і в ньому виконано вхід через ollama signin; може повторно використовувати bearer-автентифікацію провайдера Ollama, коли вона потрібна хосту, і може викликати прямий пошук https://ollama.com, коли налаштовано OLLAMA_API_KEY (порядок 110)
    3. SearXNG -- SEARXNG_BASE_URL або plugins.entries.searxng.config.webSearch.baseUrl (порядок 200)

    Якщо жодного провайдера не виявлено, використовується резервний Brave (ви отримаєте помилку про відсутній ключ із підказкою налаштувати його).

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

    json5
    {  tools: {    web: {      search: {        enabled: true, // default: true        provider: "brave", // or omit for auto-detection        maxResults: 5,        timeoutSeconds: 30,        cacheTtlMinutes: 15,      },    },  },}

    Конфігурація, специфічна для провайдера (ключі API, базові URL, режими), зберігається в plugins.entries.<plugin>.config.webSearch.*. Gemini також може повторно використовувати models.providers.google.apiKey і models.providers.google.baseUrl як резервні варіанти з нижчим пріоритетом після власної конфігурації веб-пошуку та GEMINI_API_KEY. Приклади див. на сторінках провайдерів.

    tools.web.search.provider перевіряється за ідентифікаторами провайдерів веб-пошуку, оголошеними в маніфестах вбудованих і встановлених plugin. Помилка на кшталт "brvae" спричиняє помилку перевірки конфігурації замість непомітного повернення до автовизначення. Якщо налаштований провайдер має лише застарілі свідчення plugin, наприклад залишковий блок plugins.entries.<plugin> після видалення стороннього plugin, OpenClaw зберігає стійкий запуск і повідомляє попередження, щоб ви могли перевстановити plugin або виконати openclaw doctor --fix, щоб очистити застарілу конфігурацію.

    Вибір резервного провайдера web_fetch виконується окремо:

    • виберіть його за допомогою tools.web.fetch.provider
    • або пропустіть це поле й дозвольте OpenClaw автоматично визначити першого готового провайдера web-fetch з доступних облікових даних
    • web_fetch без пісочниці може використовувати встановлені провайдери plugin, які оголошують contracts.webFetchProviders; вибірки в пісочниці залишаються лише вбудованими
    • наразі вбудованим провайдером web-fetch є Firecrawl, налаштований у plugins.entries.firecrawl.config.webFetch.*

    Коли ви вибираєте Kimi під час openclaw onboard або openclaw configure --section web, OpenClaw також може запитати:

    • регіон Moonshot API (https://api.moonshot.ai/v1 або https://api.moonshot.cn/v1)
    • стандартну модель веб-пошуку Kimi (за замовчуванням kimi-k2.6)

    Для x_search налаштуйте plugins.entries.xai.config.xSearch.*. Він використовує той самий профіль автентифікації xAI, що й чат, або XAI_API_KEY / облікові дані веб-пошуку plugin, які використовує веб-пошук Grok. Застаріла конфігурація tools.web.x_search.* автоматично мігрується командою openclaw doctor --fix. Коли ви вибираєте Grok під час openclaw onboard або openclaw configure --section web, OpenClaw також може запропонувати необов’язкове налаштування x_search з тим самим ключем. Це окремий наступний крок у межах шляху Grok, а не окремий вибір провайдера веб-пошуку верхнього рівня. Якщо ви виберете іншого провайдера, OpenClaw не показуватиме запит x_search.

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

    Config file

    Запустіть openclaw configure --section web або задайте ключ безпосередньо:

    json5
    {  plugins: {    entries: {      brave: {        config: {          webSearch: {            apiKey: "YOUR_KEY", // pragma: allowlist secret          },        },      },    },  },}

    Environment variable

    Задайте змінну середовища провайдера в середовищі процесу Gateway:

    bash
    export BRAVE_API_KEY="YOUR_KEY"

    Для встановлення gateway помістіть її в ~/.openclaw/.env. Див. змінні середовища.

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

    Параметр Опис
    query Пошуковий запит (обов’язково)
    count Кількість результатів для повернення (1-10, за замовчуванням: 5)
    country 2-літерний код країни 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 Масив дозволених/заборонених доменів (лише Perplexity)
    max_tokens Загальний бюджет вмісту, за замовчуванням 25000 (лише Perplexity)
    max_tokens_per_page Ліміт токенів на сторінку, за замовчуванням 2048 (лише Perplexity)

    x_search запитує дописи X (раніше Twitter) за допомогою xAI та повертає синтезовані AI відповіді з цитуваннями. Він приймає запити природною мовою та необов’язкові структуровані фільтри. OpenClaw вмикає вбудований інструмент xAI x_search лише для запиту, який обслуговує цей виклик інструмента.

    json5
    {  plugins: {    entries: {      xai: {        config: {          xSearch: {            enabled: true,            model: "grok-4-1-fast-non-reasoning",            baseUrl: "https://api.x.ai/v1", // optional, overrides webSearch.baseUrl            inlineCitations: false,            maxTurns: 2,            timeoutSeconds: 30,            cacheTtlMinutes: 15,          },          webSearch: {            apiKey: "xai-...", // optional if an xAI auth profile or XAI_API_KEY is set            baseUrl: "https://api.x.ai/v1", // optional shared xAI Responses base URL          },        },      },    },  },}

    x_search надсилає POST-запити до <baseUrl>/responses, коли задано plugins.entries.xai.config.xSearch.baseUrl. Якщо це поле пропущено, він повертається до plugins.entries.xai.config.webSearch.baseUrl, потім до застарілого tools.web.search.grok.baseUrl, і нарешті до публічної кінцевої точки xAI.

    Параметр Опис
    query Пошуковий запит (обов’язково)
    allowed_x_handles Обмежити результати конкретними X handles
    excluded_x_handles Виключити конкретні X handles
    from_date Включати лише дописи на цю дату або після неї (YYYY-MM-DD)
    to_date Включати лише дописи на цю дату або до неї (YYYY-MM-DD)
    enable_image_understanding Дозволити xAI перевіряти зображення, прикріплені до відповідних дописів
    enable_video_understanding Дозволити xAI перевіряти відео, прикріплені до відповідних дописів
    javascript
    await x_search({  query: "dinner recipes",  allowed_x_handles: ["nytfood"],  from_date: "2026-03-01",});
    javascript
    // Per-post stats: use the exact status URL or status ID when possibleawait x_search({  query: "https://x.com/huntharo/status/1905678901234567890",});

    Приклади

    javascript
    // Basic searchawait web_search({ query: "OpenClaw plugin SDK" }); // German-specific searchawait web_search({ query: "TV online schauen", country: "DE", language: "de" }); // Recent results (past week)await web_search({ query: "AI developments", freshness: "week" }); // Date rangeawait web_search({  query: "climate research",  date_after: "2024-01-01",  date_before: "2024-06-30",}); // Domain filtering (Perplexity only)await web_search({  query: "product reviews",  domain_filter: ["-reddit.com", "-pinterest.com"],});

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

    Якщо ви використовуєте профілі інструментів або списки дозволів, додайте web_search, x_search або group:web:

    json5
    {  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
    Was this useful?