Tools
جلب الويب
تُجري أداة web_fetch طلب HTTP GET عاديًا وتستخرج المحتوى القابل للقراءة
(من HTML إلى markdown أو نص). وهي لا تنفّذ JavaScript.
للمواقع كثيفة الاعتماد على JS أو الصفحات المحمية بتسجيل الدخول، استخدم متصفح الويب بدلًا من ذلك.
البدء السريع
web_fetch مفعّلة افتراضيًا -- لا يلزم أي إعداد. يستطيع الوكيل
استدعاءها فورًا:
await web_fetch({ url: "https://example.com/article" });معاملات الأداة
urlstringrequiredعنوان URL المراد جلبه. http(s) فقط.
extractMode'markdown' | 'text'default: markdownتنسيق الإخراج بعد استخراج المحتوى الرئيسي.
maxCharsnumberاقتطاع الإخراج إلى هذا العدد من الأحرف.
كيف تعمل
Fetch
يرسل طلب HTTP GET باستخدام User-Agent مشابه لـ Chrome وترويسة
Accept-Language. يحظر أسماء المضيفين الخاصة/الداخلية ويعيد فحص عمليات إعادة التوجيه.
Extract
يشغّل Readability (استخراج المحتوى الرئيسي) على استجابة HTML.
Fallback (optional)
إذا فشل Readability وكان Firecrawl محددًا، يعيد المحاولة عبر Firecrawl API بوضع تجاوز البوتات.
Cache
تُخزّن النتائج مؤقتًا لمدة 15 دقيقة (قابلة للإعداد) لتقليل عمليات الجلب المتكررة لنفس عنوان URL.
تحديثات التقدم
تصدر web_fetch سطر تقدم عامًا فقط عندما يظل الجلب معلقًا
بعد خمس ثوانٍ:
Fetching page content...تنتهي إصابات التخزين المؤقت السريعة واستجابات الشبكة السريعة قبل تشغيل المؤقت، لذلك لا تعرض سطر تقدم. إذا أُلغيت الاستدعاء، يُمسح المؤقت. عندما يكتمل الجلب في النهاية، يتلقى الوكيل نتيجة الأداة العادية؛ سطر التقدم هو حالة واجهة قناة فقط ولا يحتوي أبدًا على محتوى الصفحة المجلوب.
الإعداد
{ 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 }, }, }, },}احتياطي Firecrawl
إذا فشل استخراج Readability، يمكن لـ web_fetch الرجوع إلى
Firecrawl لتجاوز البوتات وتحسين الاستخراج:
{ 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 اختياري ويدعم كائنات SecretRef.
تُرحّل إعدادات tools.web.fetch.firecrawl.* القديمة تلقائيًا بواسطة openclaw doctor --fix.
سلوك وقت التشغيل الحالي:
- يحدد
tools.web.fetch.providerمزود احتياطي الجلب صراحةً. - إذا حُذف
provider، يكتشف OpenClaw تلقائيًا أول مزود web-fetch جاهز من بيانات الاعتماد المعدّة. يمكن لاستدعاءweb_fetchغير المعزول استخدام Plugins المثبتة التي تعلنcontracts.webFetchProvidersوتسجل مزودًا مطابقًا في وقت التشغيل. يوفر Plugin الرسمي لـ Firecrawl هذا الاحتياطي. - تسمح استدعاءات
web_fetchالمعزولة بالمزودين المضمّنين بالإضافة إلى المزودين المثبتين الذين جرى التحقق من مصدرهم الرسمي عبر npm أو ClawHub. حاليًا يسمح ذلك بـ Plugin الرسمي لـ Firecrawl؛ وتظل Plugins الجلب الخارجية التابعة لأطراف ثالثة مستبعدة. - إذا عُطّل Readability، تتجاوز
web_fetchمباشرة إلى احتياطي المزود المحدد. إذا لم يتوفر أي مزود، تفشل بإغلاق آمن.
وكيل env موثوق
إذا كان نشرُك يتطلب أن تمر web_fetch عبر وكيل HTTP(S) صادر
موثوق، فاضبط tools.web.fetch.useTrustedEnvProxy: true.
في هذا الوضع، يظل OpenClaw يطبق فحوصات SSRF المستندة إلى اسم المضيف قبل إرسال الطلب، لكنه يترك للوكيل حل DNS بدلًا من تثبيت DNS المحلي. فعّل هذا فقط عندما يكون الوكيل خاضعًا لتحكم المشغّل ويفرض سياسة الخروج بعد حل DNS.
الحدود والسلامة
- يُقيّد
maxCharsإلىtools.web.fetch.maxCharsCap - يُحدّ جسم الاستجابة عند
maxResponseBytesقبل التحليل؛ وتُقتطع الاستجابات كبيرة الحجم مع تحذير - تُحظر أسماء المضيفين الخاصة/الداخلية
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeوtools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangeهما خيارا تفعيل ضيقان لمكدسات وكلاء fake-IP الموثوقة؛ اتركهما غير مضبوطين ما لم يكن وكيلك يملك تلك النطاقات الاصطناعية ويفرض سياسة الوجهة الخاصة به- تُفحص عمليات إعادة التوجيه وتُحد بواسطة
maxRedirects useTrustedEnvProxyخيار تفعيل صريح ويجب ألا يُفعّل إلا للوكلاء الخاضعين لتحكم المشغّل الذين ما زالوا يفرضون سياسة الخروج بعد حل DNSweb_fetchتعمل بأفضل جهد -- تحتاج بعض المواقع إلى متصفح الويب
ملفات تعريف الأدوات
إذا كنت تستخدم ملفات تعريف الأدوات أو قوائم السماح، فأضف web_fetch أو group:web:
{ tools: { allow: ["web_fetch"], // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search) },}ذات صلة
- بحث الويب -- ابحث في الويب باستخدام مزودين متعددين
- متصفح الويب -- أتمتة متصفح كاملة للمواقع كثيفة الاعتماد على JS
- Firecrawl -- أدوات بحث وكشط Firecrawl