Tools
การดึงข้อมูลจากเว็บ
web_fetch ส่งคำขอ HTTP GET แบบธรรมดาและแยกเนื้อหาที่อ่านได้ (แปลง HTML เป็น
Markdown หรือข้อความ) โดย ไม่ เรียกใช้ JavaScript สำหรับเว็บไซต์ที่พึ่งพา JS อย่างมากหรือ
หน้าที่ป้องกันด้วยการเข้าสู่ระบบ ให้ใช้ เว็บเบราว์เซอร์ แทน
เริ่มต้นอย่างรวดเร็ว
เปิดใช้งานโดยค่าเริ่มต้น ไม่ต้องกำหนดค่า:
await web_fetch({ url: "https://example.com/article" });พารามิเตอร์ของเครื่องมือ
urlstringrequiredURL ที่จะดึงข้อมูล รองรับเฉพาะ http(s)
extractMode'markdown' | 'text'default: markdownรูปแบบผลลัพธ์หลังจากแยกเนื้อหาหลัก
maxCharsnumberตัดผลลัพธ์ให้เหลือจำนวนอักขระเท่านี้ โดยจำกัดค่าสูงสุดตาม tools.web.fetch.maxCharsCap
วิธีการทำงาน
ดึงข้อมูล
ส่งคำขอ HTTP GET พร้อม User-Agent ที่คล้าย Chrome และส่วนหัว Accept-Language
บล็อกชื่อโฮสต์ส่วนตัว/ภายในและตรวจสอบการเปลี่ยนเส้นทางซ้ำ
แยกเนื้อหา
เรียกใช้ Readability (การแยกเนื้อหาหลัก) กับการตอบกลับ HTML
ทางเลือกสำรอง (ไม่บังคับ)
หาก Readability ล้มเหลวและมีผู้ให้บริการดึงข้อมูล ระบบจะลองอีกครั้งผ่าน ผู้ให้บริการนั้น (เช่น โหมดหลบเลี่ยงบอตของ Firecrawl)
แคช
ผลลัพธ์จะถูกแคชไว้ 15 นาที (กำหนดค่าได้) เพื่อลดการ ดึงข้อมูล URL เดิมซ้ำ
การอัปเดตความคืบหน้า
web_fetch จะแสดงบรรทัดความคืบหน้าแบบสาธารณะเฉพาะเมื่อการดึงข้อมูลยังคงค้างอยู่
หลังจากห้าวินาที:
กำลังดึงเนื้อหาของหน้า...การพบข้อมูลในแคชอย่างรวดเร็วและการตอบกลับจากเครือข่ายที่รวดเร็วจะเสร็จสิ้นก่อนตัวจับเวลาทำงาน จึง ไม่แสดงบรรทัดความคืบหน้า การยกเลิกการเรียกจะล้างตัวจับเวลา บรรทัด ความคืบหน้าเป็นเพียงสถานะ UI ของช่องทางและจะไม่มีเนื้อหาของหน้าที่ดึงมา
การกำหนดค่า
{ tools: { web: { fetch: { enabled: true, // ค่าเริ่มต้น: true provider: "firecrawl", // ไม่บังคับ; ละไว้เพื่อตรวจหาอัตโนมัติ maxChars: 20000, // จำนวนอักขระผลลัพธ์เริ่มต้น; จำกัดด้วย maxCharsCap maxCharsCap: 20000, // ขีดจำกัดตายตัวสำหรับพารามิเตอร์ maxChars maxResponseBytes: 750000, // ขนาดดาวน์โหลดสูงสุดก่อนตัดทอน (32000-10000000) timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // ให้พร็อกซี HTTP(S) จากสภาพแวดล้อมที่เชื่อถือได้แปลงชื่อ DNS readability: true, // ใช้การแยกเนื้อหาด้วย Readability userAgent: "Mozilla/5.0 ...", // แทนที่ User-Agent ssrfPolicy: { allowRfc2544BenchmarkRange: true, // เลือกเปิดใช้สำหรับพร็อกซี IP จำลองที่เชื่อถือได้ซึ่งใช้ 198.18.0.0/15 allowIpv6UniqueLocalRange: true, // เลือกเปิดใช้สำหรับพร็อกซี IP จำลองที่เชื่อถือได้ซึ่งใช้ fc00::/7 }, }, }, },}ทางเลือกสำรอง Firecrawl
หากการแยกเนื้อหาด้วย Readability ล้มเหลว web_fetch สามารถใช้
Firecrawl เป็นทางเลือกสำรองเพื่อหลบเลี่ยงบอตและแยกเนื้อหาได้ดียิ่งขึ้น:
{ tools: { web: { fetch: { provider: "firecrawl", // ไม่บังคับ; ละไว้เพื่อตรวจหาอัตโนมัติจากข้อมูลประจำตัวที่มี }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // ไม่บังคับ; ละไว้เพื่อใช้สิทธิ์เริ่มต้นแบบไม่ต้องใช้คีย์ baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 172800000, // ระยะเวลาแคช (2 วัน) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey เป็นตัวเลือกที่ไม่บังคับและรองรับออบเจ็กต์ SecretRef
การกำหนดค่าแบบเดิม tools.web.fetch.firecrawl.* จะถูกย้ายโดยอัตโนมัติไปยัง
plugins.entries.firecrawl.config.webFetch ผ่าน openclaw doctor --fix
พฤติกรรมรันไทม์ปัจจุบัน:
tools.web.fetch.providerเลือกผู้ให้บริการทางเลือกสำรองสำหรับการดึงข้อมูลอย่างชัดเจน- หากละ
providerไว้ OpenClaw จะตรวจหาผู้ให้บริการดึงข้อมูลเว็บรายแรกที่พร้อมใช้งานโดยอัตโนมัติ จากข้อมูลประจำตัวที่กำหนดค่าไว้web_fetchที่ไม่ได้ทำงานในแซนด์บ็อกซ์สามารถใช้ Plugin ที่ติดตั้งไว้ซึ่งประกาศcontracts.webFetchProvidersและลงทะเบียน ผู้ให้บริการที่ตรงกันขณะรันไทม์ ปัจจุบัน Plugin Firecrawl อย่างเป็นทางการมี ทางเลือกสำรองนี้ - การเรียก
web_fetchในแซนด์บ็อกซ์อนุญาตผู้ให้บริการที่รวมมาในตัว รวมถึงผู้ให้บริการที่ติดตั้ง ซึ่งได้รับการยืนยันแหล่งที่มาจาก npm อย่างเป็นทางการหรือ ClawHub ปัจจุบันอนุญาต Plugin Firecrawl อย่างเป็นทางการ แต่ยังคงไม่รวม Plugin ดึงข้อมูลภายนอกจากบุคคลที่สาม - หากปิดใช้งาน Readability
web_fetchจะข้ามไปใช้ทางเลือกสำรองจากผู้ให้บริการที่เลือก โดยตรง หากไม่มีผู้ให้บริการที่พร้อมใช้งาน ระบบจะล้มเหลวแบบปิดกั้น
พร็อกซีสภาพแวดล้อมที่เชื่อถือได้
หากการปรับใช้ของคุณกำหนดให้ web_fetch ต้องผ่านพร็อกซี HTTP(S)
ขาออกที่เชื่อถือได้ ให้ตั้งค่า tools.web.fetch.useTrustedEnvProxy: true
ในโหมดนี้ OpenClaw ยังคงตรวจสอบ SSRF ตามชื่อโฮสต์ก่อนส่ง คำขอ แต่จะให้พร็อกซีแปลงชื่อ DNS แทนการตรึง DNS ภายในเครื่อง เปิดใช้งานเฉพาะเมื่อพร็อกซีอยู่ภายใต้การควบคุมของผู้ปฏิบัติงานและบังคับใช้ นโยบายขาออกหลังการแปลงชื่อ DNS
ขีดจำกัดและความปลอดภัย
maxCharsถูกจำกัดไว้ที่tools.web.fetch.maxCharsCap(ค่าเริ่มต้น20000)- เนื้อหาการตอบกลับถูกจำกัดไว้ที่
maxResponseBytes(ค่าเริ่มต้น750000และจำกัดให้อยู่ระหว่าง 32000-10000000) ก่อนแยกวิเคราะห์ การตอบกลับที่มีขนาดใหญ่เกินไปจะถูกตัดทอนพร้อมคำเตือน - ชื่อโฮสต์ส่วนตัว/ภายในถูกบล็อก
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeและtools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangeเป็นตัวเลือกเปิดใช้เฉพาะกรณี สำหรับชุดพร็อกซี IP จำลองที่เชื่อถือได้ ปล่อยไว้โดยไม่ตั้งค่า เว้นแต่พร็อกซีของคุณจะเป็นเจ้าของ ช่วงที่สังเคราะห์เหล่านั้นและบังคับใช้นโยบายปลายทางของตนเอง- การเปลี่ยนเส้นทางจะถูกตรวจสอบและจำกัดด้วย
maxRedirects(ค่าเริ่มต้น3) useTrustedEnvProxyเป็นตัวเลือกที่ต้องเปิดใช้อย่างชัดเจน และควรเปิดใช้เฉพาะกับ พร็อกซีที่อยู่ภายใต้การควบคุมของผู้ปฏิบัติงาน ซึ่งยังคงบังคับใช้นโยบายขาออกหลังการ แปลงชื่อ DNSweb_fetchทำงานแบบพยายามให้ดีที่สุด -- บางเว็บไซต์จำเป็นต้องใช้ เว็บเบราว์เซอร์
โปรไฟล์เครื่องมือ
หากคุณใช้โปรไฟล์เครื่องมือหรือรายการที่อนุญาต ให้เพิ่ม web_fetch หรือ group:web:
{ tools: { allow: ["web_fetch"], // หรือ: allow: ["group:web"] (รวม web_fetch, web_search และ x_search) },}เนื้อหาที่เกี่ยวข้อง
- การค้นหาเว็บ -- ค้นหาเว็บด้วยผู้ให้บริการหลายราย
- เว็บเบราว์เซอร์ -- ระบบอัตโนมัติของเบราว์เซอร์เต็มรูปแบบสำหรับเว็บไซต์ที่พึ่งพา JS อย่างมาก
- Firecrawl -- เครื่องมือค้นหาและดึงข้อมูลของ Firecrawl