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 محدود میشود.
نتیجه
web_fetch یک نتیجه ساختیافته بسته با این فیلدها برمیگرداند:
- فراداده درخواست:
url،finalUrl،status،extractModeوextractor - فراداده اختیاری پاسخ:
contentType،titleوwarning(در صورت نبودن حذف میشوند) - فراداده محتوای پوششدادهشده:
externalContent،truncated،length،rawLength،fetchedAt،tookMsوtext cached: trueاختیاری هنگام اصابت به کشspill: { path, chars, truncated? }اختیاری هنگامی که محتوای برشخورده در یک فایل موقت خصوصی نوشته شده باشد؛truncatedفقط زمانی وجود دارد که آن فایل حاوی بخشی از محتوای منبع باشد
length طول text پوششدادهشده است. rawLength طول محتوای استخراجشده
پیش از پوششدهی محتوای خارجی است.
نحوه کار
واکشی
یک درخواست HTTP GET با User-Agent مشابه Chrome و هدر Accept-Language
ارسال میکند. نامهای میزبان خصوصی/داخلی را مسدود میکند و تغییرمسیرها را دوباره بررسی میکند.
استخراج
Readability (استخراج محتوای اصلی) را روی پاسخ HTML اجرا میکند.
مسیر جایگزین (اختیاری)
اگر Readability ناموفق باشد و یک ارائهدهنده واکشی در دسترس باشد، درخواست را از طریق آن ارائهدهنده دوباره امتحان میکند (برای مثال، حالت دور زدن ربات Firecrawl).
کش
نتایج برای 15 دقیقه (قابل پیکربندی) کش میشوند تا واکشیهای تکراری همان 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, // مدت کش (2 روز) 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خارج از sandbox میتواند از Pluginهای نصبشدهای استفاده کند کهcontracts.webFetchProvidersرا اعلام میکنند و یک ارائهدهنده منطبق را هنگام اجرا ثبت میکنند. Plugin رسمی Firecrawl در حال حاضر این مسیر جایگزین را فراهم میکند. - فراخوانیهای
web_fetchدر sandbox، ارائهدهندگان همراه و نیز ارائهدهندگان نصبشدهای را مجاز میکنند که منشأ رسمی 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