Perplexity Agent API

Perplexity Agent API

Agent API는 여러 LLM 제공사를 하나의 통합 인터페이스로 묶는 규격이에요. OpenAI·Anthropic·Google·xAI 모델을 한 API 키로 부르면서, 실시간 웹 검색·툴 구성·추론 제어·토큰 예산까지 한 번의 호출로 다룰 수 있어서 LLM 애플리케이션을 만드는 데 강력한 출발점이 돼요.

출처: Perplexity Agent API Quickstart

왜 Agent API인가

네모서리에서 Agent API를 선택할 이유를 짚어볼게요.

  • 웹 근거 답변 — 실시간 웹 검색으로 최신·정확한 답변을 얻고, 한 번의 호출로 인라인 인용을 받아요. 대화 맥락도 턴마다 유지돼요.
  • 멀티 프로바이더 접근 — OpenAI·Anthropic·Google·xAI 등 여러 제공사 모델을 하나의 API로 접근해, 여러 API 키를 관리할 필요가 없어요.
  • 투명한 요금 — 요청별 정확한 토큰 수와 비용을 보여줘요. 마크업 없이 제공사 직접 요금 그대로예요.
  • 세밀한 제어 — 모델·추론·토큰·툴을 일관된 문법으로 바꿀 수 있어요.

엔드포인트POST https://api.perplexity.ai/v1/agent예요. OpenAI SDK 호환을 위해 POST /v1/responses도 alias로 받아줘요.

설치와 인증

공식 SDK를 쓰는 게 가장 편리해요. Python은 pip install perplexityai, TypeScript는 npm install @perplexity-ai/perplexity_ai로 설치하면 돼요. 인증은 PERPLEXITY_API_KEY 환경 변수를 설정하면 SDK가 자동으로 읽어요.

Python과 TypeScript SDK 모두 output_text 속성을 제공해서, response.output을 돌며 텍스트를 모을 필요 없이 전체 텍스트를 바로 얻을 수 있어요.

기본 사용 — 타사 모델 호출

특정한 능력이 필요하면 OpenAI·Anthropic·Google·xAI 등 타사 모델을 골라 호출해요. 모델 id는 openai/gpt-5.6-sol처럼 제공사/모델명 형태여요.

from perplexity import Perplexity

client = Perplexity()
response = client.responses.create(
    model="openai/gpt-5.6-sol",
    input="지도 학습과 비지도 학습의 차이를 설명해 주세요."
)
print(response.output_text)

응답은 OpenAI Responses 형식의 JSON이에요. model, status, output, usage 필드가 있고, usage.cost.total_cost로 요청 비용을 확인할 수 있어요.

preset 사용

사용 사례별로 최적화된 기본값을 preset으로 쓸 수 있어요. preset="low"처럼 지정하면 모델·토큰 한도·툴 접근이 미리 구성된 설정으로 실행돼요.

response = client.responses.create(
    preset="low",
    input="LLM이 실제 세계에서 어떻게 쓰이는지 알려주세요."
)
print(response.output_text)

preset은 요청에 따라 웹 검색·URL 페칭 툴을 자동으로 사용하면서, 사용된 토큰과 툴 호출·비용을 usage에 상세히 남겨줘요.

웹 검색 사용

모델 능력을 확장하려면 툴을 붙여요. web_search 툴을 활성화하면 실시간 정보가 필요한 질문에 검색을 수행할 수 있어요.

response = client.responses.create(
    model="openai/gpt-5.6-sol",
    input="Transformer 원본 구조를 설명해 주세요.",
    tools=[{"type": "web_search"}],
    instructions="최신 뉴스나 최근 동향에 관한 질문에는 web_search 툴을 쓰세요."
)

finance_search 사용

finance_search 툴로 구조화된 금융·시장 데이터를 조회할 수도 있어요. 직접 모델 요청에서는 툴이 초기화·실행될 수 있게 max_steps를 최소 3으로 설정하는 게 권장돼요.

response = client.responses.create(
    model="openai/gpt-5.6-sol",
    input="10-K 보고서를 읽는 방법을 설명해 주세요.",
    tools=[{"type": "finance_search"}],
    max_steps=3,
)

더 알아보기