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

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

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

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

1

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

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

Налаштуйте

openclaw configure --section web
Це зберігає провайдера та всі потрібні облікові дані. Ви також можете задати змінну середовища (наприклад, 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

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-contextBRAVE_API_KEY
DuckDuckGoСтруктуровані фрагментиНемає (без ключа)
ExaСтруктуровані + витягнутіНейронний/ключовий режим, дата, витягування вмістуEXA_API_KEY
FirecrawlСтруктуровані фрагментиЧерез інструмент firecrawl_searchFIRECRAWL_API_KEY
GeminiAI-синтезовані + цитуванняGEMINI_API_KEY
GrokAI-синтезовані + цитуванняXAI_API_KEY
KimiAI-синтезовані + цитування; помилка для незаземлених резервних чатів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_searchTAVILY_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 вимикає як керований, так і нативний пошук
{
  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. BraveBRAVE_API_KEY або plugins.entries.brave.config.webSearch.apiKey (порядок 10)
  2. MiniMax SearchMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY або plugins.entries.minimax.config.webSearch.apiKey (порядок 15)
  3. Geminiplugins.entries.google.config.webSearch.apiKey, GEMINI_API_KEY або models.providers.google.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; необов’язковий plugins.entries.exa.config.webSearch.baseUrl перевизначає кінцеву точку Exa (порядок 65)
  9. TavilyTAVILY_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. SearXNGSEARXNG_BASE_URL або plugins.entries.searxng.config.webSearch.baseUrl (порядок 200)
Якщо жодного провайдера не виявлено, використовується резервний Brave (ви отримаєте помилку про відсутній ключ із підказкою налаштувати його).
Усі поля ключів провайдера підтримують об’єкти SecretRef. SecretRef у межах Plugin під plugins.entries.<plugin>.config.webSearch.apiKey розв’язуються для комплектних провайдерів вебпошуку на основі API, включно з Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax, Perplexity і Tavily, незалежно від того, чи провайдера вибрано явно через tools.web.search.provider, чи вибрано через автовиявлення. У режимі автовиявлення OpenClaw розв’язує лише ключ вибраного провайдера — невибрані SecretRef залишаються неактивними, тож ви можете тримати налаштованими кілька провайдерів без витрат на розв’язання для тих, які не використовуєте.

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

{
  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

Запустіть 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Масив дозволених/заборонених доменів (лише Perplexity)
max_tokensЗагальний бюджет вмісту, за замовчуванням 25000 (лише Perplexity)
max_tokens_per_pageЛіміт токенів на сторінку, за замовчуванням 2048 (лише Perplexity)
Не всі параметри працюють з усіма провайдерами. Режим Brave llm-context відхиляє ui_lang; date_before також потребує date_after, оскільки власні діапазони свіжості Brave вимагають і початкової, і кінцевої дат. Gemini, Grok і Kimi повертають одну синтезовану відповідь із цитуваннями. Вони приймають count для сумісності зі спільним інструментом, але це не змінює форму обґрунтованої відповіді. Gemini підтримує freshness, date_after і date_before, перетворюючи їх на часові діапазони grounding Google Search. Perplexity поводиться так само, коли ви використовуєте шлях сумісності Sonar/OpenRouter (plugins.entries.perplexity.config.webSearch.baseUrl / model або OPENROUTER_API_KEY). SearXNG приймає http:// лише для довірених приватних мережевих або loopback-хостів; публічні кінцеві точки SearXNG мають використовувати https://. Firecrawl і Tavily підтримують лише query і count через web_search — використовуйте їхні спеціальні інструменти для розширених параметрів.
x_search запитує дописи X (раніше Twitter) за допомогою xAI та повертає синтезовані AI відповіді з цитуваннями. Він приймає запити природною мовою та необов’язкові структуровані фільтри. OpenClaw вмикає вбудований інструмент xAI x_search лише для запиту, який обслуговує цей виклик інструмента.
xAI документує x_search як такий, що підтримує пошук за ключовими словами, семантичний пошук, пошук користувачів і отримання тредів. Для статистики взаємодії з окремим дописом, як-от репости, відповіді, закладки або перегляди, краще використовувати цільовий пошук за точною URL-адресою допису або ідентифікатором статусу. Широкий пошук за ключовими словами може знайти потрібний допис, але повернути менш повні метадані окремого допису. Хороший шаблон: спочатку знайдіть допис, а потім виконайте другий запит x_search, сфокусований на цьому точному дописі.
{
  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 перевіряти відео, прикріплені до відповідних дописів
await x_search({
  query: "dinner recipes",
  allowed_x_handles: ["nytfood"],
  from_date: "2026-03-01",
});
// Per-post stats: use the exact status URL or status ID when possible
await x_search({
  query: "https://x.com/huntharo/status/1905678901234567890",
});

Приклади

// Basic search
await web_search({ query: "OpenClaw plugin SDK" });

// German-specific search
await web_search({ query: "TV online schauen", country: "DE", language: "de" });

// Recent results (past week)
await web_search({ query: "AI developments", freshness: "week" });

// Date range
await 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:
{
  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