Tools

Web'den getirme

web_fetch düz bir HTTP GET isteği gerçekleştirir ve okunabilir içeriği (HTML'den markdown'a veya metne) çıkarır. JavaScript'i çalıştırmaz. JS ağırlıklı siteler veya oturum açma korumalı sayfalar için bunun yerine Web Tarayıcısı kullanın.

Hızlı başlangıç

Varsayılan olarak etkindir, yapılandırma gerekmez:

javascript
await web_fetch({ url: "https://example.com/article" });

Araç parametreleri

urlstringrequired

Getirilecek URL. Yalnızca http(s).

extractMode'markdown' | 'text'default: markdown

Ana içerik çıkarıldıktan sonraki çıktı biçimi.

maxCharsnumber

Çıktıyı bu karakter sayısına kadar kırpın. tools.web.fetch.maxCharsCap ile sınırlandırılır.

Sonuç

web_fetch şu alanları içeren kapalı, yapılandırılmış bir sonuç döndürür:

  • İstek meta verileri: url, finalUrl, status, extractMode ve extractor
  • İsteğe bağlı yanıt meta verileri: contentType, title ve warning (mevcut olmadığında dahil edilmez)
  • Sarmalanmış içerik meta verileri: externalContent, truncated, length, rawLength, fetchedAt, tookMs ve text
  • Önbellek isabetinde isteğe bağlı cached: true
  • Kırpılmış içerik özel bir geçici dosyaya yazıldığında isteğe bağlı spill: { path, chars, truncated? }; truncated yalnızca bu dosya kısmi kaynak içeriği barındırdığında mevcuttur

length, sarmalanmış text uzunluğudur. rawLength, harici içerik sarmalamasından önceki çıkarılmış içerik uzunluğudur.

Nasıl çalışır?

  • Getirme

    Chrome benzeri bir User-Agent ve Accept-Language üst bilgisiyle bir HTTP GET isteği gönderir. Özel/dahili ana bilgisayar adlarını engeller ve yönlendirmeleri yeniden denetler.

  • Çıkarma

    HTML yanıtında Readability'yi (ana içerik çıkarma) çalıştırır.

  • Geri dönüş (isteğe bağlı)

    Readability başarısız olursa ve bir getirme sağlayıcısı mevcutsa istek bu sağlayıcı üzerinden yeniden denenir (örneğin Firecrawl'ın bot engellerini aşma modu).

  • Önbellek

    Aynı URL'nin tekrar tekrar getirilmesini azaltmak için sonuçlar 15 dakika boyunca önbelleğe alınır (yapılandırılabilir).

  • İlerleme güncellemeleri

    web_fetch, yalnızca getirme işlemi beş saniye sonra hâlâ beklemedeyse herkese açık bir ilerleme satırı yayınlar:

    text
    Sayfa içeriği getiriliyor...

    Hızlı önbellek isabetleri ve hızlı ağ yanıtları zamanlayıcı tetiklenmeden önce tamamlandığından hiçbir zaman ilerleme satırı göstermez. Çağrının iptal edilmesi zamanlayıcıyı temizler. İlerleme satırı yalnızca kanal kullanıcı arayüzü durumudur ve getirilen sayfa içeriğini asla barındırmaz.

    Yapılandırma

    json5
    {  tools: {    web: {      fetch: {        enabled: true, // varsayılan: true        provider: "firecrawl", // isteğe bağlı; otomatik algılama için dahil etmeyin        maxChars: 20000, // varsayılan çıktı karakterleri; maxCharsCap ile sınırlandırılır        maxCharsCap: 20000, // maxChars parametresi için kesin üst sınır        maxResponseBytes: 750000, // kırpmadan önceki en yüksek indirme boyutu (32000-10000000)        timeoutSeconds: 30,        cacheTtlMinutes: 15,        maxRedirects: 3,        useTrustedEnvProxy: false, // güvenilir bir HTTP(S) ortam proxy'sinin DNS'i çözmesine izin ver        readability: true, // Readability çıkarmasını kullan        userAgent: "Mozilla/5.0 ...", // User-Agent'ı geçersiz kıl        ssrfPolicy: {          allowRfc2544BenchmarkRange: true, // 198.18.0.0/15 kullanan güvenilir sahte IP proxy'leri için açık katılım          allowIpv6UniqueLocalRange: true, // fc00::/7 kullanan güvenilir sahte IP proxy'leri için açık katılım        },      },    },  },}

    Firecrawl geri dönüşü

    Readability çıkarma işlemi başarısız olursa web_fetch, bot engellerini aşmak ve daha iyi çıkarma sağlamak için Firecrawl hizmetine geri dönebilir:

    json5
    {  tools: {    web: {      fetch: {        provider: "firecrawl", // isteğe bağlı; mevcut kimlik bilgilerinden otomatik algılama için dahil etmeyin      },    },  },  plugins: {    entries: {      firecrawl: {        enabled: true,        config: {          webFetch: {            // apiKey: "fc-...", // isteğe bağlı; anahtarsız başlangıç erişimi için dahil etmeyin            baseUrl: "https://api.firecrawl.dev",            onlyMainContent: true,            maxAgeMs: 172800000, // önbellek süresi (2 gün)            timeoutSeconds: 60,          },        },      },    },  },}

    plugins.entries.firecrawl.config.webFetch.apiKey isteğe bağlıdır ve SecretRef nesnelerini destekler. Eski tools.web.fetch.firecrawl.* yapılandırması, openclaw doctor --fix aracılığıyla otomatik olarak plugins.entries.firecrawl.config.webFetch biçimine geçirilir.

    Geçerli çalışma zamanı davranışı:

    • tools.web.fetch.provider, getirme geri dönüşü sağlayıcısını açıkça seçer.
    • provider dahil edilmezse OpenClaw, yapılandırılmış kimlik bilgilerinden hazır durumdaki ilk web getirme sağlayıcısını otomatik olarak algılar. Korumalı alanda çalışmayan web_fetch, contracts.webFetchProviders bildiren ve çalışma zamanında eşleşen bir sağlayıcı kaydeden yüklü Plugin'leri kullanabilir. Resmî Firecrawl Plugin'i günümüzde bu geri dönüşü sağlar.
    • Korumalı alandaki web_fetch çağrıları, paketlenmiş sağlayıcıların yanı sıra resmî npm veya ClawHub kaynağı doğrulanmış yüklü sağlayıcılara izin verir. Günümüzde bu, resmî Firecrawl Plugin'ine izin verir; üçüncü taraf harici getirme Plugin'leri kapsam dışında kalır.
    • Readability devre dışıysa web_fetch doğrudan seçilen sağlayıcı geri dönüşüne geçer. Kullanılabilir sağlayıcı yoksa güvenli biçimde başarısız olur.

    Güvenilir ortam proxy'si

    Dağıtımınızda web_fetch isteğinin güvenilir bir giden HTTP(S) proxy'si üzerinden geçmesi gerekiyorsa tools.web.fetch.useTrustedEnvProxy: true değerini ayarlayın.

    Bu modda OpenClaw, isteği göndermeden önce ana bilgisayar adına dayalı SSRF denetimlerini uygulamaya devam eder ancak yerel DNS sabitlemesi yapmak yerine proxy'nin DNS'i çözmesine izin verir. Bunu yalnızca proxy operatör denetimindeyse ve DNS çözümlemesinden sonra giden trafik politikasını uyguluyorsa etkinleştirin.

    Sınırlar ve güvenlik

    • maxChars, tools.web.fetch.maxCharsCap ile sınırlandırılır (varsayılan 20000)
    • Yanıt gövdesi ayrıştırılmadan önce maxResponseBytes ile sınırlandırılır (varsayılan 750000, 32000-10000000 aralığıyla sınırlandırılır); aşırı büyük yanıtlar bir uyarıyla kırpılır
    • Özel/dahili ana bilgisayar adları engellenir
    • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange ve tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange, güvenilir sahte IP proxy yığınları için dar kapsamlı açık katılımlardır; proxy'niz bu sentetik aralıkların sahibi değilse ve kendi hedef politikasını uygulamıyorsa bunları ayarlamayın
    • Yönlendirmeler denetlenir ve maxRedirects ile sınırlandırılır (varsayılan 3)
    • useTrustedEnvProxy açık bir katılımdır ve yalnızca DNS çözümlemesinden sonra da giden trafik politikasını uygulayan, operatör denetimindeki proxy'ler için etkinleştirilmelidir
    • web_fetch en iyi çaba esasına dayanır -- bazı siteler Web Tarayıcısı gerektirir

    Araç profilleri

    Araç profilleri veya izin listeleri kullanıyorsanız web_fetch ya da group:web ekleyin:

    json5
    {  tools: {    allow: ["web_fetch"],    // veya: allow: ["group:web"]  (web_fetch, web_search ve x_search içerir)  },}

    İlgili

    • Web Araması -- birden fazla sağlayıcıyla web'de arama yapın
    • Web Tarayıcısı -- JS ağırlıklı siteler için tam tarayıcı otomasyonu
    • Firecrawl -- Firecrawl arama ve veri kazıma araçları
    Was this useful?
    On this page

    On this page