Tools

Вебпошук

Інструмент 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, фільтри країни/мови. Доступний безкоштовний рівень.

    Codex Hosted Search

    Синтезовані ШІ обґрунтовані відповіді через ваш обліковий запис сервера застосунку Codex.

    DuckDuckGo

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

    Exa

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

    Firecrawl

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

    Gemini

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

    Grok

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

    Kimi

    Синтезовані ШІ відповіді з цитуваннями через вебпошук Moonshot; необґрунтовані резервні переходи до чату явно завершуються помилкою.

    MiniMax Search

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

    Ollama Web Search

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

    Parallel

    Платний API Parallel Search (PARALLEL_API_KEY); вищі ліміти частоти та налаштування цілей.

    Parallel Search (Free)

    Добровільне використання без ключа. Безкоштовний Search MCP від Parallel, з щільними фрагментами, оптимізованими для LLM, і без API-ключа.

    Perplexity

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

    SearXNG

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

    Tavily

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

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

    Провайдер Стиль результатів Фільтри API-ключ
    Brave Структуровані фрагменти Країна, мова, час, режим llm-context BRAVE_API_KEY
    Codex Hosted Search Синтезовані ШІ + URL джерел Домени, розмір контексту, місцеперебування користувача Немає; використовує вхід Codex/OpenAI
    DuckDuckGo Структуровані фрагменти -- Немає (без ключа)
    Exa Структуровані + витягнуті Нейронний/ключовий режим, дата, витягування вмісту EXA_API_KEY
    Firecrawl Структуровані фрагменти Через інструмент firecrawl_search FIRECRAWL_API_KEY
    Gemini Синтезовані ШІ + цитування -- GEMINI_API_KEY
    Grok Синтезовані ШІ + цитування -- xAI OAuth, XAI_API_KEY або plugins.entries.xai.config.webSearch.apiKey
    Kimi Синтезовані ШІ + цитування; помилка при необґрунтованих резервних переходах до чату -- 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
    Parallel Щільні фрагменти, ранжовані для контексту LLM -- PARALLEL_API_KEY (платний)
    Parallel Search (Free) Щільні фрагменти, ранжовані для контексту LLM -- Немає (безкоштовний Search MCP)
    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, а не до OpenAI-сумісних базових URL проксі чи маршрутів Azure. Установіть tools.web.search.provider на іншого провайдера, наприклад brave, щоб залишити керований інструмент web_search для моделей OpenAI, або задайте tools.web.search.enabled: false, щоб вимкнути і керований пошук, і нативний пошук OpenAI.

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

    Середовище виконання сервера застосунку Codex автоматично використовує розміщений Codex інструмент web_search, коли вебпошук увімкнено й не вибрано керованого провайдера. Нативний розміщений пошук і керований динамічний інструмент OpenClaw web_search взаємовиключні, тому керований пошук не може обійти нативні обмеження доменів. OpenClaw використовує керований інструмент, коли розміщений пошук недоступний, явно вимкнений або замінений вибраним керованим провайдером. OpenClaw залишає окреме розширення Codex web.run вимкненим, бо виробничий трафік сервера застосунку відхиляє його визначений користувачем простір імен web.

    • Налаштуйте нативний пошук у tools.web.search.openaiCodex
    • Установіть tools.web.search.provider: "codex", щоб надати Codex Hosted Search як керованого провайдера web_search для будь-якої батьківської моделі. Кожен виклик запускає обмежений ефемерний хід сервера застосунку Codex і завершується помилкою, якщо Codex не видає розміщений елемент webSearch.
    • mode: "cached" є типовим уподобанням, але Codex перетворює його на живий зовнішній доступ для необмежених ходів сервера застосунку; задайте "live", щоб явно запросити живий доступ
    • Установіть tools.web.search.provider на керованого провайдера, наприклад brave, щоб використовувати керований web_search OpenClaw натомість
    • Установіть tools.web.search.openaiCodex.enabled: false, щоб відмовитися від пошуку, розміщеного Codex; інші керовані провайдери залишаються доступними
    • Обмеження нативної поверхні інструментів Codex також залишає керований web_search доступним
    • Коли задано allowedDomains, автоматичний керований резервний перехід завершується закритою помилкою, якщо розміщений пошук недоступний, щоб нативний список дозволених доменів не можна було обійти
    • Запуски лише LLM із вимкненими інструментами вимикають і нативний, і керований пошук
    • tools.web.search.enabled: false вимикає і керований, і нативний пошук

    Постійні ефективні зміни політики пошуку Codex запускають новий прив’язаний потік, щоб уже завантажений потік сервера застосунку не міг зберегти застарілий доступ до розміщеного пошуку. Тимчасові обмеження на один хід використовують тимчасовий обмежений потік і зберігають наявну прив’язку для подальшого відновлення.

    Прямий трафік OpenAI ChatGPT Responses також може використовувати розміщений OpenAI інструмент web_search. Цей окремий шлях залишається добровільним через tools.web.search.openaiCodex.enabled: true і застосовується лише до придатних моделей openai/*, що використовують api: "openai-chatgpt-responses".

    json5
    {  tools: {    web: {      search: {        enabled: true,        // Optional: use Codex Hosted Search from non-Codex parent models too.        provider: "codex",        openaiCodex: {          enabled: true,          mode: "cached",          allowedDomains: ["example.com"],          contextSize: "high",          userLocation: {            country: "US",            city: "New York",            timezone: "America/New_York",          },        },      },    },  },}

    Для середовищ виконання й провайдерів, які не підтримують нативний пошук Codex, Codex може використовувати керований резервний web_search через динамічний простір імен інструментів OpenClaw. Використовуйте явного керованого провайдера, коли вам потрібні провайдер-специфічні мережеві засоби керування OpenClaw замість пошуку, розміщеного Codex.

    Вибір provider: "codex" вмикає вбудований плагін codex і використовує ті самі обмеження tools.web.search.openaiCodex, показані вище. Спочатку автентифікуйте app-server Codex за допомогою openclaw models auth login --provider openai. Батьківський агент може використовувати будь-яку модель або runtime; лише обмежений пошуковий worker працює через Codex.

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

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

    Цей автоматичний дозвіл не застосовується до довільних 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 OAuth, 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 перевизначає endpoint Exa (порядок 65)
    9. Tavily -- TAVILY_API_KEY або plugins.entries.tavily.config.webSearch.apiKey (порядок 70)
    10. Parallel -- платний Parallel Search API через PARALLEL_API_KEY або plugins.entries.parallel.config.webSearch.apiKey; необов’язковий plugins.entries.parallel.config.webSearch.baseUrl перевизначає endpoint (порядок 75)

    Після цього йдуть провайдери з налаштованим endpoint:

    1. SearXNG -- SEARXNG_BASE_URL або plugins.entries.searxng.config.webSearch.baseUrl (порядок 200)

    Провайдери без ключа, як-от Parallel Search (Free), DuckDuckGo, Ollama Web Search і Codex Hosted Search, доступні лише тоді, коли ви вибираєте їх явно через tools.web.search.provider або через openclaw configure --section web. OpenClaw не надсилає керовані запити web_search провайдеру без ключа лише тому, що не налаштовано провайдера з API-підтримкою.

    Моделі OpenAI Responses є винятком: поки tools.web.search.provider не задано, вони використовують нативний web search OpenAI замість керованих провайдерів вище. Задайте tools.web.search.provider як parallel-free (або інший провайдер), щоб спрямувати їх через керований шлях.

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

    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 як резервні варіанти з нижчим пріоритетом після своєї спеціальної конфігурації web-search і GEMINI_API_KEY. Дивіться приклади на сторінках провайдерів. Grok також може повторно використовувати auth-профіль xAI OAuth з openclaw models auth login --provider xai --method oauth; конфігурація API-ключа залишається резервним варіантом.

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

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

    • виберіть його за допомогою tools.web.fetch.provider
    • або не задавайте це поле й дозвольте OpenClaw автовиявити першого готового web-fetch провайдера з налаштованих облікових даних
    • non-sandboxed web_fetch може використовувати встановлених провайдерів плагінів, які оголошують contracts.webFetchProviders; sandboxed fetch дозволяє вбудовані провайдери та перевірені офіційні встановлення плагінів, але виключає сторонні зовнішні плагіни
    • офіційний плагін Firecrawl надає резервний web-fetch, налаштований у 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 web-search (за замовчуванням kimi-k2.6)

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

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

    Файл конфігурації

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

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

    Змінна середовища

    Задайте env var провайдера в середовищі процесу Gateway:

    bash
    export BRAVE_API_KEY="YOUR_KEY"

    Для встановлення gateway помістіть її в ~/.openclaw/.env. Дивіться Env vars.

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

    Параметр Опис
    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 Масив allowlist/denylist доменів (лише 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, і зрештою до публічного endpoint xAI.

    Параметр Опис
    query Пошуковий запит (обов’язково)
    allowed_x_handles Обмежити результати конкретними іменами користувачів X
    excluded_x_handles Виключити конкретні імена користувачів X
    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)  },}

    Пов’язане

    • Веб-вибірка -- отримати URL і витягти придатний для читання вміст
    • Веббраузер -- повна автоматизація браузера для сайтів із великою кількістю JS
    • Пошук Grok -- Grok як провайдер web_search
    • Вебпошук Ollama -- вебпошук без ключа через ваш хост Ollama
    Was this useful?
    On this page

    On this page