الانتقال إلى المحتوى الرئيسي

بحث الويب

تبحث أداة web_search في الويب باستخدام الموفر الذي أعددته وتعيد النتائج. تُخزَّن النتائج مؤقتًا حسب الاستعلام لمدة 15 دقيقة (قابلة للتهيئة). يتضمن OpenClaw أيضًا x_search لمنشورات X (المعروف سابقًا باسم Twitter) و web_fetch لجلب عناوين URL بشكل خفيف. في هذه المرحلة، يبقى web_fetch محليًا بينما يمكن لـ web_search وx_search استخدام xAI Responses داخليًا.
web_search أداة HTTP خفيفة، وليست أتمتة متصفح. بالنسبة إلى المواقع الثقيلة المعتمدة على JS أو التي تتطلب تسجيل دخول، استخدم Web Browser. أما لجلب عنوان URL محدد، فاستخدم Web Fetch.

بداية سريعة

1

اختر موفرًا

اختر موفرًا وأكمل أي إعداد مطلوب. بعض الموفرين لا يحتاجون إلى مفتاح، بينما يستخدم آخرون مفاتيح API. راجع صفحات الموفرين أدناه للحصول على التفاصيل.
2

التهيئة

openclaw configure --section web
يخزن هذا الموفر وأي بيانات اعتماد لازمة. ويمكنك أيضًا ضبط متغير بيئة (مثل BRAVE_API_KEY) وتخطي هذه الخطوة للموفرين المعتمدين على API.
3

استخدمه

يمكن للوكيل الآن استدعاء web_search:
await web_search({ query: "OpenClaw plugin SDK" });
بالنسبة إلى منشورات X، استخدم:
await x_search({ query: "dinner recipes" });

اختيار موفر

Brave Search

نتائج منظمة مع مقتطفات. تدعم وضع llm-context ومرشحات البلد/اللغة. تتوفر فئة مجانية.

DuckDuckGo

بديل احتياطي لا يحتاج إلى مفتاح. لا حاجة إلى مفتاح API. تكامل غير رسمي قائم على HTML.

Exa

بحث عصبي + بالكلمات المفتاحية مع استخراج المحتوى (إبرازات، نص، ملخصات).

Firecrawl

نتائج منظمة. يفضّل اقترانه مع firecrawl_search وfirecrawl_scrape للاستخراج العميق.

Gemini

إجابات مركبة بالذكاء الاصطناعي مع استشهادات عبر إسناد Google Search.

Grok

إجابات مركبة بالذكاء الاصطناعي مع استشهادات عبر الإسناد الويب من xAI.

Kimi

إجابات مركبة بالذكاء الاصطناعي مع استشهادات عبر بحث الويب من Moonshot.

MiniMax Search

نتائج منظمة عبر MiniMax Coding Plan search API.

Ollama Web Search

بحث لا يحتاج إلى مفتاح عبر مضيف Ollama المهيأ لديك. يتطلب ollama signin.

Perplexity

نتائج منظمة مع عناصر تحكم لاستخراج المحتوى وتصفية النطاقات.

SearXNG

بحث تجميعي مستضاف ذاتيًا. لا حاجة إلى مفتاح API. يجمع Google وBing وDuckDuckGo وغير ذلك.

Tavily

نتائج منظمة مع عمق البحث وتصفية الموضوع وtavily_extract لاستخراج عناوين URL.

مقارنة بين الموفرين

الموفرنمط النتيجةالمرشحاتمفتاح API
Braveمقتطفات منظمةالبلد، اللغة، الوقت، وضع llm-contextBRAVE_API_KEY
DuckDuckGoمقتطفات منظمةلا شيء (من دون مفتاح)
Exaمنظم + مستخرجالوضع العصبي/الكلمات المفتاحية، التاريخ، استخراج المحتوىEXA_API_KEY
Firecrawlمقتطفات منظمةعبر أداة firecrawl_searchFIRECRAWL_API_KEY
Geminiمركب بالذكاء الاصطناعي + استشهاداتGEMINI_API_KEY
Grokمركب بالذكاء الاصطناعي + استشهاداتXAI_API_KEY
Kimiمركب بالذكاء الاصطناعي + استشهاداتKIMI_API_KEY / MOONSHOT_API_KEY
MiniMax Searchمقتطفات منظمةالمنطقة (global / cn)MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY
Ollama Web Searchمقتطفات منظمةلا شيء افتراضيًا؛ يلزم ollama signin، ويمكنه إعادة استخدام مصادقة bearer لموفر Ollama
Perplexityمقتطفات منظمةالبلد، اللغة، الوقت، النطاقات، حدود المحتوىPERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNGمقتطفات منظمةالفئات، اللغةلا شيء (مستضاف ذاتيًا)
Tavilyمقتطفات منظمةعبر أداة tavily_searchTAVILY_API_KEY

الاكتشاف التلقائي

بحث الويب الأصلي في Codex

يمكن للنماذج القادرة على Codex اختياريًا استخدام أداة Responses الأصلية web_search الخاصة بالموفر بدلًا من دالة web_search المُدارة في OpenClaw.
  • قم بتهيئتها ضمن 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 المُدار العادي.

إعداد بحث الويب

قوائم الموفرين في المستندات وتدفقات الإعداد مرتبة أبجديًا. أما الاكتشاف التلقائي فيحافظ على ترتيب أولوية منفصل. إذا لم يتم ضبط provider، يتحقق OpenClaw من الموفرين بهذا الترتيب ويستخدم أول موفر جاهز: الموفرون المعتمدون على API أولًا:
  1. Brave — ‏BRAVE_API_KEY أو plugins.entries.brave.config.webSearch.apiKey (الترتيب 10)
  2. MiniMax Search — ‏MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY أو plugins.entries.minimax.config.webSearch.apiKey (الترتيب 15)
  3. Gemini — ‏GEMINI_API_KEY أو plugins.entries.google.config.webSearch.apiKey (الترتيب 20)
  4. Grok — ‏XAI_API_KEY أو plugins.entries.xai.config.webSearch.apiKey (الترتيب 30)
  5. Kimi — ‏KIMI_API_KEY / MOONSHOT_API_KEY أو plugins.entries.moonshot.config.webSearch.apiKey (الترتيب 40)
  6. Perplexity — ‏PERPLEXITY_API_KEY / OPENROUTER_API_KEY أو plugins.entries.perplexity.config.webSearch.apiKey (الترتيب 50)
  7. Firecrawl — ‏FIRECRAWL_API_KEY أو plugins.entries.firecrawl.config.webSearch.apiKey (الترتيب 60)
  8. Exa — ‏EXA_API_KEY أو plugins.entries.exa.config.webSearch.apiKey (الترتيب 65)
  9. Tavily — ‏TAVILY_API_KEY أو plugins.entries.tavily.config.webSearch.apiKey (الترتيب 70)
ثم البدائل الاحتياطية التي لا تحتاج إلى مفتاح:
  1. DuckDuckGo — بديل HTML احتياطي لا يحتاج إلى مفتاح ولا حساب أو مفتاح API (الترتيب 100)
  2. Ollama Web Search — بديل احتياطي لا يحتاج إلى مفتاح عبر مضيف Ollama المهيأ لديك؛ يتطلب أن يكون Ollama قابلًا للوصول وأن يكون مسجل الدخول عبر ollama signin ويمكنه إعادة استخدام مصادقة bearer الخاصة بموفر Ollama إذا احتاجها المضيف (الترتيب 110)
  3. SearXNG — ‏SEARXNG_BASE_URL أو plugins.entries.searxng.config.webSearch.baseUrl (الترتيب 200)
إذا لم يُكتشف أي موفر، فسيعود إلى Brave (وستظهر لك رسالة خطأ بخصوص مفتاح مفقود تطلب منك تهيئة واحد).
تدعم جميع حقول مفاتيح الموفرين كائنات SecretRef. في وضع الاكتشاف التلقائي، يحل OpenClaw مفتاح الموفر المحدد فقط — أما SecretRef غير المحددة فتبقى غير نشطة.

الإعدادات

{
  tools: {
    web: {
      search: {
        enabled: true, // الافتراضي: true
        provider: "brave", // أو احذفه للاكتشاف التلقائي
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}
توجد الإعدادات الخاصة بكل موفر (مفاتيح API، وعناوين URL الأساسية، والأوضاع) تحت plugins.entries.<plugin>.config.webSearch.*. راجع صفحات الموفرين للحصول على أمثلة. اختيار موفر الاحتياط لـ web_fetch منفصل:
  • اختره باستخدام tools.web.fetch.provider
  • أو احذف هذا الحقل ودع OpenClaw يكتشف تلقائيًا أول موفر web-fetch جاهز من بيانات الاعتماد المتاحة
  • اليوم، موفر web-fetch المضمّن هو Firecrawl، ويُهيّأ تحت plugins.entries.firecrawl.config.webFetch.*
عند اختيار Kimi أثناء openclaw onboard أو openclaw configure --section web، يمكن لـ OpenClaw أيضًا أن يطلب:
  • منطقة Moonshot API (https://api.moonshot.ai/v1 أو https://api.moonshot.cn/v1)
  • نموذج Kimi الافتراضي لبحث الويب (الافتراضي kimi-k2.5)
بالنسبة إلى x_search، قم بتهيئة plugins.entries.xai.config.xSearch.*. فهو يستخدم الاحتياط نفسه XAI_API_KEY المستخدم في بحث الويب Grok. تُنقل إعدادات tools.web.x_search.* القديمة تلقائيًا بواسطة openclaw doctor --fix. عند اختيار Grok أثناء openclaw onboard أو openclaw configure --section web، يمكن لـ OpenClaw أيضًا أن يعرض إعداد x_search الاختياري باستخدام المفتاح نفسه. وهذه خطوة متابعة منفصلة داخل مسار Grok، وليست خيارًا منفصلًا على المستوى الأعلى لموفر بحث الويب. وإذا اخترت موفرًا آخر، فلن يعرض OpenClaw مطالبة x_search.

تخزين مفاتيح API

شغّل openclaw configure --section web أو اضبط المفتاح مباشرة:
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "YOUR_KEY", // pragma: allowlist secret
          },
        },
      },
    },
  },
}

معاملات الأداة

المعاملالوصف
queryاستعلام البحث (مطلوب)
countالنتائج المراد إرجاعها (1-10، الافتراضي: 5)
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رمز لغة الواجهة (Brave فقط)
domain_filterمصفوفة سماح/منع للنطاقات (Perplexity فقط)
max_tokensميزانية المحتوى الإجمالية، الافتراضي 25000 (Perplexity فقط)
max_tokens_per_pageحد الرموز لكل صفحة، الافتراضي 2048 (Perplexity فقط)
لا تعمل كل المعاملات مع جميع الموفرين. وضع Brave llm-context يرفض ui_lang وfreshness وdate_after وdate_before. تعيد Gemini وGrok وKimi إجابة مركبة واحدة مع استشهادات. وهي تقبل count من أجل توافق الأداة المشتركة، لكنه لا يغير شكل الإجابة المرتكزة. يتصرف Perplexity بالطريقة نفسها عند استخدام مسار التوافق Sonar/OpenRouter (plugins.entries.perplexity.config.webSearch.baseUrl / model أو OPENROUTER_API_KEY). يقبل SearXNG عناوين http:// فقط للمضيفين الموثوقين على الشبكة الخاصة أو loopback؛ أما نقاط نهاية SearXNG العامة فيجب أن تستخدم https://. لا يدعم Firecrawl وTavily سوى query وcount عبر web_search — استخدم أدواتهما المخصصة للخيارات المتقدمة.
تستعلم x_search عن منشورات X (المعروف سابقًا باسم Twitter) باستخدام xAI وتعيد إجابات مركبة بالذكاء الاصطناعي مع استشهادات. تقبل استعلامات بلغة طبيعية و مرشحات منظمة اختيارية. لا يفعّل OpenClaw أداة xAI المضمنة x_search إلا على الطلب الذي يخدم استدعاء هذه الأداة.
توثق xAI أن x_search تدعم البحث بالكلمات المفتاحية، والبحث الدلالي، وبحث المستخدم، وجلب سلاسل المحادثات. وبالنسبة إلى إحصاءات التفاعل لكل منشور مثل إعادة النشر، والردود، والإشارات المرجعية، أو المشاهدات، ففضّل بحثًا موجّهًا لعنوان URL الخاص بالمنشور أو معرّف الحالة مباشرة. قد تعثر عمليات البحث العامة بالكلمات المفتاحية على المنشور الصحيح، لكنها قد تعيد بيانات وصفية أقل اكتمالًا لكل منشور. نمط جيد هو: حدد المنشور أولًا، ثم نفذ استعلام x_search ثانيًا يركّز على ذلك المنشور بعينه.
{
  plugins: {
    entries: {
      xai: {
        config: {
          xSearch: {
            enabled: true,
            model: "grok-4-1-fast-non-reasoning",
            inlineCitations: false,
            maxTurns: 2,
            timeoutSeconds: 30,
            cacheTtlMinutes: 15,
          },
          webSearch: {
            apiKey: "xai-...", // اختياري إذا كان XAI_API_KEY مضبوطًا
          },
        },
      },
    },
  },
}
المعاملالوصف
queryاستعلام البحث (مطلوب)
allowed_x_handlesقصر النتائج على أسماء مستخدمين محددة على X
excluded_x_handlesاستبعاد أسماء مستخدمين محددة على X
from_dateتضمين المنشورات في هذا التاريخ أو بعده فقط (YYYY-MM-DD)
to_dateتضمين المنشورات في هذا التاريخ أو قبله فقط (YYYY-MM-DD)
enable_image_understandingالسماح لـ xAI بفحص الصور المرفقة بالمنشورات المطابقة
enable_video_understandingالسماح لـ xAI بفحص الفيديوهات المرفقة بالمنشورات المطابقة
await x_search({
  query: "dinner recipes",
  allowed_x_handles: ["nytfood"],
  from_date: "2026-03-01",
});
// إحصاءات كل منشور: استخدم عنوان URL الدقيق للحالة أو معرّف الحالة كلما أمكن
await x_search({
  query: "https://x.com/huntharo/status/1905678901234567890",
});

أمثلة

// بحث أساسي
await web_search({ query: "OpenClaw plugin SDK" });

// بحث خاص بألمانيا
await web_search({ query: "TV online schauen", country: "DE", language: "de" });

// نتائج حديثة (الأسبوع الماضي)
await web_search({ query: "AI developments", freshness: "week" });

// نطاق تاريخ
await web_search({
  query: "climate research",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// تصفية النطاقات (Perplexity فقط)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

ملفات تعريف الأدوات

إذا كنت تستخدم ملفات تعريف الأدوات أو قوائم السماح، فأضف web_search أو x_search أو group:web:
{
  tools: {
    allow: ["web_search", "x_search"],
    // أو: allow: ["group:web"]  (يتضمن web_search وx_search وweb_fetch)
  },
}

ذو صلة

  • Web Fetch — اجلب عنوان URL واستخرج المحتوى القابل للقراءة
  • Web Browser — أتمتة متصفح كاملة للمواقع الثقيلة المعتمدة على JS
  • Grok Search — Grok كموفر web_search
  • Ollama Web Search — بحث ويب من دون مفتاح عبر مضيف Ollama الخاص بك