Langsung ke konten utama

Web Fetch

Tool web_fetch melakukan HTTP GET biasa dan mengekstrak konten yang mudah dibaca (HTML ke markdown atau teks). Tool ini tidak mengeksekusi JavaScript. Untuk situs yang sangat bergantung pada JS atau halaman yang dilindungi login, gunakan Web Browser sebagai gantinya.

Mulai cepat

web_fetch aktif secara default — tidak perlu konfigurasi. Agen dapat langsung memanggilnya:
await web_fetch({ url: "https://example.com/article" });

Parameter tool

ParameterTipeDeskripsi
urlstringURL yang akan diambil (wajib, hanya http/https)
extractModestring"markdown" (default) atau "text"
maxCharsnumberPotong output hingga sejumlah karakter ini

Cara kerjanya

1

Ambil

Mengirim HTTP GET dengan User-Agent mirip Chrome dan header Accept-Language. Memblokir hostname privat/internal dan memeriksa ulang redirect.
2

Ekstrak

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

Fallback (opsional)

Jika Readability gagal dan Firecrawl telah dikonfigurasi, coba lagi melalui API Firecrawl dengan mode penghindaran bot.
4

Cache

Hasil di-cache selama 15 menit (dapat dikonfigurasi) untuk mengurangi pengambilan berulang pada URL yang sama.

Konfigurasi

{
  tools: {
    web: {
      fetch: {
        enabled: true, // default: true
        provider: "firecrawl", // opsional; hilangkan untuk deteksi otomatis
        maxChars: 50000, // jumlah karakter output maksimum
        maxCharsCap: 50000, // batas keras untuk parameter maxChars
        maxResponseBytes: 2000000, // ukuran unduhan maksimum sebelum dipotong
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
        maxRedirects: 3,
        readability: true, // gunakan ekstraksi Readability
        userAgent: "Mozilla/5.0 ...", // override User-Agent
      },
    },
  },
}

Fallback Firecrawl

Jika ekstraksi Readability gagal, web_fetch dapat menggunakan fallback ke Firecrawl untuk penghindaran bot dan ekstraksi yang lebih baik:
{
  tools: {
    web: {
      fetch: {
        provider: "firecrawl", // opsional; hilangkan untuk deteksi otomatis dari kredensial yang tersedia
      },
    },
  },
  plugins: {
    entries: {
      firecrawl: {
        enabled: true,
        config: {
          webFetch: {
            apiKey: "fc-...", // opsional jika FIRECRAWL_API_KEY ditetapkan
            baseUrl: "https://api.firecrawl.dev",
            onlyMainContent: true,
            maxAgeMs: 86400000, // durasi cache (1 hari)
            timeoutSeconds: 60,
          },
        },
      },
    },
  },
}
plugins.entries.firecrawl.config.webFetch.apiKey mendukung objek SecretRef. Konfigurasi lama tools.web.fetch.firecrawl.* dimigrasikan otomatis oleh openclaw doctor --fix.
Jika Firecrawl diaktifkan dan SecretRef-nya tidak terurai tanpa fallback env FIRECRAWL_API_KEY, startup gateway akan gagal dengan cepat.
Override baseUrl Firecrawl dikunci ketat: harus menggunakan https:// dan host Firecrawl resmi (api.firecrawl.dev).
Perilaku runtime saat ini:
  • tools.web.fetch.provider memilih penyedia fallback fetch secara eksplisit.
  • Jika provider dihilangkan, OpenClaw mendeteksi otomatis penyedia web-fetch siap pertama dari kredensial yang tersedia. Saat ini penyedia bawaannya adalah Firecrawl.
  • Jika Readability dinonaktifkan, web_fetch langsung melewati ke fallback penyedia yang dipilih. Jika tidak ada penyedia yang tersedia, ia gagal tertutup.

Batasan dan keamanan

  • maxChars dibatasi ke tools.web.fetch.maxCharsCap
  • Isi respons dibatasi pada maxResponseBytes sebelum parsing; respons yang terlalu besar akan dipotong dengan peringatan
  • Hostname privat/internal diblokir
  • Redirect diperiksa dan dibatasi oleh maxRedirects
  • web_fetch bersifat best-effort — beberapa situs memerlukan Web Browser

Profil tool

Jika Anda menggunakan profil tool atau allowlist, tambahkan web_fetch atau group:web:
{
  tools: {
    allow: ["web_fetch"],
    // atau: allow: ["group:web"]  (mencakup web_fetch, web_search, dan x_search)
  },
}

Terkait

  • Web Search — telusuri web dengan beberapa penyedia
  • Web Browser — otomatisasi browser penuh untuk situs yang sangat bergantung pada JS
  • Firecrawl — tool pencarian dan scraping Firecrawl