# Perplexity 搜索

> Perplexity Search API 以及 Sonar/OpenRouter 与 websearch 的兼容性

- 网址：https://funcoding.ai/agents/openclaw/tools/perplexity-search/
- 来源：OpenClaw 官方文档原文（中文），MIT 许可，同步于 2026-10-11
- 官方原文：https://docs.openclaw.ai/zh-CN/tools/perplexity-search

---
OpenClaw 支持将 Perplexity Search API 用作 `web_search` 提供商。它返回包含 `title`、`url` 和 `snippet` 字段的结构化结果。

为保持兼容性，OpenClaw 还支持旧版 Perplexity Sonar/OpenRouter 设置。如果你使用 `OPENROUTER_API_KEY`、在 `plugins.entries.perplexity.config.webSearch.apiKey` 中使用 `sk-or-...` 键，或设置 `plugins.entries.perplexity.config.webSearch.baseUrl` / `model`，提供商会切换到聊天补全路径，并返回带引用的 AI 综合答案，而不是结构化的 Search API 结果。

## 安装插件

安装官方插件，然后重启 Gateway 网关：

```bash
openclaw plugins install @openclaw/perplexity-plugin
openclaw gateway restart
```

## 获取 Perplexity API key

1. 在 [perplexity.ai/settings/api](https://www.perplexity.ai/settings/api) 创建 Perplexity 账户。
2. 在控制面板中生成 API key。
3. 将该密钥存入配置，或在 Gateway 网关环境中设置 `PERPLEXITY_API_KEY`。

## OpenRouter 兼容性

如果你已在通过 OpenRouter 使用 Perplexity Sonar，请保留 `provider: "perplexity"`，并在 Gateway 网关环境中设置 `OPENROUTER_API_KEY`，或在 `plugins.entries.perplexity.config.webSearch.apiKey` 中存储 `sk-or-...` 键。

可选的兼容性控制项：

- `plugins.entries.perplexity.config.webSearch.baseUrl`
- `plugins.entries.perplexity.config.webSearch.model`

## 配置示例

### 原生 Perplexity Search API

```json5
{
  plugins: {
    entries: {
      perplexity: {
        config: {
          webSearch: {
            apiKey: "pplx-...",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "perplexity",
      },
    },
  },
}
```

### OpenRouter / Sonar 兼容模式

```json5
{
  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 对象。

**通过环境变量：**在 Gateway 网关进程环境中设置 `PERPLEXITY_API_KEY` 或 `OPENROUTER_API_KEY`。对于 Gateway 网关安装，请将其放入 `~/.openclaw/.env`（或你的服务环境）中。请参阅[环境变量](https://funcoding.ai/agents/openclaw/help/faq/#env-vars-and-env-loading)。

如果已配置 `provider: "perplexity"`，且 Perplexity 密钥 SecretRef 无法解析，也没有环境变量回退值，启动或重新加载会立即失败。

## 工具参数

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

搜索查询。

返回的结果数（1-10）。

2 位 ISO 国家代码（例如 `US`、`DE`）。

ISO 639-1 语言代码（例如 `en`、`de`、`fr`）。

时间筛选器——`day` 表示 24 小时。

仅返回在此日期之后发布的结果（`YYYY-MM-DD`）。

仅返回在此日期之前发布的结果（`YYYY-MM-DD`）。

域名允许列表/拒绝列表数组（最多 20 个）。

总内容预算（最大 1000000）。

每页 token 上限。

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

- 接受 `query`、`count` 和 `freshness`。
- `count` 在该路径中仅用于兼容；响应仍是一个带引用的综合答案，而非包含 N 条结果的列表。
- 仅限 Search API 的筛选器（`country`、`language`、`date_after`、`date_before`、`domain_filter`、`max_tokens`、`max_tokens_per_page`）会返回明确的错误。

**示例：**

```javascript
// 按国家和语言搜索
await web_search({
  query: "可再生能源",
  country: "DE",
  language: "de",
});

// 最近的结果（过去一周）
await web_search({
  query: "AI 新闻",
  freshness: "week",
});

// 按日期范围搜索
await web_search({
  query: "AI 发展动态",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// 域名筛选（允许列表）
await web_search({
  query: "气候研究",
  domain_filter: ["nature.com", "science.org", ".edu"],
});

// 域名筛选（拒绝列表——添加 - 前缀）
await web_search({
  query: "产品评测",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

// 提取更多内容
await web_search({
  query: "详细的 AI 研究",
  max_tokens: 50000,
  max_tokens_per_page: 4096,
});
```

### 域名筛选规则

- 每个筛选器最多可包含 20 个域名。
- 同一请求中不能混用允许列表和拒绝列表条目。
- 拒绝列表条目使用 `-` 前缀（例如 `["-reddit.com"]`）。

## 注意事项

- Perplexity Search API 返回结构化的 Web 搜索结果（`title`、`url`、`snippet`）。
- 使用 OpenRouter，或显式设置 `plugins.entries.perplexity.config.webSearch.baseUrl` / `model`，会使 Perplexity 切换回 Sonar 聊天补全模式以保持兼容性。
- Sonar/OpenRouter 兼容模式返回一个带引用的综合答案，而非结构化结果行。
- 默认情况下，结果会缓存 15 分钟（可通过 `cacheTtlMinutes` 配置）。

## 相关内容

- [Web 搜索概览](https://funcoding.ai/agents/openclaw/tools/web/)：所有提供商和自动检测规则。
- [Brave 搜索](https://funcoding.ai/agents/openclaw/tools/brave-search/)：支持国家和语言筛选的结构化结果。
- [Exa 搜索](https://funcoding.ai/agents/openclaw/tools/exa-search/)：支持内容提取的神经搜索。
- [Perplexity Search API 文档](https://docs.perplexity.ai/docs/search/quickstart)：Perplexity Search API 官方快速开始指南和参考文档。
