Perplexity Search API
OpenClaw는 web_search 프로바이더로 Perplexity Search API를 지원합니다. 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을 설정하면 프로바이더가 채팅 완성 경로로 전환하고 구조화된 Search API 결과 대신 인용이 있는 AI 합성 답변을 반환합니다.
Perplexity API 키 발급
- perplexity.ai/settings/api에서 Perplexity 계정을 생성합니다
- 대시보드에서 API 키를 생성합니다
- 설정에 키를 저장하거나 게이트웨이 환경에서
PERPLEXITY_API_KEY를 설정합니다.
OpenRouter 호환성
이미 Perplexity Sonar에 OpenRouter를 사용 중인 경우, provider: "perplexity"를 유지하고 게이트웨이 환경에서 OPENROUTER_API_KEY를 설정하거나 plugins.entries.perplexity.config.webSearch.apiKey에 sk-or-... 키를 저장합니다.
선택적 호환성 제어:
plugins.entries.perplexity.config.webSearch.baseUrlplugins.entries.perplexity.config.webSearch.model
설정 예시
기본 Perplexity Search API
{
plugins: {
entries: {
perplexity: {
config: {
webSearch: {
apiKey: "pplx-...",
},
},
},
},
},
tools: {
web: {
search: {
provider: "perplexity",
},
},
},
}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",
},
},
},
}키 저장 위치
설정을 통해: openclaw configure --section web을 실행합니다. plugins.entries.perplexity.config.webSearch.apiKey 아래의 ~/.openclaw/openclaw.json에 키를 저장합니다. 해당 필드는 SecretRef 객체도 허용합니다.
환경을 통해: 게이트웨이 프로세스 환경에서 PERPLEXITY_API_KEY 또는 OPENROUTER_API_KEY를 설정합니다. 게이트웨이 설치의 경우 ~/.openclaw/.env에 넣습니다(또는 서비스 환경). 환경 변수를 참조하십시오.
provider: "perplexity"가 설정되고 Perplexity 키 SecretRef가 환경 폴백 없이 해결되지 않으면 시작/재로드가 빠르게 실패합니다.
도구 파라미터
이 파라미터는 기본 Perplexity Search API 경로에 적용됩니다.
| 파라미터 | 설명 |
|---|---|
query | 검색 쿼리 (필수) |
count | 반환할 결과 수 (1-10, 기본값: 5) |
country | 2자리 ISO 국가 코드 (예: "US", "DE") |
language | ISO 639-1 언어 코드 (예: "en", "de", "fr") |
freshness | 시간 필터: day (24시간), week, month, year |
date_after | 이 날짜 이후에 게시된 결과만 (YYYY-MM-DD) |
date_before | 이 날짜 이전에 게시된 결과만 (YYYY-MM-DD) |
domain_filter | 도메인 허용 목록/차단 목록 배열 (최대 20개) |
max_tokens | 전체 콘텐츠 예산 (기본값: 25000, 최대: 1000000) |
max_tokens_per_page | 페이지당 토큰 한도 (기본값: 2048) |
레거시 Sonar/OpenRouter 호환성 경로의 경우:
query,count,freshness가 허용됩니다count는 거기서 호환성 전용입니다; 응답은 N개 결과 목록 대신 여전히 인용이 있는 하나의 합성 답변입니다country,language,date_after,date_before,domain_filter,max_tokens,max_tokens_per_page와 같은 Search API 전용 필터는 명시적 오류를 반환합니다
예시:
// 국가 및 언어별 검색
await web_search({
query: "renewable energy",
country: "DE",
language: "de",
});
// 최근 결과 (지난 주)
await web_search({
query: "AI news",
freshness: "week",
});
// 날짜 범위 검색
await web_search({
query: "AI developments",
date_after: "2024-01-01",
date_before: "2024-06-30",
});
// 도메인 필터링 (허용 목록)
await web_search({
query: "climate research",
domain_filter: ["nature.com", "science.org", ".edu"],
});
// 도메인 필터링 (차단 목록 - -로 접두사)
await web_search({
query: "product reviews",
domain_filter: ["-reddit.com", "-pinterest.com"],
});
// 더 많은 콘텐츠 추출
await web_search({
query: "detailed AI research",
max_tokens: 50000,
max_tokens_per_page: 4096,
});도메인 필터 규칙
- 필터당 최대 20개 도메인
- 동일한 요청에서 허용 목록과 차단 목록 혼합 불가
- 차단 목록 항목에는
-접두사 사용 (예:["-reddit.com"])
참고 사항
- Perplexity Search API는 구조화된 웹 검색 결과 (
title,url,snippet)를 반환합니다 - OpenRouter 또는 명시적
plugins.entries.perplexity.config.webSearch.baseUrl/model은 호환성을 위해 Perplexity를 Sonar 채팅 완성으로 다시 전환합니다 - Sonar/OpenRouter 호환성은 구조화된 결과 행이 아닌 인용이 있는 하나의 합성 답변을 반환합니다
- 결과는 기본적으로 15분 동안 캐시됩니다 (
cacheTtlMinutes로 설정 가능)
관련 항목
- 웹 검색 개요 -- 모든 프로바이더 및 자동 감지
- Perplexity Search API 문서 -- 공식 Perplexity 문서
- Brave Search -- 국가/언어 필터가 있는 구조화된 결과
- Exa Search -- 콘텐츠 추출 기능이 있는 뉴럴 검색