Tools
جستجوی وب
ابزار web_search با استفاده از ارائهدهنده پیکربندیشده شما در وب جستوجو میکند و
نتایج را برمیگرداند. نتایج بر اساس پرسوجو به مدت ۱۵ دقیقه (قابل پیکربندی) کش میشوند.
OpenClaw همچنین شامل x_search برای پستهای X (که پیشتر Twitter نام داشت) و
web_fetch برای واکشی سبک URL است. در این مرحله، web_fetch محلی میماند
در حالی که web_search و x_search میتوانند در پشت صحنه از xAI Responses استفاده کنند.
شروع سریع
انتخاب یک ارائهدهنده
یک ارائهدهنده انتخاب کنید و هرگونه راهاندازی لازم را تکمیل کنید. برخی ارائهدهندگان بدون کلید هستند، در حالی که برخی دیگر از کلیدهای API استفاده میکنند. برای جزئیات، صفحههای ارائهدهندگان زیر را ببینید.
پیکربندی
openclaw configure --section web
این کار ارائهدهنده و هر اعتبارنامه لازم را ذخیره میکند. همچنین میتوانید یک متغیر env
(برای مثال BRAVE_API_KEY) تنظیم کنید و برای ارائهدهندگان مبتنی بر API
از این مرحله صرفنظر کنید.
استفاده از آن
اکنون عامل میتواند web_search را فراخوانی کند:
await web_search({ query: "OpenClaw plugin SDK" });
برای پستهای X، استفاده کنید از:
await x_search({ query: "dinner recipes" });
انتخاب یک ارائهدهنده
نتایج ساختاریافته همراه با قطعهمتنها. از حالت llm-context و فیلترهای کشور/زبان پشتیبانی میکند. پلن رایگان در دسترس است.
جایگزین بدون کلید. به کلید API نیاز ندارد. ادغام غیررسمی مبتنی بر HTML.
جستوجوی عصبی + کلیدواژهای همراه با استخراج محتوا (برجستهسازیها، متن، خلاصهها).
نتایج ساختاریافته. برای استخراج عمیق، بهتر است همراه با firecrawl_search و firecrawl_scrape استفاده شود.
پاسخهای تولیدشده با هوش مصنوعی همراه با استنادها از طریق grounding در Google Search.
پاسخهای تولیدشده با هوش مصنوعی همراه با استنادها از طریق grounding وب xAI.
پاسخهای تولیدشده با هوش مصنوعی همراه با استنادها از طریق جستوجوی وب Moonshot؛ جایگزینهای چت بدون grounding صریحا شکست میخورند.
نتایج ساختاریافته از طریق API جستوجوی MiniMax Token Plan.
جستوجو از طریق میزبان محلی Ollama که وارد آن شدهاید یا API میزبانیشده Ollama.
نتایج ساختاریافته همراه با کنترلهای استخراج محتوا و فیلتر دامنه.
متاجستوجوی خودمیزبان. به کلید API نیاز ندارد. Google، Bing، DuckDuckGo و موارد دیگر را تجمیع میکند.
نتایج ساختاریافته همراه با عمق جستوجو، فیلتر موضوع، و tavily_extract برای استخراج URL.
مقایسه ارائهدهندهها
| ارائهدهنده | سبک نتیجه | فیلترها | کلید API |
|---|---|---|---|
| Brave | قطعهمتنهای ساختاریافته | کشور، زبان، زمان، حالت llm-context |
BRAVE_API_KEY |
| DuckDuckGo | قطعهمتنهای ساختاریافته | -- | هیچکدام (بدون کلید) |
| Exa | ساختاریافته + استخراجشده | حالت عصبی/کلیدواژهای، تاریخ، استخراج محتوا | EXA_API_KEY |
| Firecrawl | قطعهمتنهای ساختاریافته | از طریق ابزار firecrawl_search |
FIRECRAWL_API_KEY |
| Gemini | تولیدشده با هوش مصنوعی + استنادها | -- | GEMINI_API_KEY |
| Grok | تولیدشده با هوش مصنوعی + استنادها | -- | XAI_API_KEY |
| Kimi | تولیدشده با هوش مصنوعی + استنادها؛ در جایگزینهای چت بدون grounding شکست میخورد | -- | KIMI_API_KEY / MOONSHOT_API_KEY |
| MiniMax Search | قطعهمتنهای ساختاریافته | منطقه (global / cn) |
MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN |
| Ollama Web Search | قطعهمتنهای ساختاریافته | -- | برای میزبانهای محلی واردشده هیچکدام؛ OLLAMA_API_KEY برای جستوجوی مستقیم https://ollama.com |
| Perplexity | قطعهمتنهای ساختاریافته | کشور، زبان، زمان، دامنهها، محدودیتهای محتوا | PERPLEXITY_API_KEY / OPENROUTER_API_KEY |
| SearXNG | قطعهمتنهای ساختاریافته | دستهها، زبان | هیچکدام (خودمیزبان) |
| Tavily | قطعهمتنهای ساختاریافته | از طریق ابزار tavily_search |
TAVILY_API_KEY |
تشخیص خودکار
جستوجوی وب بومی OpenAI
مدلهای مستقیم OpenAI Responses وقتی جستوجوی وب OpenClaw فعال باشد و هیچ ارائهدهنده مدیریتشدهای سنجاق نشده باشد، بهطور خودکار از ابزار میزبانیشده web_search متعلق به OpenAI استفاده میکنند. این رفتار متعلق به ارائهدهنده در Plugin بستهبندیشده OpenAI است و فقط برای ترافیک API بومی OpenAI اعمال میشود، نه URLهای پایه پروکسی سازگار با OpenAI یا مسیرهای Azure. برای حفظ ابزار مدیریتشده web_search برای مدلهای OpenAI، tools.web.search.provider را روی ارائهدهنده دیگری مانند brave تنظیم کنید، یا برای غیرفعال کردن هم جستوجوی مدیریتشده و هم جستوجوی بومی OpenAI، tools.web.search.enabled: false را تنظیم کنید.
جستوجوی وب بومی Codex
مدلهای سازگار با Codex میتوانند بهصورت اختیاری بهجای تابع مدیریتشده web_search متعلق به OpenClaw، از ابزار web_search بومی ارائهدهنده در Responses استفاده کنند.
- آن را زیر
tools.web.search.openaiCodexپیکربندی کنید - فقط برای مدلهای سازگار با Codex فعال میشود (
openai-codex/*یا ارائهدهندگانی که ازapi: "openai-codex-responses"استفاده میکنند) web_searchمدیریتشده همچنان برای مدلهای غیر Codex اعمال میشودmode: "cached"تنظیم پیشفرض و پیشنهادی استtools.web.search.enabled: falseهم جستوجوی مدیریتشده و هم جستوجوی بومی را غیرفعال میکند
{
tools: {
web: {
search: {
enabled: true,
openaiCodex: {
enabled: true,
mode: "cached",
allowedDomains: ["example.com"],
contextSize: "high",
userLocation: {
country: "US",
city: "New York",
timezone: "America/New_York",
},
},
},
},
},
}
اگر جستوجوی بومی Codex فعال باشد اما مدل فعلی سازگار با Codex نباشد، OpenClaw رفتار عادی web_search مدیریتشده را حفظ میکند.
ایمنی شبکه
فراخوانیهای ارائهدهنده web_search مدیریتشده از مسیر واکشی محافظتشده OpenClaw استفاده میکنند. برای
میزبانهای API مورداعتماد ارائهدهنده، OpenClaw پاسخهای DNS جعلی-IP مربوط به Surge، Clash و sing-box را
در 198.18.0.0/15 و fc00::/7 فقط برای نام میزبان همان ارائهدهنده مجاز میکند.
مقصدهای خصوصی، loopback، link-local و metadata دیگر همچنان مسدود میمانند.
این مجوزدهی خودکار برای URLهای دلخواه web_fetch اعمال نمیشود. برای
web_fetch، tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange و
tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange را فقط زمانی صریحا فعال کنید که
پروکسی مورداعتماد شما مالک آن بازههای مصنوعی باشد.
راهاندازی جستوجوی وب
فهرستهای ارائهدهندگان در مستندات و جریانهای راهاندازی بهترتیب الفبایی هستند. تشخیص خودکار یک ترتیب اولویت جداگانه را حفظ میکند.
اگر هیچ provider تنظیم نشده باشد، OpenClaw ارائهدهندگان را به این ترتیب بررسی میکند و از
اولین مورد آماده استفاده میکند:
ابتدا ارائهدهندگان مبتنی بر API:
- Brave --
BRAVE_API_KEYیاplugins.entries.brave.config.webSearch.apiKey(ترتیب 10) - MiniMax Search --
MINIMAX_CODE_PLAN_KEY/MINIMAX_CODING_API_KEY/MINIMAX_OAUTH_TOKEN/MINIMAX_API_KEYیاplugins.entries.minimax.config.webSearch.apiKey(ترتیب 15) - Gemini --
plugins.entries.google.config.webSearch.apiKey،GEMINI_API_KEY، یاmodels.providers.google.apiKey(ترتیب 20) - Grok --
XAI_API_KEYیاplugins.entries.xai.config.webSearch.apiKey(ترتیب 30) - Kimi --
KIMI_API_KEY/MOONSHOT_API_KEYیاplugins.entries.moonshot.config.webSearch.apiKey(ترتیب 40) - Perplexity --
PERPLEXITY_API_KEY/OPENROUTER_API_KEYیاplugins.entries.perplexity.config.webSearch.apiKey(ترتیب 50) - Firecrawl --
FIRECRAWL_API_KEYیاplugins.entries.firecrawl.config.webSearch.apiKey(ترتیب 60) - Exa --
EXA_API_KEYیاplugins.entries.exa.config.webSearch.apiKey؛plugins.entries.exa.config.webSearch.baseUrlاختیاری نقطه پایانی Exa را بازنویسی میکند (ترتیب 65) - Tavily --
TAVILY_API_KEYیاplugins.entries.tavily.config.webSearch.apiKey(ترتیب 70)
پس از آن جایگزینهای بدون کلید:
- DuckDuckGo -- جایگزین HTML بدون کلید، بدون نیاز به حساب یا کلید API (ترتیب 100)
- Ollama Web Search -- جایگزین بدون کلید از طریق میزبان محلی Ollama پیکربندیشده شما، زمانی که قابل دسترسی باشد و با
ollama signinوارد آن شده باشید؛ وقتی میزبان به آن نیاز دارد میتواند از احراز هویت bearer ارائهدهنده Ollama دوباره استفاده کند، و وقتی باOLLAMA_API_KEYپیکربندی شده باشد میتواند جستوجوی مستقیمhttps://ollama.comرا فراخوانی کند (ترتیب 110) - SearXNG --
SEARXNG_BASE_URLیاplugins.entries.searxng.config.webSearch.baseUrl(ترتیب 200)
اگر هیچ ارائهدهندهای تشخیص داده نشود، به Brave برمیگردد (خطای نبود کلید دریافت میکنید که از شما میخواهد یکی را پیکربندی کنید).
پیکربندی
{
tools: {
web: {
search: {
enabled: true, // default: true
provider: "brave", // or omit for auto-detection
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
},
},
}
پیکربندی مختص هر ارائهدهنده (کلیدهای API، URLهای پایه، حالتها) در
plugins.entries.<plugin>.config.webSearch.* قرار میگیرد. Gemini همچنین میتواند از
models.providers.google.apiKey و models.providers.google.baseUrl بهعنوان گزینههای
بازگشت با اولویت پایینتر، پس از پیکربندی اختصاصی جستوجوی وب خود و GEMINI_API_KEY، استفاده کند. برای نمونهها، صفحههای ارائهدهنده را ببینید.
tools.web.search.provider با شناسههای ارائهدهنده جستوجوی وب که توسط مانیفستهای Pluginهای همراه و نصبشده اعلام شدهاند، بهعلاوه Pluginهای ارائهدهنده نصبپذیر شناختهشده، اعتبارسنجی میشود. یک غلط تایپی مانند "brvae" بهجای بازگشت بیصدا به تشخیص خودکار، باعث شکست اعتبارسنجی پیکربندی میشود. اگر ارائهدهنده پیکربندیشده شناختهشده باشد اما Plugin مالک آن در دسترس نباشد، OpenClaw راهاندازی را تابآور نگه میدارد و یک هشدار گزارش میکند تا بتوانید openclaw doctor --fix را برای نصب یا فعالسازی Plugin اجرا کنید. همین رفتار هشدار برای شواهد کهنه Plugin نیز اعمال میشود، مانند یک بلوک باقیمانده plugins.entries.<plugin> پس از حذف نصب یک Plugin شخص ثالث.
انتخاب ارائهدهنده بازگشتی web_fetch جداست:
- آن را با
tools.web.fetch.providerانتخاب کنید - یا آن فیلد را حذف کنید و اجازه دهید OpenClaw نخستین ارائهدهنده آماده web-fetch را از میان اعتبارنامههای موجود بهصورت خودکار تشخیص دهد
web_fetchبدون سندباکس میتواند از ارائهدهندههای Plugin نصبشدهای استفاده کند کهcontracts.webFetchProvidersرا اعلام میکنند؛ دریافتهای سندباکسشده فقط همراهداخلی میمانند- در حال حاضر ارائهدهنده همراه web-fetch، Firecrawl است که زیر
plugins.entries.firecrawl.config.webFetch.*پیکربندی میشود
وقتی در طول openclaw onboard یا
openclaw configure --section web Kimi را انتخاب میکنید، OpenClaw همچنین میتواند این موارد را بپرسد:
- منطقه API مربوط به Moonshot (
https://api.moonshot.ai/v1یاhttps://api.moonshot.cn/v1) - مدل پیشفرض جستوجوی وب Kimi (پیشفرض
kimi-k2.6)
برای x_search، plugins.entries.xai.config.xSearch.* را پیکربندی کنید. از همان بازگشت XAI_API_KEY مانند جستوجوی وب Grok استفاده میکند.
پیکربندی قدیمی tools.web.x_search.* بهصورت خودکار توسط openclaw doctor --fix مهاجرت داده میشود.
وقتی در طول openclaw onboard یا openclaw configure --section web، Grok را انتخاب میکنید، OpenClaw همچنین میتواند راهاندازی اختیاری x_search را با همان کلید پیشنهاد کند.
این یک مرحله پیگیری جداگانه داخل مسیر Grok است، نه یک انتخاب جداگانه در سطح بالای ارائهدهنده جستوجوی وب. اگر ارائهدهنده دیگری را انتخاب کنید، OpenClaw اعلان x_search را نشان نمیدهد.
ذخیرهسازی کلیدهای API
فایل پیکربندی
openclaw configure --section web را اجرا کنید یا کلید را مستقیماً تنظیم کنید:
{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "YOUR_KEY", // pragma: allowlist secret
},
},
},
},
},
}
متغیر محیطی
متغیر محیطی ارائهدهنده را در محیط پردازش Gateway تنظیم کنید:
export BRAVE_API_KEY="YOUR_KEY"
برای نصب gateway، آن را در ~/.openclaw/.env قرار دهید.
متغیرهای محیطی را ببینید.
پارامترهای ابزار
| پارامتر | توضیح |
|---|---|
query |
پرسوجوی جستوجو (الزامی) |
count |
تعداد نتایج برای بازگرداندن (۱ تا ۱۰، پیشفرض: ۵) |
country |
کد کشور ISO دوحرفی (مثلاً "US"، "DE") |
language |
کد زبان ISO 639-1 (مثلاً "en"، "de") |
search_lang |
کد زبان جستوجو (فقط Brave) |
freshness |
فیلتر زمانی: day، week، month یا year |
date_after |
نتایج پس از این تاریخ (YYYY-MM-DD) |
date_before |
نتایج پیش از این تاریخ (YYYY-MM-DD) |
ui_lang |
کد زبان UI (فقط Brave) |
domain_filter |
آرایه فهرست مجاز/فهرست ممنوع دامنهها (فقط Perplexity) |
max_tokens |
بودجه کل محتوا، پیشفرض ۲۵۰۰۰ (فقط Perplexity) |
max_tokens_per_page |
محدودیت توکن بهازای هر صفحه، پیشفرض ۲۰۴۸ (فقط Perplexity) |
x_search
x_search پستهای X (قبلاً Twitter) را با استفاده از xAI پرسوجو میکند و پاسخهای ساختهشده توسط AI را همراه با ارجاعها برمیگرداند. پرسوجوهای زبان طبیعی و فیلترهای ساختاریافته اختیاری را میپذیرد. OpenClaw ابزار داخلی x_search مربوط به xAI را فقط روی درخواستی فعال میکند که این فراخوانی ابزار را سرویس میدهد.
پیکربندی x_search
{
plugins: {
entries: {
xai: {
config: {
xSearch: {
enabled: true,
model: "grok-4-1-fast-non-reasoning",
baseUrl: "https://api.x.ai/v1", // optional, overrides webSearch.baseUrl
inlineCitations: false,
maxTurns: 2,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
webSearch: {
apiKey: "xai-...", // optional if XAI_API_KEY is set
baseUrl: "https://api.x.ai/v1", // optional shared xAI Responses base URL
},
},
},
},
},
}
x_search وقتی
plugins.entries.xai.config.xSearch.baseUrl تنظیم شده باشد، به <baseUrl>/responses پست میکند. اگر آن فیلد حذف شده باشد،
به plugins.entries.xai.config.webSearch.baseUrl، سپس
tools.web.search.grok.baseUrl قدیمی، و در نهایت endpoint عمومی xAI بازمیگردد.
پارامترهای x_search
| پارامتر | توضیح |
|---|---|
query |
پرسوجوی جستوجو (الزامی) |
allowed_x_handles |
محدود کردن نتایج به handleهای مشخص X |
excluded_x_handles |
حذف handleهای مشخص X |
from_date |
فقط شامل پستها در این تاریخ یا پس از آن (YYYY-MM-DD) |
to_date |
فقط شامل پستها در این تاریخ یا پیش از آن (YYYY-MM-DD) |
enable_image_understanding |
اجازه دادن به xAI برای بررسی تصاویر پیوستشده به پستهای مطابق |
enable_video_understanding |
اجازه دادن به xAI برای بررسی ویدئوهای پیوستشده به پستهای مطابق |
نمونه x_search
await x_search({
query: "dinner recipes",
allowed_x_handles: ["nytfood"],
from_date: "2026-03-01",
});
// Per-post stats: use the exact status URL or status ID when possible
await x_search({
query: "https://x.com/huntharo/status/1905678901234567890",
});
نمونهها
// Basic search
await web_search({ query: "OpenClaw plugin SDK" });
// German-specific search
await web_search({ query: "TV online schauen", country: "DE", language: "de" });
// Recent results (past week)
await web_search({ query: "AI developments", freshness: "week" });
// Date range
await web_search({
query: "climate research",
date_after: "2024-01-01",
date_before: "2024-06-30",
});
// Domain filtering (Perplexity only)
await web_search({
query: "product reviews",
domain_filter: ["-reddit.com", "-pinterest.com"],
});
پروفایلهای ابزار
اگر از پروفایلهای ابزار یا فهرستهای مجاز استفاده میکنید، web_search، x_search یا group:web را اضافه کنید:
{
tools: {
allow: ["web_search", "x_search"],
// or: allow: ["group:web"] (includes web_search, x_search, and web_fetch)
},
}
مرتبط
- Web Fetch -- دریافت یک URL و استخراج محتوای خوانا
- Web Browser -- خودکارسازی کامل مرورگر برای سایتهای سنگین از نظر JS
- Grok Search -- Grok بهعنوان ارائهدهنده
web_search - Ollama Web Search -- جستوجوی وب بدون کلید از طریق میزبان Ollama شما