Skip to main content
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:

Parametry narzędzia

string
wymagane
Adres URL do pobrania. Tylko http(s).
'markdown' | 'text'
domyślnie:"markdown"
Format wyjściowy po wyodrębnieniu głównej treści.
number
Przycina dane wyjściowe do podanej liczby znaków. Wartość jest ograniczona przez tools.web.fetch.maxCharsCap.

Jak to działa

1

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.
2

Wyodrębnianie

Uruchamia Readability (wyodrębnianie głównej treści) dla odpowiedzi HTML.
3

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).
4

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:
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

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:
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.
Jeśli skonfigurujesz SecretRef klucza API Firecrawl, którego nie można rozwiązać, i nie istnieje rezerwowa zmienna środowiskowa FIRECRAWL_API_KEY, uruchamianie Gateway natychmiast zakończy się niepowodzeniem.
Nadpisywanie baseUrl Firecrawl podlega ograniczeniom: ruch do usługi hostowanej używa https://api.firecrawl.dev; nadpisania dla instalacji samodzielnie hostowanych muszą wskazywać prywatne lub wewnętrzne punkty końcowe, a http:// jest akceptowane tylko dla takich prywatnych celów.
Bieżące zachowanie środowiska wykonawczego:
  • tools.web.fetch.provider jawnie wybiera rezerwowego dostawcę pobierania.
  • Jeśli provider zostanie pominięty, OpenClaw automatycznie wykryje pierwszego gotowego dostawcę pobierania stron internetowych na podstawie skonfigurowanych danych uwierzytelniających. Wywołanie web_fetch poza piaskownicą może używać zainstalowanych pluginów, które deklarują contracts.webFetchProviders i rejestrują zgodnego dostawcę w czasie wykonywania. Obecnie tę funkcję rezerwową zapewnia oficjalny plugin Firecrawl.
  • Wywołania web_fetch w 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_fetch przechodzi 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.
Jeśli nie skonfigurowano zmiennej środowiskowej serwera proxy HTTP(S) albo host docelowy jest wykluczony przez NO_PROXY, web_fetch powraca do standardowej ścisłej ścieżki z lokalnym przypinaniem DNS.

Limity i bezpieczeństwo

  • maxChars jest ograniczane do tools.web.fetch.maxCharsCap (domyślnie 20000)
  • Treść odpowiedzi jest ograniczona do maxResponseBytes (domyślnie 750000, 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.allowRfc2544BenchmarkRange oraz tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange to 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ślnie 3)
  • useTrustedEnvProxy wymaga 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 DNS
  • web_fetch dział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:

Powiązane