Tools

Perplexity 検索

OpenClaw は Perplexity Search API を web_search プロバイダーとしてサポートしています。この API は、titleurlsnippet フィールドを含む構造化された結果を返します。

互換性のため、OpenClaw は従来の Perplexity Sonar/OpenRouter 設定もサポートしています。OPENROUTER_API_KEYplugins.entries.perplexity.config.webSearch.apiKey 内の sk-or-... キーを使用するか、plugins.entries.perplexity.config.webSearch.baseUrl / model を設定すると、プロバイダーはチャット補完パスに切り替わり、構造化された Search API の結果ではなく、引用付きの AI 合成回答を返します。

Plugin のインストール

公式 Plugin をインストールしてから、Gateway を再起動します。

bash
openclaw plugins install @openclaw/perplexity-pluginopenclaw gateway restart

Perplexity API キーの取得

  1. perplexity.ai/settings/api で Perplexity アカウントを作成します。
  2. ダッシュボードで API キーを生成します。
  3. キーを設定に保存するか、Gateway 環境で PERPLEXITY_API_KEY を設定します。

OpenRouter との互換性

Perplexity Sonar に OpenRouter をすでに使用していた場合は、provider: "perplexity" を維持して Gateway 環境で OPENROUTER_API_KEY を設定するか、plugins.entries.perplexity.config.webSearch.apiKeysk-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 を実行します。キーは plugins.entries.perplexity.config.webSearch.apiKey 配下の ~/.openclaw/openclaw.json に保存されます。このフィールドは SecretRef オブジェクトも受け入れます。

環境変数を使用する場合: Gateway プロセス環境で PERPLEXITY_API_KEY または OPENROUTER_API_KEY を設定します。Gateway をインストールしている場合は、~/.openclaw/.env(またはサービス環境)に配置します。環境変数を参照してください。

provider: "perplexity" が設定されており、Perplexity キーの SecretRef を解決できず、環境変数によるフォールバックもない場合、起動または再読み込みは即座に失敗します。

ツールパラメーター

以下のパラメーターは、ネイティブ Perplexity Search API パスに適用されます。

querystringrequired

検索クエリ。

countnumberdefault: 5

返す結果の数(1~10)。

countrystring

2 文字の ISO 国コード(例:USDE)。

languagestring

ISO 639-1 言語コード(例:endefr)。

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 互換パスの場合:

  • querycountfreshness が受け入れられます。
  • そのパスでは count は互換性のためだけに使用されます。応答は N 件の結果リストではなく、引き続き引用付きの単一の合成回答です。
  • Search API 専用フィルター(countrylanguagedate_afterdate_beforedomain_filtermax_tokensmax_tokens_per_page)を使用すると、明示的なエラーが返されます。

例:

javascript
// 国と言語を指定した検索await web_search({  query: "再生可能エネルギー",  country: "DE",  language: "de",}); // 最近の結果(過去 1 週間)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 検索結果(titleurlsnippet)を返します。
  • OpenRouter、または明示的な plugins.entries.perplexity.config.webSearch.baseUrl / model を使用すると、互換性のため Perplexity は Sonar チャット補完に戻ります。
  • Sonar/OpenRouter 互換モードでは、構造化された結果行ではなく、引用付きの単一の合成回答が返されます。
  • 結果はデフォルトで 15 分間キャッシュされます(cacheTtlMinutes で設定可能)。

関連項目

Was this useful?
On this page

On this page