Tools
جستوجوی Perplexity
OpenClaw از Perplexity Search API بهعنوان ارائهدهندهی web_search پشتیبانی میکند.
این API نتایج ساختاریافتهای با فیلدهای 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 را تنظیم کنید، ارائهدهنده به مسیر chat-completions تغییر میکند و بهجای نتایج ساختاریافتهی Search API، پاسخهای تولیدشده با هوش مصنوعی همراه با ارجاعها برمیگرداند.
دریافت کلید API برای Perplexity
- در perplexity.ai/settings/api یک حساب Perplexity بسازید
- در داشبورد یک کلید 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 بدون جایگزین محیطی resolve نشده باشد، راهاندازی/بارگذاری مجدد سریعاً شکست میخورد.
پارامترهای ابزار
این پارامترها برای مسیر بومی Perplexity Search API اعمال میشوند.
querystringrequiredپرسوجوی جستوجو.
countnumberتعداد نتایجی که باید برگردانده شود (1-10).
countrystringکد کشور ISO دوحرفی (برای مثال US، DE).
languagestringکد زبان ISO 639-1 (برای مثال en، de، fr).
freshness'day' | 'week' | 'month' | 'year'فیلتر زمانی - day برابر با ۲۴ ساعت است.
date_afterstringفقط نتایجی که پس از این تاریخ منتشر شدهاند (YYYY-MM-DD).
date_beforestringفقط نتایجی که پیش از این تاریخ منتشر شدهاند (YYYY-MM-DD).
domain_filterstring[]آرایهی allowlist/denylist دامنهها (حداکثر 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 دامنه در هر فیلتر
- امکان ترکیب allowlist و denylist در یک درخواست وجود ندارد
- برای ورودیهای denylist از پیشوند
-استفاده کنید (برای مثال["-reddit.com"])
نکات
- Perplexity Search API نتایج ساختاریافتهی جستوجوی وب را برمیگرداند (
title،url،snippet) - OpenRouter یا
plugins.entries.perplexity.config.webSearch.baseUrl/modelصریح، Perplexity را برای سازگاری دوباره به chat completions مربوط به Sonar تغییر میدهد - سازگاری Sonar/OpenRouter یک پاسخ تولیدشدهی واحد همراه با ارجاعها برمیگرداند، نه ردیفهای نتیجهی ساختاریافته
- نتایج بهطور پیشفرض برای ۱۵ دقیقه کش میشوند (قابل پیکربندی از طریق
cacheTtlMinutes)