Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.perplexity.ai/llms.txt

Use this file to discover all available pages before exploring further.

Overview

CAMEL-AI’s SearchToolkit ships a search_perplexity method that wraps the Perplexity Search API as a native CAMEL tool. The tool returns ranked web results — title, URL, snippet, and date — so the calling ChatAgent can ground its responses on fresh, citable sources.
CAMEL-AI is an open-source framework for building communicative multi-agent systems. Learn more at camel-ai.org.

Installation

pip install camel-ai

API Key Setup

Set your Perplexity API key as an environment variable:
export PERPLEXITY_API_KEY="your_api_key_here"

Get API Key

Generate your API key from the Perplexity dashboard.

Quick Start

Register search_perplexity as a tool on a ChatAgent:
from camel.agents import ChatAgent
from camel.toolkits import FunctionTool, SearchToolkit

agent = ChatAgent(
    system_message=(
        "You are a helpful assistant that can use the Perplexity "
        "search engine to answer questions."
    ),
    tools=[FunctionTool(SearchToolkit().search_perplexity)],
)

response = agent.step(
    input_message="What are the latest developments in multi-agent AI systems?",
    response_format=None,
)
print(response.msgs[0].content)
The tool calls POST https://api.perplexity.ai/search under the hood and returns the raw API response so the agent can pick which results to cite.

Configuration

All Search API parameters are supported directly on search_perplexity:
from camel.toolkits import SearchToolkit

toolkit = SearchToolkit()

results = toolkit.search_perplexity(
    query="AI safety research",
    max_results=5,
    max_tokens_per_page=512,
    country="US",
    search_recency_filter="week",                         # hour | day | week | month | year
    search_domain_filter=["arxiv.org", "-medium.com"],   # prefix with '-' to exclude
    search_language_filter=["en"],
)
You can also pass a list of queries for batched search, or use extra_params to forward any additional Search API field that isn’t yet a first-class argument:
results = toolkit.search_perplexity(
    query=["NVIDIA earnings", "AMD earnings"],
    max_results=3,
    extra_params={
        "search_after_date_filter": "1/1/2026",
        "search_before_date_filter": "5/1/2026",
    },
)

Response Shape

search_perplexity returns the raw Perplexity Search API response as a Dict[str, Any]. On success it contains a results list along with id and server_time:
{
    "id": "...",
    "server_time": "...",
    "results": [
        {
            "title": "...",
            "url": "...",
            "snippet": "...",
            "date": "...",          # may be present
            "last_updated": "...",  # may be present
        },
        # ...
    ],
}
On failure the response is a dictionary with an error key describing the issue (missing API key, HTTP error, or request exception).

CAMEL-AI Docs

Build multi-agent systems with CAMEL-AI.

Tool Source

SearchToolkit.search_perplexity implementation.

Search API Quickstart

Learn more about the underlying Perplexity Search API.

Example Script

End-to-end CAMEL example using Perplexity search.

Support

Need help with the integration?