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 المنظّمة.
الحصول على مفتاح 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استعلام البحث.
countnumberعدد النتائج المطلوب إرجاعها (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_tokensnumberإجمالي ميزانية المحتوى (الحد الأقصى 1000000).
max_tokens_per_pagenumberحد الرموز لكل صفحة.
بالنسبة إلى مسار توافق Sonar/OpenRouter القديم:
- يتم قبول
queryوcountوfreshness countمخصص للتوافق فقط هناك؛ تظل الاستجابة إجابة واحدة مولّدة مع اقتباسات بدلًا من قائمة من N نتيجة- مرشحات Search API فقط مثل
countryوlanguageوdate_afterوdate_beforeوdomain_filterوmax_tokensوmax_tokens_per_pageتُرجع أخطاء صريحة
أمثلة:
// Country and language-specific search
await web_search({
query: "renewable energy",
country: "DE",
language: "de",
});
// Recent results (past week)
await web_search({
query: "AI news",
freshness: "week",
});
// Date range search
await web_search({
query: "AI developments",
date_after: "2024-01-01",
date_before: "2024-06-30",
});
// Domain filtering (allowlist)
await web_search({
query: "climate research",
domain_filter: ["nature.com", "science.org", ".edu"],
});
// Domain filtering (denylist - prefix with -)
await web_search({
query: "product reviews",
domain_filter: ["-reddit.com", "-pinterest.com"],
});
// More content extraction
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)