跳转到内容

Perplexity 搜索

OpenClaw 支持 Perplexity Search API 作为 OpenClawPerplexityAPIweb_search 提供商。 它返回结构化结果,其中包含 titleurlsnippet 字段。

为了兼容性,OpenClaw 也支持旧版 Perplexity Sonar/OpenRouter 设置。 如果您使用 OpenClawPerplexityOpenRouterOPENROUTER_API_KEYplugins.entries.perplexity.config.webSearch.apiKey 中的 sk-or-... 密钥,或者设置了 plugins.entries.perplexity.config.webSearch.baseUrl / modelAPI,提供商将切换到聊天补全路径,并返回带有引用的 AI 综合答案,而不是结构化的 Search API 结果。

  1. perplexity.ai/settings/api 创建 Perplexity 账户
  2. 在控制台中生成 API 密钥
  3. 将密钥存储在配置中,或在 Gateway 环境中设置 PERPLEXITY_API_KEYGateway(网关)。

如果您已经在使用 OpenRouter 进行 Perplexity Sonar 搜索,请保留 OpenRouterPerplexityprovider: "perplexity" 并在 Gateway 环境中设置 OPENROUTER_API_KEYGateway(网关),或者在 plugins.entries.perplexity.config.webSearch.apiKey 中存储 sk-or-... 密钥。

可选的兼容性控制:

  • plugins.entries.perplexity.config.webSearch.baseUrl
  • plugins.entries.perplexity.config.webSearch.model
{
plugins: {
entries: {
perplexity: {
config: {
webSearch: {
apiKey: "pplx-...",
},
},
},
},
},
tools: {
web: {
search: {
provider: "perplexity",
},
},
},
}
{
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。它会将密钥存储在 plugins.entries.perplexity.config.webSearch.apiKey 下的 ~/.openclaw/openclaw.json 中。 该字段也接受 SecretRef 对象。

通过环境变量: 在 Gateway(网关) 进程环境中设置 PERPLEXITY_API_KEYOPENROUTER_API_KEYGateway(网关)。 对于 gateway 安装,请将其放入 ~/.openclaw/.env (或您的服务环境)中。参见 Env vars

如果配置了 provider: "perplexity"Perplexity 且 Perplexity 密钥 SecretRef 未解析且没有环境变量回退,启动/重载将快速失败。

这些参数适用于原生 Perplexity Search API 路径。

搜索查询。 要返回的结果数量(1-10)。 双字母 ISO 国家代码(例如 `US`、`DE`)。 ISO 639-1 语言代码(例如 `en`、`de`、`fr`)。 时间过滤器 - `day` 表示 24 小时。 仅限此日期之后发布的结果(`YYYY-MM-DD`)。 仅限此日期之前发布的结果(`YYYY-MM-DD`)。 域名允许列表/拒绝列表数组(最多 20 个)。 总内容预算(最多 1000000)。 每页 token 限制。

对于旧版 Sonar/OpenRouter 兼容路径:

  • 接受 querycountfreshness
  • 在此处 count 仅为兼容性;响应仍然是一个包含引用的综合答案,而不是 N 条结果列表
  • 仅限搜索 API 的筛选器,例如 countrylanguagedate_afterdate_beforedomain_filtermax_tokensmax_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 搜索 API 返回结构化的网络搜索结果(titleurlsnippet
  • OpenRouter 或显式的 plugins.entries.perplexity.config.webSearch.baseUrl / model 会将 Perplexity 切换回 Sonar 聊天补全以实现兼容性
  • Sonar/OpenRouter 兼容性返回一个包含引用的综合答案,而不是结构化的结果行
  • 结果默认缓存 15 分钟(可通过 cacheTtlMinutes 配置)
Web 搜索概述

所有提供商和自动检测规则。

Brave 搜索

带有国家和语言筛选器的结构化结果。

Exa search

带有内容提取功能的神经搜索。

Perplexity Search API docs

官方 Perplexity Search API 快速入门和参考。