Perplexity Search API

OpenClaw unterstützt die Perplexity Search API als web_search-Provider. Sie liefert strukturierte Ergebnisse mit den Feldern title, url und snippet.

Für Kompatibilität unterstützt OpenClaw auch Legacy-Setups mit Perplexity Sonar/OpenRouter. Wenn du OPENROUTER_API_KEY verwendest, einen sk-or-...-Key in tools.web.search.perplexity.apiKey angibst oder tools.web.search.perplexity.baseUrl / model setzt, wechselt der Provider auf den Chat-Completions-Pfad und liefert KI-synthetisierte Antworten mit Zitaten statt strukturierter Search-API-Ergebnisse.

Perplexity API-Key besorgen

  1. Erstelle ein Perplexity-Konto unter https://www.perplexity.ai/settings/api
  2. Generiere einen API-Key im Dashboard
  3. Speichere den Key in der Konfiguration oder setze PERPLEXITY_API_KEY in der Gateway-Umgebung.

OpenRouter-Kompatibilität

Wenn du bereits OpenRouter für Perplexity Sonar genutzt hast, behalte provider: "perplexity" bei und setze OPENROUTER_API_KEY in der Gateway-Umgebung, oder speichere einen sk-or-...-Key in tools.web.search.perplexity.apiKey.

Optionale Legacy-Einstellungen:

  • tools.web.search.perplexity.baseUrl
  • tools.web.search.perplexity.model

Konfigurationsbeispiele

Native Perplexity Search API

{
  tools: {
    web: {
      search: {
        provider: "perplexity",
        perplexity: {
          apiKey: "pplx-...",
        },
      },
    },
  },
}

OpenRouter / Sonar-Kompatibilität

{
  tools: {
    web: {
      search: {
        provider: "perplexity",
        perplexity: {
          apiKey: "<openrouter-api-key>",
          baseUrl: "https://openrouter.ai/api/v1",
          model: "perplexity/sonar-pro",
        },
      },
    },
  },
}

Wo der Key hinterlegt wird

Über die Konfiguration: Führe openclaw configure --section web aus. Der Key wird in ~/.openclaw/openclaw.json unter tools.web.search.perplexity.apiKey gespeichert. Dieses Feld akzeptiert auch SecretRef-Objekte.

Über Umgebungsvariablen: Setze PERPLEXITY_API_KEY oder OPENROUTER_API_KEY in der Prozessumgebung des Gateways. Bei einer Gateway-Installation lege sie in ~/.openclaw/.env ab (oder in deiner Service-Umgebung). Siehe Umgebungsvariablen.

Wenn provider: "perplexity" konfiguriert ist und der Perplexity-Key-SecretRef nicht aufgelöst werden kann und kein Umgebungsvariablen-Fallback existiert, schlägt der Start/Reload sofort fehl.

Tool-Parameter

Diese Parameter gelten für den nativen Perplexity-Search-API-Pfad.

ParameterBeschreibung
querySuchanfrage (Pflichtfeld)
countAnzahl der Ergebnisse (1-10, Standard: 5)
country2-stelliger ISO-Ländercode (z. B. “US”, “DE”)
languageISO 639-1-Sprachcode (z. B. “en”, “de”, “fr”)
freshnessZeitfilter: day (24h), week, month oder year
date_afterNur Ergebnisse nach diesem Datum (YYYY-MM-DD)
date_beforeNur Ergebnisse vor diesem Datum (YYYY-MM-DD)
domain_filterDomain-Allowlist/-Denylist-Array (max. 20)
max_tokensGesamtes Content-Budget (Standard: 25000, max: 1000000)
max_tokens_per_pageToken-Limit pro Seite (Standard: 2048)

Für den Legacy-Sonar/OpenRouter-Kompatibilitätspfad werden nur query und freshness unterstützt. Reine Search-API-Filter wie country, language, date_after, date_before, domain_filter, max_tokens und max_tokens_per_page liefern explizite Fehlermeldungen.

Beispiele:

// Länder- und sprachspezifische Suche
await web_search({
  query: "renewable energy",
  country: "DE",
  language: "de",
});

// Aktuelle Ergebnisse (letzte Woche)
await web_search({
  query: "AI news",
  freshness: "week",
});

// Suche mit Datumsbereich
await web_search({
  query: "AI developments",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// Domain-Filterung (Allowlist)
await web_search({
  query: "climate research",
  domain_filter: ["nature.com", "science.org", ".edu"],
});

// Domain-Filterung (Denylist - Prefix mit -)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

// Mehr Content-Extraktion
await web_search({
  query: "detailed AI research",
  max_tokens: 50000,
  max_tokens_per_page: 4096,
});

Domain-Filter-Regeln

  • Maximal 20 Domains pro Filter
  • Allowlist und Denylist können nicht in derselben Anfrage gemischt werden
  • Verwende das --Prefix für Denylist-Einträge (z. B. ["-reddit.com"])

Hinweise

  • Die Perplexity Search API liefert strukturierte Websuchergebnisse (title, url, snippet)
  • OpenRouter oder explizite baseUrl / model schalten Perplexity auf Sonar-Chat-Completions für Kompatibilität um
  • Ergebnisse werden standardmäßig 15 Minuten gecacht (konfigurierbar über cacheTtlMinutes)

Siehe Web-Tools für die vollständige web_search-Konfiguration. Siehe Perplexity Search API-Dokumentation für weitere Details.