Passer au contenu principal
OpenClaw prend en charge l’API Perplexity Search comme fournisseur web_search. Elle renvoie des résultats structurés avec les champs title, url et snippet. Pour la compatibilité, OpenClaw prend également en charge les configurations Perplexity Sonar/OpenRouter héritées. Si vous utilisez OPENROUTER_API_KEY, une clé sk-or-... dans plugins.entries.perplexity.config.webSearch.apiKey, ou si vous définissez plugins.entries.perplexity.config.webSearch.baseUrl / model, le fournisseur bascule vers le chemin chat-completions et renvoie des réponses synthétisées par IA avec citations au lieu de résultats structurés de l’API Search.

Installer le Plugin

Installez le Plugin officiel, puis redémarrez Gateway :
openclaw plugins install @openclaw/perplexity-plugin
openclaw gateway restart

Obtenir une clé d’API Perplexity

  1. Créez un compte Perplexity sur perplexity.ai/settings/api
  2. Générez une clé d’API dans le tableau de bord
  3. Stockez la clé dans la configuration ou définissez PERPLEXITY_API_KEY dans l’environnement Gateway.

Compatibilité OpenRouter

Si vous utilisiez déjà OpenRouter pour Perplexity Sonar, conservez provider: "perplexity" et définissez OPENROUTER_API_KEY dans l’environnement Gateway, ou stockez une clé sk-or-... dans plugins.entries.perplexity.config.webSearch.apiKey. Contrôles de compatibilité facultatifs :
  • plugins.entries.perplexity.config.webSearch.baseUrl
  • plugins.entries.perplexity.config.webSearch.model

Exemples de configuration

API Perplexity Search native

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

Compatibilité 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",
      },
    },
  },
}

Où définir la clé

Via la configuration : exécutez openclaw configure --section web. La clé est stockée dans ~/.openclaw/openclaw.json sous plugins.entries.perplexity.config.webSearch.apiKey. Ce champ accepte aussi les objets SecretRef. Via l’environnement : définissez PERPLEXITY_API_KEY ou OPENROUTER_API_KEY dans l’environnement du processus Gateway. Pour une installation de Gateway, placez-la dans ~/.openclaw/.env (ou dans l’environnement de votre service). Consultez Variables d’environnement. Si provider: "perplexity" est configuré et que la SecretRef de la clé Perplexity n’est pas résolue sans solution de repli dans l’environnement, le démarrage/rechargement échoue rapidement.

Paramètres de l’outil

Ces paramètres s’appliquent au chemin de l’API Perplexity Search native.
query
string
requis
Requête de recherche.
count
number
défaut:"5"
Nombre de résultats à renvoyer (1-10).
country
string
Code pays ISO à 2 lettres (p. ex. US, DE).
language
string
Code de langue ISO 639-1 (p. ex. en, de, fr).
freshness
'day' | 'week' | 'month' | 'year'
Filtre temporel - day correspond à 24 heures.
date_after
string
Uniquement les résultats publiés après cette date (YYYY-MM-DD).
date_before
string
Uniquement les résultats publiés avant cette date (YYYY-MM-DD).
domain_filter
string[]
Tableau de domaines autorisés/refusés (max. 20).
max_tokens
number
défaut:"25000"
Budget total de contenu (max. 1000000).
max_tokens_per_page
number
défaut:"2048"
Limite de jetons par page.
Pour le chemin de compatibilité Sonar/OpenRouter hérité :
  • query, count et freshness sont acceptés
  • count existe uniquement pour la compatibilité dans ce chemin ; la réponse reste une seule réponse synthétisée avec citations plutôt qu’une liste de N résultats
  • Les filtres propres à l’API Search comme country, language, date_after, date_before, domain_filter, max_tokens et max_tokens_per_page renvoient des erreurs explicites
Exemples :
// 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,
});

Règles de filtre de domaine

  • Maximum 20 domaines par filtre
  • Impossible de mélanger liste d’autorisation et liste de refus dans une même requête
  • Utilisez le préfixe - pour les entrées de liste de refus (p. ex. ["-reddit.com"])

Notes

  • L’API Perplexity Search renvoie des résultats de recherche web structurés (title, url, snippet)
  • OpenRouter ou plugins.entries.perplexity.config.webSearch.baseUrl / model explicite fait rebasculer Perplexity vers les chat completions Sonar pour compatibilité
  • La compatibilité Sonar/OpenRouter renvoie une seule réponse synthétisée avec citations, pas des lignes de résultats structurées
  • Les résultats sont mis en cache pendant 15 minutes par défaut (configurable via cacheTtlMinutes)

Associés

Vue d’ensemble de la recherche web

Tous les fournisseurs et règles d’auto-détection.

Recherche Brave

Résultats structurés avec filtres de pays et de langue.

Recherche Exa

Recherche neuronale avec extraction de contenu.

Documentation de l’API Perplexity Search

Guide de démarrage rapide et référence officiels de l’API Perplexity Search.