Tools
Веб-завантаження
web_fetch виконує звичайний HTTP GET-запит і видобуває придатний для читання вміст (перетворює HTML на
Markdown або текст). Він не виконує JavaScript. Для сайтів, що інтенсивно використовують JS, або
сторінок, захищених входом, натомість використовуйте веббраузер.
Швидкий початок
Увімкнено за замовчуванням, налаштування не потрібне:
await web_fetch({ url: "https://example.com/article" });Параметри інструмента
urlstringrequiredURL-адреса для отримання. Лише http(s).
extractMode'markdown' | 'text'default: markdownФормат виводу після видобування основного вмісту.
maxCharsnumberОбрізає вивід до вказаної кількості символів. Значення обмежується параметром tools.web.fetch.maxCharsCap.
Принцип роботи
Отримання
Надсилає HTTP GET-запит із User-Agent, подібним до Chrome, і заголовком
Accept-Language. Блокує приватні та внутрішні імена хостів і повторно перевіряє перенаправлення.
Видобування
Застосовує Readability (видобування основного вмісту) до HTML-відповіді.
Резервний варіант (необов’язково)
Якщо Readability завершується невдало й доступний постачальник отримання даних, повторює спробу через нього (наприклад, у режимі Firecrawl для обходу захисту від ботів).
Кешування
Результати кешуються на 15 хвилин (можна налаштувати), щоб зменшити кількість повторних отримань тієї самої URL-адреси.
Оновлення перебігу виконання
web_fetch виводить загальнодоступний рядок перебігу виконання, лише якщо отримання даних усе ще триває
через п’ять секунд:
Отримання вмісту сторінки...Швидкі влучання в кеш і швидкі мережеві відповіді завершуються до спрацювання таймера, тому для них рядок перебігу виконання не відображається. Скасування виклику очищає таймер. Цей рядок є лише станом інтерфейсу каналу й ніколи не містить отриманого вмісту сторінки.
Налаштування
{ tools: { web: { fetch: { enabled: true, // типове значення: true provider: "firecrawl", // необов’язково; пропустіть для автоматичного визначення maxChars: 20000, // типова кількість символів виводу; обмежується maxCharsCap maxCharsCap: 20000, // жорстке обмеження для параметра maxChars maxResponseBytes: 750000, // максимальний розмір завантаження до обрізання (32000-10000000) timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // дозволити довіреному HTTP(S)-проксі зі змінної середовища розв’язувати DNS readability: true, // використовувати видобування за допомогою Readability userAgent: "Mozilla/5.0 ...", // перевизначити User-Agent ssrfPolicy: { allowRfc2544BenchmarkRange: true, // явне ввімкнення для довірених проксі з підробленими IP-адресами, що використовують 198.18.0.0/15 allowIpv6UniqueLocalRange: true, // явне ввімкнення для довірених проксі з підробленими IP-адресами, що використовують fc00::/7 }, }, }, },}Резервний варіант із Firecrawl
Якщо видобування за допомогою Readability завершується невдало, web_fetch може використати
Firecrawl як резервний варіант для обходу захисту від ботів і кращого видобування:
{ tools: { web: { fetch: { provider: "firecrawl", // необов’язково; пропустіть для автоматичного визначення за доступними обліковими даними }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // необов’язково; пропустіть для початкового доступу без ключа baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 172800000, // тривалість кешування (2 дні) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey є необов’язковим і підтримує об’єкти SecretRef.
Застаріле налаштування tools.web.fetch.firecrawl.* автоматично мігрує до
plugins.entries.firecrawl.config.webFetch за допомогою openclaw doctor --fix.
Поточна поведінка під час виконання:
tools.web.fetch.providerявно вибирає резервного постачальника отримання даних.- Якщо
providerпропущено, OpenClaw автоматично визначає першого готового постачальника веботримання за налаштованими обліковими даними.web_fetchпоза пісочницею може використовувати встановлені плагіни, які оголошуютьcontracts.webFetchProvidersі реєструють відповідного постачальника під час виконання. Наразі офіційний плагін Firecrawl надає цей резервний варіант. - Виклики
web_fetchу пісочниці дозволяють вбудованих і встановлених постачальників, офіційне походження яких із npm або ClawHub перевірено. Наразі це дозволяє офіційний плагін Firecrawl; зовнішні плагіни отримання даних від сторонніх розробників залишаються виключеними. - Якщо Readability вимкнено,
web_fetchодразу переходить до вибраного резервного постачальника. Якщо жоден постачальник недоступний, виклик завершується помилкою без небезпечного відступу.
Довірений проксі зі змінної середовища
Якщо ваше розгортання вимагає, щоб web_fetch працював через довірений вихідний
HTTP(S)-проксі, установіть tools.web.fetch.useTrustedEnvProxy: true.
У цьому режимі OpenClaw усе одно застосовує перевірки SSRF на основі імені хоста перед надсиланням запиту, але дозволяє проксі розв’язувати DNS замість локальної фіксації DNS. Вмикайте це лише тоді, коли проксі контролюється оператором і забезпечує дотримання політики вихідного трафіку після розв’язання DNS.
Обмеження та безпека
maxCharsобмежується значеннямtools.web.fetch.maxCharsCap(типово20000)- Тіло відповіді обмежується значенням
maxResponseBytes(типово750000, у межах 32000-10000000) перед розбором; завеликі відповіді обрізаються з попередженням - Приватні та внутрішні імена хостів блокуються
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeіtools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange— це вузькоспеціалізовані параметри явного ввімкнення для довірених проксі-стеків із підробленими IP-адресами; не задавайте їх, якщо ваш проксі не володіє цими синтетичними діапазонами й не забезпечує власну політику призначень- Перенаправлення перевіряються й обмежуються параметром
maxRedirects(типово3) useTrustedEnvProxyпотребує явного ввімкнення та має застосовуватися лише для контрольованих оператором проксі, які й надалі забезпечують політику вихідного трафіку після розв’язання DNSweb_fetchпрацює за принципом максимальних зусиль — деяким сайтам потрібен веббраузер
Профілі інструментів
Якщо ви використовуєте профілі інструментів або списки дозволеного, додайте web_fetch або group:web:
{ tools: { allow: ["web_fetch"], // або: allow: ["group:web"] (включає web_fetch, web_search і x_search) },}Пов’язані матеріали
- Вебпошук — пошук у вебі за допомогою кількох постачальників
- Веббраузер — повна автоматизація браузера для сайтів, що інтенсивно використовують JS
- Firecrawl — інструменти Firecrawl для пошуку та збирання даних із вебсторінок