Langsung ke konten utama

API Perplexity Search

OpenClaw mendukung API Perplexity Search sebagai penyedia web_search. API ini mengembalikan hasil terstruktur dengan bidang title, url, dan snippet. Untuk kompatibilitas, OpenClaw juga mendukung penyiapan Perplexity Sonar/OpenRouter lama. Jika Anda menggunakan OPENROUTER_API_KEY, kunci sk-or-... di plugins.entries.perplexity.config.webSearch.apiKey, atau menyetel plugins.entries.perplexity.config.webSearch.baseUrl / model, penyedia akan beralih ke jalur chat-completions dan mengembalikan jawaban hasil sintesis AI dengan sitasi alih-alih hasil API Search yang terstruktur.

Mendapatkan API key Perplexity

  1. Buat akun Perplexity di perplexity.ai/settings/api
  2. Buat API key di dashboard
  3. Simpan kunci di konfigurasi atau setel PERPLEXITY_API_KEY di lingkungan Gateway.

Kompatibilitas OpenRouter

Jika Anda sudah menggunakan OpenRouter untuk Perplexity Sonar, tetap gunakan provider: "perplexity" dan setel OPENROUTER_API_KEY di lingkungan Gateway, atau simpan kunci sk-or-... di plugins.entries.perplexity.config.webSearch.apiKey. Kontrol kompatibilitas opsional:
  • plugins.entries.perplexity.config.webSearch.baseUrl
  • plugins.entries.perplexity.config.webSearch.model

Contoh konfigurasi

API Perplexity Search native

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

Kompatibilitas 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",
      },
    },
  },
}

Tempat menyetel kunci

Melalui konfigurasi: jalankan openclaw configure --section web. Ini menyimpan kunci di ~/.openclaw/openclaw.json di bawah plugins.entries.perplexity.config.webSearch.apiKey. Bidang tersebut juga menerima objek SecretRef. Melalui environment: setel PERPLEXITY_API_KEY atau OPENROUTER_API_KEY di lingkungan proses Gateway. Untuk instalasi gateway, letakkan di ~/.openclaw/.env (atau environment layanan Anda). Lihat Env vars. Jika provider: "perplexity" dikonfigurasi dan SecretRef kunci Perplexity tidak teresolusikan tanpa fallback env, startup/reload akan langsung gagal.

Parameter tool

Parameter ini berlaku untuk jalur API Perplexity Search native.
ParameterDeskripsi
queryKueri pencarian (wajib)
countJumlah hasil yang dikembalikan (1-10, default: 5)
countryKode negara ISO 2 huruf (mis., “US”, “DE”)
languageKode bahasa ISO 639-1 (mis., “en”, “de”, “fr”)
freshnessFilter waktu: day (24 jam), week, month, atau year
date_afterHanya hasil yang dipublikasikan setelah tanggal ini (YYYY-MM-DD)
date_beforeHanya hasil yang dipublikasikan sebelum tanggal ini (YYYY-MM-DD)
domain_filterArray allowlist/denylist domain (maks. 20)
max_tokensTotal anggaran konten (default: 25000, maks: 1000000)
max_tokens_per_pageBatas token per halaman (default: 2048)
Untuk jalur kompatibilitas Sonar/OpenRouter lama:
  • query, count, dan freshness diterima
  • count hanya untuk kompatibilitas di sana; responsnya tetap berupa satu jawaban hasil sintesis dengan sitasi, bukan daftar N hasil
  • Filter khusus API Search seperti country, language, date_after, date_before, domain_filter, max_tokens, dan max_tokens_per_page akan mengembalikan error eksplisit
Contoh:
// Pencarian khusus negara dan bahasa
await web_search({
  query: "renewable energy",
  country: "DE",
  language: "de",
});

// Hasil terbaru (minggu lalu)
await web_search({
  query: "AI news",
  freshness: "week",
});

// Pencarian rentang tanggal
await web_search({
  query: "AI developments",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// Pemfilteran domain (allowlist)
await web_search({
  query: "climate research",
  domain_filter: ["nature.com", "science.org", ".edu"],
});

// Pemfilteran domain (denylist - awali dengan -)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

// Ekstraksi konten lebih banyak
await web_search({
  query: "detailed AI research",
  max_tokens: 50000,
  max_tokens_per_page: 4096,
});

Aturan filter domain

  • Maksimum 20 domain per filter
  • Tidak dapat mencampur allowlist dan denylist dalam permintaan yang sama
  • Gunakan prefiks - untuk entri denylist (misalnya ["-reddit.com"])

Catatan

  • API Perplexity Search mengembalikan hasil pencarian web terstruktur (title, url, snippet)
  • OpenRouter atau plugins.entries.perplexity.config.webSearch.baseUrl / model eksplisit mengalihkan Perplexity kembali ke chat completions Sonar demi kompatibilitas
  • Kompatibilitas Sonar/OpenRouter mengembalikan satu jawaban hasil sintesis dengan sitasi, bukan baris hasil terstruktur
  • Hasil dicache selama 15 menit secara default (dapat dikonfigurasi melalui cacheTtlMinutes)

Terkait