Tools
Pengambilan web
Alat web_fetch melakukan HTTP GET biasa dan mengekstrak konten yang dapat dibaca
(HTML ke markdown atau teks). Alat ini tidak menjalankan JavaScript.
Untuk situs yang sangat bergantung pada JS atau halaman yang dilindungi login, gunakan Web Browser sebagai gantinya.
Mulai cepat
web_fetch diaktifkan secara default -- tidak perlu konfigurasi. Agen dapat
langsung memanggilnya:
await web_fetch({ url: "https://example.com/article" });Parameter alat
urlstringrequiredURL yang akan diambil. Hanya http(s).
extractMode'markdown' | 'text'default: markdownFormat output setelah ekstraksi konten utama.
maxCharsnumberPotong output hingga sebanyak karakter ini.
Cara kerjanya
Ambil
Mengirim HTTP GET dengan User-Agent mirip Chrome dan header
Accept-Language. Memblokir hostname privat/internal dan memeriksa ulang pengalihan.
Ekstrak
Menjalankan Readability (ekstraksi konten utama) pada respons HTML.
Fallback (opsional)
Jika Readability gagal dan Firecrawl dipilih, mencoba lagi melalui API Firecrawl dengan mode penghindaran bot.
Cache
Hasil di-cache selama 15 menit (dapat dikonfigurasi) untuk mengurangi pengambilan berulang pada URL yang sama.
Pembaruan progres
web_fetch memancarkan baris progres publik hanya ketika pengambilan masih tertunda
setelah lima detik:
Fetching page content...Cache hit cepat dan respons jaringan cepat selesai sebelum timer berjalan, sehingga tidak menampilkan baris progres. Jika panggilan dibatalkan, timer dibersihkan. Ketika pengambilan akhirnya selesai, agen menerima hasil alat normal; baris progres hanya status UI kanal dan tidak pernah berisi konten halaman yang diambil.
Konfigurasi
{ tools: { web: { fetch: { enabled: true, // default: true provider: "firecrawl", // optional; omit for auto-detect maxChars: 50000, // max output chars maxCharsCap: 50000, // hard cap for maxChars param maxResponseBytes: 2000000, // max download size before truncation 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 }, }, }, },}Fallback Firecrawl
Jika ekstraksi Readability gagal, web_fetch dapat fallback ke
Firecrawl untuk penghindaran bot dan ekstraksi yang lebih baik:
{ 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: 86400000, // cache duration (1 day) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey bersifat opsional dan mendukung objek SecretRef.
Konfigurasi lama tools.web.fetch.firecrawl.* dimigrasikan otomatis oleh openclaw doctor --fix.
Perilaku runtime saat ini:
tools.web.fetch.providermemilih penyedia fallback pengambilan secara eksplisit.- Jika
providerdihilangkan, OpenClaw mendeteksi otomatis penyedia web-fetch siap pertama dari kredensial yang dikonfigurasi.web_fetchnon-sandbox dapat menggunakan Plugin terpasang yang mendeklarasikancontracts.webFetchProvidersdan mendaftarkan penyedia yang cocok saat runtime. Plugin Firecrawl resmi menyediakan fallback ini. - Panggilan
web_fetchtersandbox mengizinkan penyedia bawaan serta penyedia terpasang yang asal-usul npm resmi atau ClawHub-nya terverifikasi. Saat ini itu mengizinkan Plugin Firecrawl resmi; Plugin pengambilan eksternal pihak ketiga tetap dikecualikan. - Jika Readability dinonaktifkan,
web_fetchlangsung melewati ke fallback penyedia yang dipilih. Jika tidak ada penyedia yang tersedia, panggilan gagal tertutup.
Proxy env tepercaya
Jika deployment Anda mengharuskan web_fetch melalui proxy outbound
HTTP(S) tepercaya, setel tools.web.fetch.useTrustedEnvProxy: true.
Dalam mode ini, OpenClaw tetap menerapkan pemeriksaan SSRF berbasis hostname sebelum mengirim permintaan, tetapi membiarkan proxy menyelesaikan DNS alih-alih melakukan pinning DNS lokal. Aktifkan ini hanya ketika proxy dikendalikan operator dan menegakkan kebijakan outbound setelah resolusi DNS.
Batas dan keamanan
maxCharsdibatasi ketools.web.fetch.maxCharsCap- Body respons dibatasi pada
maxResponseBytessebelum parsing; respons yang terlalu besar dipotong dengan peringatan - Hostname privat/internal diblokir
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangedantools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangeadalah opt-in sempit untuk stack proxy fake-IP tepercaya; biarkan tidak disetel kecuali proxy Anda memiliki rentang sintetis tersebut dan menegakkan kebijakan tujuannya sendiri- Pengalihan diperiksa dan dibatasi oleh
maxRedirects useTrustedEnvProxyadalah opt-in eksplisit dan hanya boleh diaktifkan untuk proxy yang dikendalikan operator yang tetap menegakkan kebijakan outbound setelah resolusi DNSweb_fetchbersifat upaya terbaik -- beberapa situs memerlukan Web Browser
Profil alat
Jika Anda menggunakan profil alat atau allowlist, tambahkan web_fetch atau group:web:
{ tools: { allow: ["web_fetch"], // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search) },}Terkait
- Web Search -- cari di web dengan beberapa penyedia
- Web Browser -- otomatisasi browser penuh untuk situs yang sangat bergantung pada JS
- Firecrawl -- alat pencarian dan scraping Firecrawl