Tools

بحث الويب

تبحث أداة web_search في الويب باستخدام المزوّد الذي قمت بتكوينه وتُرجع النتائج. تُخزَّن النتائج مؤقتًا حسب الاستعلام لمدة 15 دقيقة (قابلة للتكوين).

يتضمن OpenClaw أيضًا x_search لمنشورات X (تويتر سابقًا) وweb_fetch لجلب عناوين URL بشكل خفيف. في هذه المرحلة، يبقى web_fetch محليًا بينما يمكن أن يستخدم web_search وx_search استجابات xAI داخليًا.

البدء السريع

  • اختر مزوّدًا

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

  • التكوين

    openclaw configure --section web
    

    يخزّن هذا المزوّد وأي اعتماد مطلوب. يمكنك أيضًا تعيين متغير بيئة (على سبيل المثال BRAVE_API_KEY) وتجاوز هذه الخطوة للمزوّدين المدعومين عبر API.

  • استخدمها

    يمكن للوكيل الآن استدعاء 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

    نتائج منظمة عبر API البحث في MiniMax Token Plan.

    Ollama Web Search

    البحث عبر مضيف Ollama محلي مسجّل الدخول أو API Ollama المستضاف.

    Perplexity

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

    SearXNG

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

    Tavily

    نتائج منظمة مع عمق البحث وترشيح الموضوعات و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 مركبة بالذكاء الاصطناعي + استشهادات؛ تفشل عند بدائل الدردشة غير المسندة -- 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 المباشرة أداة web_search المستضافة لدى OpenAI تلقائيًا عندما يكون بحث الويب في OpenClaw مفعّلًا ولا يكون هناك مزوّد مُدار مثبّت. هذا سلوك مملوك للمزوّد في Plugin OpenAI المضمّن ولا ينطبق إلا على حركة API الأصلية من OpenAI، وليس على عناوين URL الأساسية للوكلاء المتوافقين مع OpenAI أو مسارات Azure. عيّن tools.web.search.provider إلى مزوّد آخر مثل brave للاحتفاظ بأداة web_search المُدارة لنماذج OpenAI، أو عيّن tools.web.search.enabled: false لتعطيل كل من البحث المُدار وبحث OpenAI الأصلي.

    بحث الويب الأصلي من Codex

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

    أمان الشبكة

    تستخدم استدعاءات مزوّد web_search المُدارة مسار الجلب المحروس في OpenClaw. بالنسبة لمضيفي API الموثوقين للمزوّدين، يسمح OpenClaw بإجابات DNS ذات fake-IP من Surge وClash وsing-box في 198.18.0.0/15 وfc00::/7 فقط لاسم مضيف ذلك المزوّد. تبقى الوجهات الخاصة الأخرى وlocal loopback وlink-local وmetadata محظورة.

    لا ينطبق هذا السماح التلقائي على عناوين URL عشوائية في web_fetch. بالنسبة إلى web_fetch، فعّل tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange و tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange صراحةً فقط عندما يكون الوكيل الموثوق لديك مالكًا لتلك النطاقات الاصطناعية.

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

    قوائم المزوّدين في المستندات وتدفقات الإعداد مرتبة أبجديًا. يحتفظ الاكتشاف التلقائي بترتيب أسبقية منفصل.

    إذا لم يتم تعيين 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 / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY أو plugins.entries.minimax.config.webSearch.apiKey (الترتيب 15)
    3. Gemini -- plugins.entries.google.config.webSearch.apiKey أو GEMINI_API_KEY أو models.providers.google.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؛ يتجاوز plugins.entries.exa.config.webSearch.baseUrl الاختياري نقطة نهاية Exa (الترتيب 65)
    9. Tavily -- TAVILY_API_KEY أو plugins.entries.tavily.config.webSearch.apiKey (الترتيب 70)

    البدائل بلا مفتاح بعد ذلك:

    1. DuckDuckGo -- خيار HTML احتياطي بلا مفتاح ولا يحتاج إلى حساب أو مفتاح API (الترتيب 100)
    2. Ollama Web Search -- خيار احتياطي بلا مفتاح عبر مضيف Ollama المحلي المكوّن لديك عندما يكون قابلًا للوصول ومسجّل الدخول باستخدام ollama signin؛ يمكنه إعادة استخدام مصادقة bearer لمزوّد Ollama عندما يحتاجها المضيف، ويمكنه استدعاء بحث مباشر عبر https://ollama.com عند تكوينه باستخدام OLLAMA_API_KEY (الترتيب 110)
    3. 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 المضمّنة والمثبتة، إضافة إلى Plugins الموفّرين القابلين للتثبيت والمعروفين. يؤدي خطأ مطبعي مثل "brvae" إلى فشل التحقق من الإعداد بدل الرجوع بصمت إلى الاكتشاف التلقائي. إذا كان الموفّر المضبوط معروفًا لكن Plugin المالك غير متاح، يحافظ OpenClaw على مرونة بدء التشغيل ويبلغ عن تحذير حتى تتمكن من تشغيل openclaw doctor --fix لتثبيت Plugin أو تمكينه. ينطبق سلوك التحذير نفسه على أدلة Plugin القديمة، مثل كتلة plugins.entries.<plugin> متبقية بعد إلغاء تثبيت Plugin تابع لجهة خارجية.

    اختيار موفّر fallback لـ web_fetch منفصل:

    • اختره باستخدام tools.web.fetch.provider
    • أو احذف ذلك الحقل واترك OpenClaw يكتشف تلقائيًا أول موفّر web-fetch جاهز من بيانات الاعتماد المتاحة
    • يمكن لـ web_fetch غير المعزول استخدام موفّري Plugin المثبتين الذين يعلنون contracts.webFetchProviders؛ أما عمليات الجلب المعزولة فتبقى مضمّنة فقط
    • اليوم موفّر 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.6)

    بالنسبة إلى x_search، اضبط plugins.entries.xai.config.xSearch.*. يستخدم fallback نفسه 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
              },
            },
          },
        },
      },
    }
    

    متغير البيئة

    عيّن متغير بيئة الموفّر في بيئة عملية Gateway:

    export BRAVE_API_KEY="YOUR_KEY"
    

    لتثبيت gateway، ضعه في ~/.openclaw/.env. راجع متغيرات البيئة.

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

    المعامل الوصف
    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 فقط)

    يستعلم x_search عن منشورات X (المعروف سابقًا باسم Twitter) باستخدام xAI ويعيد إجابات مركّبة بالذكاء الاصطناعي مع استشهادات. يقبل استعلامات بلغة طبيعية وعوامل تصفية منظمة اختيارية. لا يمكّن OpenClaw أداة 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 إلى <baseUrl>/responses عندما يكون plugins.entries.xai.config.xSearch.baseUrl مضبوطًا. إذا حُذف ذلك الحقل، فإنه يرجع إلى plugins.entries.xai.config.webSearch.baseUrl، ثم إلى tools.web.search.grok.baseUrl القديم، وأخيرًا إلى نقطة نهاية xAI العامة.

    المعامل الوصف
    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",
    });
    
    // 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 -- أتمتة متصفح كاملة للمواقع كثيفة JavaScript
    • Grok Search -- Grok كموفّر web_search
    • Ollama Web Search -- بحث ويب بلا مفتاح من خلال مضيف Ollama الخاص بك