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).
حافظهٔ نهان
نتایج برای ۱۵ دقیقه (قابل پیکربندی) در حافظهٔ نهان نگهداری میشوند تا دریافتهای تکراری همان URL کاهش یابد.
بهروزرسانیهای پیشرفت
web_fetch فقط زمانی یک خط عمومی پیشرفت نمایش میدهد که دریافت پس از پنج ثانیه
همچنان در انتظار باشد:
در حال دریافت محتوای صفحه...اصابتهای سریع حافظهٔ نهان و پاسخهای سریع شبکه پیش از فعال شدن زمانسنج پایان مییابند؛ بنابراین هرگز خط پیشرفت نمایش نمیدهند. لغو فراخوانی، زمانسنج را پاک میکند. خط پیشرفت فقط وضعیت رابط کاربری کانال است و هرگز محتوای دریافتشدهٔ صفحه را در بر نمیگیرد.
پیکربندی
{ 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, // مدت حافظهٔ نهان (۲ روز) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey اختیاری است و از اشیای SecretRef پشتیبانی میکند.
پیکربندی قدیمی tools.web.fetch.firecrawl.* از طریق openclaw doctor --fix بهطور خودکار به
plugins.entries.firecrawl.config.webFetch مهاجرت میکند.
رفتار فعلی زمان اجرا:
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یک گزینهٔ فعالسازی صریح است و فقط باید برای پراکسیهای تحت کنترل اپراتور فعال شود که پس از تفکیک DNS همچنان سیاست خروجی را اعمال میکنندweb_fetchبر پایهٔ بهترین تلاش کار میکند -- برخی وبسایتها به مرورگر وب نیاز دارند
نمایههای ابزار
اگر از نمایههای ابزار یا فهرستهای مجاز استفاده میکنید، web_fetch یا group:web را اضافه کنید:
{ tools: { allow: ["web_fetch"], // یا: allow: ["group:web"] (شامل web_fetch، web_search و x_search) },}مرتبط
- جستوجوی وب -- جستوجوی وب با چندین ارائهدهنده
- مرورگر وب -- خودکارسازی کامل مرورگر برای وبسایتهای متکی به JS
- Firecrawl -- ابزارهای جستوجو و استخراج Firecrawl