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-запрос с похожим на Chrome User-Agent и заголовком Accept-Language.
Блокирует частные и внутренние имена хостов и повторно проверяет перенаправления.
Извлечение
Запускает Readability (извлечение основного содержимого) для HTML-ответа.
Резервный вариант (необязательно)
Если Readability завершается с ошибкой и доступен провайдер получения данных, повторяет попытку через этого провайдера (например, в режиме обхода защиты от ботов Firecrawl).
Кэширование
Результаты кэшируются на 15 минут (значение настраивается), чтобы сократить количество повторных запросов к одному URL.
Обновления хода выполнения
web_fetch выводит общедоступную строку состояния, только если получение данных всё ещё не завершено
через пять секунд:
Получение содержимого страницы...Быстрые обращения к кэшу и быстрые сетевые ответы завершаются до срабатывания таймера, поэтому строка состояния для них никогда не отображается. При отмене вызова таймер сбрасывается. Эта строка относится только к состоянию интерфейса канала и никогда не содержит полученное содержимое страницы.
Конфигурация
{ tools: { web: { fetch: { enabled: true, // default: true provider: "firecrawl", // optional; omit for auto-detect maxChars: 20000, // default output chars; capped by maxCharsCap maxCharsCap: 20000, // hard cap for maxChars param maxResponseBytes: 750000, // max download size before truncation (32000-10000000) timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // let a trusted HTTP(S) env proxy resolve DNS readability: true, // use Readability extraction userAgent: "Mozilla/5.0 ...", // override User-Agent ssrfPolicy: { allowRfc2544BenchmarkRange: true, // opt-in for trusted fake-IP proxies using 198.18.0.0/15 allowIpv6UniqueLocalRange: true, // opt-in for trusted fake-IP proxies using fc00::/7 }, }, }, },}Резервный вариант с Firecrawl
Если извлечение с помощью Readability завершается с ошибкой, web_fetch может использовать
Firecrawl как резервный вариант для обхода защиты от ботов и более качественного извлечения:
{ tools: { web: { fetch: { provider: "firecrawl", // optional; omit for auto-detect from available credentials }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // optional; omit for keyless starter access baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 172800000, // cache duration (2 days) 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"], // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search) },}Связанные материалы
- Веб-поиск — поиск в интернете с помощью нескольких провайдеров
- Веб-браузер — полноценная автоматизация браузера для сайтов, активно использующих JS
- Firecrawl — инструменты Firecrawl для поиска и извлечения данных со страниц