haive.agents.research.perplexity_agent

Perplexity-style deep research agent.

Multi-agent composition:

QueryAnalyzer (SimpleAgent) → Researcher (ReactAgent + search + RAG) → Synthesizer (SimpleAgent)

The Researcher has: - Tavily web search (or mock fallback) - Dynamic RAG: stores search results in vector store for retrieval

Usage:

from haive.agents.research.perplexity_agent import create_research_agent agent = create_research_agent() result = agent.run(“What are the latest advances in quantum computing?”)

Classes

ResearchAgent

Perplexity-style research agent using MultiAgent sequential composition.

Functions

create_research_agent([name, tools, max_search_iterations])

Create a Perplexity-style research agent.

web_search(query)

Search the web for information. Returns search results for the given query.

Module Contents

class haive.agents.research.perplexity_agent.ResearchAgent

Bases: haive.agents.multi.agent.MultiAgent

Perplexity-style research agent using MultiAgent sequential composition.

Pipeline: QueryAnalyzer → Researcher (search + RAG) → Synthesizer

Example::

agent = create_research_agent() result = agent.run(“What is quantum computing?”)

haive.agents.research.perplexity_agent.create_research_agent(name='perplexity', tools=None, max_search_iterations=8)

Create a Perplexity-style research agent.

Parameters:
  • name (str) – Agent name

  • tools (list | None) – Custom search tools (defaults to Tavily if TAVILY_API_KEY set, else mock)

  • max_search_iterations (int) – Max reasoning loops for the researcher

Returns:

ResearchAgent ready for execution

Return type:

ResearchAgent

Search the web for information. Returns search results for the given query.

Parameters:

query (str)

Return type:

str