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'تنسيق الإخراج بعد استخراج المحتوى الرئيسي.
maxCharsnumberاقتطاع الإخراج إلى هذا العدد من الأحرف.
كيف تعمل
الجلب
ترسل طلب HTTP GET مع User-Agent شبيه بـ Chrome وترويسة Accept-Language.
تحظر أسماء المضيفين الخاصة/الداخلية وتعيد فحص عمليات إعادة التوجيه.
الاستخراج
تشغّل Readability (استخراج المحتوى الرئيسي) على استجابة HTML.
الخيار الاحتياطي (اختياري)
إذا فشل Readability وكان Firecrawl مضبوطًا، تعيد المحاولة عبر Firecrawl API مع وضع تجاوز البوتات.
ذاكرة التخزين المؤقت
تُخزّن النتائج مؤقتًا لمدة 15 دقيقة (قابلة للضبط) لتقليل عمليات الجلب المتكررة لعنوان URL نفسه.
الإعداد
{
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 if FIRECRAWL_API_KEY is set
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وتُسجّل موفرًا مطابقًا في وقت التشغيل. حاليًا الموفر المضمّن هو Firecrawl. - تبقى استدعاءات
web_fetchالمعزولة مقتصرة على الموفرين المضمّنين. - إذا كان Readability معطلًا، يتخطى
web_fetchمباشرةً إلى الخيار الاحتياطي للموفر المحدد. إذا لم يتوفر أي موفر، فإنه يفشل بشكل مغلق.
وكيل البيئة الموثوق
إذا كان النشر لديك يتطلب مرور 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تفعيلًا اختياريًا صريحًا ويجب ألا يُمكّن إلا للوكلاء الخاضعين لتحكم المشغّل الذين لا يزالون يفرضون سياسة الصادر بعد حل DNS web_fetchجهدها الأفضل -- بعض المواقع تحتاج إلى متصفح الويب
ملفات تعريف الأدوات
إذا كنت تستخدم ملفات تعريف الأدوات أو قوائم السماح، فأضف web_fetch أو group:web:
{
tools: {
allow: ["web_fetch"],
// or: allow: ["group:web"] (includes web_fetch, web_search, and x_search)
},
}
ذات صلة
- بحث الويب -- ابحث في الويب باستخدام موفرين متعددين
- متصفح الويب -- أتمتة متصفح كاملة للمواقع المعتمدة بكثافة على JS
- Firecrawl -- أدوات البحث والكشط من Firecrawl