Tools
Pobieranie z sieci Web
web_fetch wykonuje zwykłe żądanie HTTP GET i wyodrębnia czytelną treść (z HTML do
markdownu lub tekstu). Nie wykonuje kodu JavaScript. W przypadku witryn intensywnie
korzystających z JS lub stron chronionych logowaniem użyj zamiast tego przeglądarki internetowej.
Szybki start
Włączone domyślnie, bez konieczności konfiguracji:
await web_fetch({ url: "https://example.com/article" });Parametry narzędzia
urlstringrequiredAdres URL do pobrania. Tylko http(s).
extractMode'markdown' | 'text'default: markdownFormat wyjściowy po wyodrębnieniu głównej treści.
maxCharsnumberPrzycina dane wyjściowe do podanej liczby znaków. Wartość jest ograniczona przez tools.web.fetch.maxCharsCap.
Jak to działa
Pobieranie
Wysyła żądanie HTTP GET z nagłówkami User-Agent podobnym do Chrome oraz
Accept-Language. Blokuje prywatne/wewnętrzne nazwy hostów i ponownie sprawdza przekierowania.
Wyodrębnianie
Uruchamia Readability (wyodrębnianie głównej treści) dla odpowiedzi HTML.
Tryb rezerwowy (opcjonalny)
Jeśli Readability zawiedzie, a dostawca pobierania jest dostępny, ponawia próbę za jego pośrednictwem (na przykład w trybie omijania zabezpieczeń przed botami Firecrawl).
Pamięć podręczna
Wyniki są przechowywane w pamięci podręcznej przez 15 minut (wartość konfigurowalna), aby ograniczyć wielokrotne pobieranie tego samego adresu URL.
Aktualizacje postępu
web_fetch emituje publiczny wiersz postępu tylko wtedy, gdy pobieranie nadal trwa
po pięciu sekundach:
Pobieranie treści strony...Szybkie trafienia w pamięci podręcznej i krótkie odpowiedzi sieciowe kończą się przed uruchomieniem licznika czasu, dlatego wiersz postępu nigdy się dla nich nie pojawia. Anulowanie wywołania usuwa licznik czasu. Wiersz postępu jest wyłącznie stanem interfejsu kanału i nigdy nie zawiera pobranej treści strony.
Konfiguracja
{ tools: { web: { fetch: { enabled: true, // domyślnie: true provider: "firecrawl", // opcjonalne; pomiń, aby wykryć automatycznie maxChars: 20000, // domyślna liczba znaków wyjściowych; ograniczona przez maxCharsCap maxCharsCap: 20000, // bezwzględny limit parametru maxChars maxResponseBytes: 750000, // maksymalny rozmiar pobierania przed przycięciem (32000-10000000) timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // zezwól zaufanemu serwerowi proxy HTTP(S) ze zmiennej środowiskowej rozwiązywać DNS readability: true, // użyj wyodrębniania Readability userAgent: "Mozilla/5.0 ...", // zastąp User-Agent ssrfPolicy: { allowRfc2544BenchmarkRange: true, // opcjonalna zgoda dla zaufanych serwerów proxy z fałszywymi adresami IP używających 198.18.0.0/15 allowIpv6UniqueLocalRange: true, // opcjonalna zgoda dla zaufanych serwerów proxy z fałszywymi adresami IP używających fc00::/7 }, }, }, },}Rezerwowe użycie Firecrawl
Jeśli wyodrębnianie za pomocą Readability zawiedzie, web_fetch może użyć rezerwowo
Firecrawl, aby ominąć zabezpieczenia przed botami i uzyskać lepsze wyniki wyodrębniania:
{ tools: { web: { fetch: { provider: "firecrawl", // opcjonalne; pomiń, aby wykryć automatycznie na podstawie dostępnych danych uwierzytelniających }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // opcjonalne; pomiń, aby korzystać z dostępu początkowego bez klucza baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 172800000, // czas przechowywania w pamięci podręcznej (2 dni) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey jest opcjonalne i obsługuje obiekty SecretRef.
Starsza konfiguracja tools.web.fetch.firecrawl.* jest automatycznie migrowana do
plugins.entries.firecrawl.config.webFetch przez openclaw doctor --fix.
Bieżące zachowanie środowiska wykonawczego:
tools.web.fetch.providerjawnie wybiera rezerwowego dostawcę pobierania.- Jeśli
providerzostanie pominięty, OpenClaw automatycznie wykryje pierwszego gotowego dostawcę pobierania stron internetowych na podstawie skonfigurowanych danych uwierzytelniających. Wywołanieweb_fetchpoza piaskownicą może używać zainstalowanych pluginów, które deklarującontracts.webFetchProvidersi rejestrują zgodnego dostawcę w czasie wykonywania. Obecnie tę funkcję rezerwową zapewnia oficjalny plugin Firecrawl. - Wywołania
web_fetchw piaskownicy dopuszczają dostawców dołączonych do pakietu oraz zainstalowanych dostawców, których oficjalne pochodzenie z npm lub ClawHub zostało zweryfikowane. Obecnie pozwala to na użycie oficjalnego pluginu Firecrawl; zewnętrzne pluginy pobierania innych firm pozostają wykluczone. - Jeśli Readability jest wyłączone,
web_fetchprzechodzi bezpośrednio do wybranego dostawcy rezerwowego. Jeśli żaden dostawca nie jest dostępny, kończy działanie niepowodzeniem.
Zaufany serwer proxy ze zmiennych środowiskowych
Jeśli wdrożenie wymaga, aby web_fetch korzystało z zaufanego wychodzącego
serwera proxy HTTP(S), ustaw tools.web.fetch.useTrustedEnvProxy: true.
W tym trybie OpenClaw nadal stosuje kontrole SSRF oparte na nazwie hosta przed wysłaniem żądania, ale pozwala serwerowi proxy rozwiązywać DNS zamiast lokalnego przypinania DNS. Włącz tę opcję tylko wtedy, gdy serwer proxy jest kontrolowany przez operatora i egzekwuje zasady ruchu wychodzącego po rozwiązaniu DNS.
Limity i bezpieczeństwo
maxCharsjest ograniczane dotools.web.fetch.maxCharsCap(domyślnie20000)- Treść odpowiedzi jest ograniczona do
maxResponseBytes(domyślnie750000, zakres 32000-10000000) przed analizą; zbyt duże odpowiedzi są przycinane z ostrzeżeniem - Prywatne/wewnętrzne nazwy hostów są blokowane
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeoraztools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangeto wąskie opcjonalne zgody przeznaczone dla zaufanych stosów proxy z fałszywymi adresami IP; pozostaw je nieustawione, chyba że serwer proxy zarządza tymi syntetycznymi zakresami i egzekwuje własne zasady dotyczące miejsc docelowych- Przekierowania są sprawdzane i ograniczane przez
maxRedirects(domyślnie3) useTrustedEnvProxywymaga jawnego włączenia i powinno być włączane wyłącznie dla serwerów proxy kontrolowanych przez operatora, które nadal egzekwują zasady ruchu wychodzącego po rozwiązaniu DNSweb_fetchdziała w miarę możliwości — niektóre witryny wymagają przeglądarki internetowej
Profile narzędzi
Jeśli używasz profili narzędzi lub list dozwolonych elementów, dodaj web_fetch albo group:web:
{ tools: { allow: ["web_fetch"], // albo: allow: ["group:web"] (obejmuje web_fetch, web_search oraz x_search) },}Powiązane
- Wyszukiwanie w internecie — przeszukiwanie internetu przy użyciu wielu dostawców
- Przeglądarka internetowa — pełna automatyzacja przeglądarki dla witryn intensywnie korzystających z JS
- Firecrawl — narzędzia Firecrawl do wyszukiwania i pobierania treści