Tools
بحث Perplexity
يدعم OpenClaw واجهة Perplexity Search API بوصفها مزودًا لـ web_search. وتُرجع نتائج منظَّمة تتضمن الحقول title وurl وsnippet.
لأغراض التوافق، يدعم OpenClaw أيضًا إعدادات Perplexity Sonar/OpenRouter القديمة. إذا استخدمت OPENROUTER_API_KEY، أو مفتاحًا يبدأ بـ sk-or-... في plugins.entries.perplexity.config.webSearch.apiKey، أو عيّنت plugins.entries.perplexity.config.webSearch.baseUrl / model، فسيتحول المزود إلى مسار إكمالات المحادثة ويُرجع إجابات مولَّدة بالذكاء الاصطناعي مع استشهادات بدلًا من نتائج Search API المنظَّمة.
تثبيت Plugin
ثبّت Plugin الرسمي، ثم أعد تشغيل Gateway:
openclaw plugins install @openclaw/perplexity-pluginopenclaw gateway restartالحصول على مفتاح Perplexity API
- أنشئ حساب Perplexity على perplexity.ai/settings/api.
- أنشئ مفتاح API في لوحة التحكم.
- خزّن المفتاح في الإعدادات أو عيّن
PERPLEXITY_API_KEYفي بيئة Gateway.
التوافق مع OpenRouter
إذا كنت تستخدم OpenRouter بالفعل مع Perplexity Sonar، فأبقِ provider: "perplexity" وعيّن OPENROUTER_API_KEY في بيئة Gateway، أو خزّن مفتاحًا يبدأ بـ sk-or-... في plugins.entries.perplexity.config.webSearch.apiKey.
عناصر التحكم الاختيارية في التوافق:
plugins.entries.perplexity.config.webSearch.baseUrlplugins.entries.perplexity.config.webSearch.model
أمثلة على الإعدادات
واجهة Perplexity Search API الأصلية
{ plugins: { entries: { perplexity: { config: { webSearch: { apiKey: "pplx-...", }, }, }, }, }, tools: { web: { search: { provider: "perplexity", }, }, },}التوافق مع OpenRouter / Sonar
{ plugins: { entries: { perplexity: { config: { webSearch: { apiKey: "<openrouter-api-key>", baseUrl: "https://openrouter.ai/api/v1", model: "perplexity/sonar-pro", }, }, }, }, }, tools: { web: { search: { provider: "perplexity", }, }, },}مكان تعيين المفتاح
عبر الإعدادات: شغّل openclaw configure --section web. يؤدي ذلك إلى تخزين المفتاح في ~/.openclaw/openclaw.json ضمن plugins.entries.perplexity.config.webSearch.apiKey. يقبل هذا الحقل أيضًا كائنات SecretRef.
عبر البيئة: عيّن PERPLEXITY_API_KEY أو OPENROUTER_API_KEY في بيئة عملية Gateway. عند تثبيت Gateway، ضعه في ~/.openclaw/.env (أو في بيئة خدمتك). راجع متغيرات البيئة.
إذا كان provider: "perplexity" مهيّأً وتعذر حل SecretRef الخاص بمفتاح Perplexity من دون قيمة احتياطية من البيئة، فسيفشل بدء التشغيل/إعادة التحميل فورًا.
معاملات الأداة
تنطبق هذه المعاملات على مسار Perplexity Search API الأصلي.
querystringrequiredاستعلام البحث.
countnumberdefault: 5عدد النتائج المطلوب إرجاعها (1-10).
countrystringرمز البلد وفق ISO والمكوّن من حرفين (مثل US وDE).
languagestringرمز اللغة وفق ISO 639-1 (مثل en وde وfr).
freshness'day' | 'week' | 'month' | 'year'مرشح زمني؛ تمثل day مدة 24 ساعة.
date_afterstringالنتائج المنشورة بعد هذا التاريخ فقط (YYYY-MM-DD).
date_beforestringالنتائج المنشورة قبل هذا التاريخ فقط (YYYY-MM-DD).
domain_filterstring[]مصفوفة قائمة السماح/الحظر للنطاقات (بحد أقصى 20).
max_tokensnumberdefault: 25000إجمالي ميزانية المحتوى (بحد أقصى 1000000).
max_tokens_per_pagenumberdefault: 2048حد الرموز لكل صفحة.
بالنسبة إلى مسار التوافق القديم مع Sonar/OpenRouter:
- تُقبل
queryوcountوfreshness. - تُستخدم
countلأغراض التوافق فقط في هذا المسار؛ إذ تظل الاستجابة إجابة واحدة مولَّدة مع استشهادات، وليست قائمة من N من النتائج. - تُرجع المرشحات الخاصة بواجهة Search API فقط (
countryوlanguageوdate_afterوdate_beforeوdomain_filterوmax_tokensوmax_tokens_per_page) أخطاء صريحة.
أمثلة:
// بحث خاص ببلد ولغةawait web_search({ query: "renewable energy", country: "DE", language: "de",}); // نتائج حديثة (خلال الأسبوع الماضي)await web_search({ query: "AI news", freshness: "week",}); // بحث ضمن نطاق زمنيawait web_search({ query: "AI developments", date_after: "2024-01-01", date_before: "2024-06-30",}); // تصفية النطاقات (قائمة السماح)await web_search({ query: "climate research", domain_filter: ["nature.com", "science.org", ".edu"],}); // تصفية النطاقات (قائمة الحظر - استخدم السابقة -)await web_search({ query: "product reviews", domain_filter: ["-reddit.com", "-pinterest.com"],}); // استخراج محتوى إضافيawait web_search({ query: "detailed AI research", max_tokens: 50000, max_tokens_per_page: 4096,});قواعد مرشح النطاقات
- الحد الأقصى 20 نطاقًا لكل مرشح.
- لا يمكن الجمع بين إدخالات قائمة السماح وقائمة الحظر في الطلب نفسه.
- استخدم السابقة
-لإدخالات قائمة الحظر (مثل["-reddit.com"]).
ملاحظات
- تُرجع Perplexity Search API نتائج بحث ويب منظَّمة (
titleوurlوsnippet). - يؤدي استخدام OpenRouter، أو تعيين
plugins.entries.perplexity.config.webSearch.baseUrl/modelصراحةً، إلى إعادة Perplexity إلى إكمالات محادثة Sonar لأغراض التوافق. - يُرجع التوافق مع Sonar/OpenRouter إجابة واحدة مولَّدة مع استشهادات، وليس صفوف نتائج منظَّمة.
- تُخزَّن النتائج مؤقتًا لمدة 15 دقيقة افتراضيًا (يمكن ضبطها عبر
cacheTtlMinutes).