Perplexity with CAMEL-AI
Overview
Section titled “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.
Installation
Section titled “Installation”pip install camel-aiAPI Key Setup
Section titled “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
Section titled “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
Section titled “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
Section titled “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).
Links & Resources
Section titled “Links & Resources”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
Section titled “Support”Need help with the integration?
- Browse the CAMEL-AI documentation
- Review our FAQ