Skip to main content
web_fetch melakukan HTTP GET biasa dan mengekstrak konten yang dapat dibaca (HTML menjadi markdown atau teks). Ini tidak menjalankan JavaScript. Untuk situs yang sangat bergantung pada JS atau halaman yang dilindungi login, gunakan Browser Web sebagai gantinya.

Mulai cepat

Diaktifkan secara default, tidak memerlukan konfigurasi:

Parameter alat

string
wajib
URL yang akan diambil. Hanya http(s).
'markdown' | 'text'
default:"markdown"
Format keluaran setelah ekstraksi konten utama.
number
Pangkas keluaran hingga sejumlah karakter ini. Dibatasi hingga tools.web.fetch.maxCharsCap.

Hasil

web_fetch mengembalikan hasil terstruktur tertutup dengan bidang-bidang berikut:
  • Metadata permintaan: url, finalUrl, status, extractMode, dan extractor
  • Metadata respons opsional: contentType, title, dan warning (dihilangkan jika tidak ada)
  • Metadata konten terbungkus: externalContent, truncated, length, rawLength, fetchedAt, tookMs, dan text
  • cached: true opsional saat cache ditemukan
  • spill: { path, chars, truncated? } opsional ketika konten yang dipangkas ditulis ke berkas sementara privat; truncated hanya tersedia ketika berkas tersebut berisi sebagian konten sumber
length adalah panjang text yang terbungkus. rawLength adalah panjang konten yang diekstrak sebelum pembungkusan konten eksternal.

Cara kerjanya

1

Ambil

Mengirim HTTP GET dengan User-Agent menyerupai Chrome dan header Accept-Language. Memblokir nama host privat/internal dan memeriksa ulang pengalihan.
2

Ekstrak

Menjalankan Readability (ekstraksi konten utama) pada respons HTML.
3

Fallback (opsional)

Jika Readability gagal dan penyedia pengambilan tersedia, mencoba kembali melalui penyedia tersebut (misalnya mode pengelakan bot Firecrawl).
4

Cache

Hasil disimpan dalam cache selama 15 menit (dapat dikonfigurasi) untuk mengurangi pengambilan berulang URL yang sama.

Pembaruan progres

web_fetch memancarkan baris progres publik hanya ketika pengambilan masih tertunda setelah lima detik:
Cache yang ditemukan dengan cepat dan respons jaringan yang cepat selesai sebelum pewaktu terpicu, sehingga tidak pernah menampilkan baris progres. Membatalkan panggilan akan menghapus pewaktu. Baris progres hanyalah status UI kanal dan tidak pernah memuat konten halaman yang diambil.

Konfigurasi

Fallback Firecrawl

Jika ekstraksi Readability gagal, web_fetch dapat menggunakan Firecrawl sebagai fallback untuk pengelakan bot dan ekstraksi yang lebih baik:
plugins.entries.firecrawl.config.webFetch.apiKey bersifat opsional dan mendukung objek SecretRef. Konfigurasi lama tools.web.fetch.firecrawl.* dimigrasikan otomatis ke plugins.entries.firecrawl.config.webFetch melalui openclaw doctor --fix.
Jika Anda mengonfigurasi SecretRef kunci API Firecrawl dan referensi tersebut tidak terselesaikan tanpa fallback lingkungan FIRECRAWL_API_KEY, proses mulai Gateway langsung gagal.
Penimpaan baseUrl Firecrawl dibatasi secara ketat: lalu lintas terkelola menggunakan https://api.firecrawl.dev; penimpaan yang dihosting sendiri harus menargetkan endpoint privat atau internal, dan http:// hanya diterima untuk target privat tersebut.
Perilaku runtime saat ini:
  • tools.web.fetch.provider memilih penyedia fallback pengambilan secara eksplisit.
  • Jika provider dihilangkan, OpenClaw secara otomatis mendeteksi penyedia pengambilan web siap pakai pertama dari kredensial yang dikonfigurasi. web_fetch tanpa sandbox dapat menggunakan plugin terinstal yang mendeklarasikan contracts.webFetchProviders dan mendaftarkan penyedia yang cocok saat runtime. Plugin Firecrawl resmi menyediakan fallback ini saat ini.
  • Panggilan web_fetch dalam sandbox mengizinkan penyedia bawaan serta penyedia terinstal yang asal resmi npm atau ClawHub-nya telah diverifikasi. Saat ini, ini mengizinkan plugin Firecrawl resmi; plugin pengambilan eksternal pihak ketiga tetap dikecualikan.
  • Jika Readability dinonaktifkan, web_fetch langsung beralih ke fallback penyedia yang dipilih. Jika tidak ada penyedia yang tersedia, operasi gagal secara tertutup.

Proksi lingkungan tepercaya

Jika deployment Anda mengharuskan web_fetch melalui proksi HTTP(S) keluar yang tepercaya, tetapkan tools.web.fetch.useTrustedEnvProxy: true. Dalam mode ini, OpenClaw tetap menerapkan pemeriksaan SSRF berbasis nama host sebelum mengirim permintaan, tetapi mengizinkan proksi menyelesaikan DNS alih-alih melakukan penyematan DNS lokal. Aktifkan ini hanya jika proksi dikendalikan operator dan memberlakukan kebijakan keluar setelah resolusi DNS.
Jika tidak ada variabel lingkungan proksi HTTP(S) yang dikonfigurasi, atau host target dikecualikan oleh NO_PROXY, web_fetch kembali ke jalur ketat normal dengan penyematan DNS lokal.

Batas dan keamanan

  • maxChars dibatasi hingga tools.web.fetch.maxCharsCap (default 20000)
  • Isi respons dibatasi hingga maxResponseBytes (default 750000, dibatasi dalam rentang 32000-10000000) sebelum penguraian; respons yang terlalu besar dipangkas dengan peringatan
  • Nama host privat/internal diblokir
  • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange dan tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange adalah pilihan eksplisit terbatas untuk tumpukan proksi IP palsu tepercaya; biarkan tidak ditetapkan kecuali proksi Anda memiliki rentang sintetis tersebut dan memberlakukan kebijakan tujuannya sendiri
  • Pengalihan diperiksa dan dibatasi oleh maxRedirects (default 3)
  • useTrustedEnvProxy adalah pilihan eksplisit dan hanya boleh diaktifkan untuk proksi yang dikendalikan operator yang tetap memberlakukan kebijakan keluar setelah resolusi DNS
  • web_fetch bersifat upaya terbaik — beberapa situs memerlukan Browser Web

Profil alat

Jika Anda menggunakan profil alat atau daftar izin, tambahkan web_fetch atau group:web:

Terkait

  • Pencarian Web — cari web dengan beberapa penyedia
  • Browser Web — otomatisasi browser lengkap untuk situs yang sangat bergantung pada JS
  • Firecrawl — alat pencarian dan scraping Firecrawl