Skip to main content

Deep Research โœจ NEW โœจ

With the latest "Deep Research" trend in the AI community, we're excited to implement our own Open source deep research capability! Introducing GPT Researcher's Deep Research - an advanced recursive research system that explores topics with unprecedented depth and breadth.

Each deep research takes around 5 minutes to complete and costs around $0.4 (using o3-mini on "high" reasoning effort)

How It Works

Deep Research employs a fascinating tree-like exploration pattern:

  1. Breadth: At each level, it generates multiple search queries to explore different aspects of your topic
  2. Depth: For each branch, it recursively dives deeper, following leads and uncovering connections
  3. Concurrent Processing: Utilizes async/await patterns to run multiple research paths simultaneously
  4. Smart Context Management: Automatically aggregates and synthesizes findings across all branches
  5. Progress Tracking: Real-time updates on research progress across both breadth and depth dimensions

Think of it as deploying a team of AI researchers, each following their own research path while collaborating to build a comprehensive understanding of your topic.

Process Flow

Logo

Quick Start

from gpt_researcher import GPTResearcher
from gpt_researcher.utils.enum import ReportType, Tone
import asyncio

async def main():
# Initialize researcher with deep research type
researcher = GPTResearcher(
query="What are the latest developments in quantum computing?",
report_type="deep", # This triggers deep research modd
)

# Run research
research_data = await researcher.conduct_research()

# Generate report
report = await researcher.write_report()
print(report)

if __name__ == "__main__":
asyncio.run(main())

Configuration

Deep Research behavior can be customized through several parameters:

  • deep_research_breadth: Number of parallel research paths at each level (default: 4)
  • deep_research_depth: How many levels deep to explore (default: 2)
  • deep_research_concurrency: Maximum number of concurrent research operations (default: 4)
  • total_words: Total words in the generated report (recommended: 2000)

You can configure these parameters in multiple ways:

  1. Environment Variables:
export DEEP_RESEARCH_BREADTH=4
export DEEP_RESEARCH_DEPTH=2
export DEEP_RESEARCH_CONCURRENCY=4
export TOTAL_WORDS=2500
  1. Config File:
deep_research_breadth: 4
deep_research_depth: 2
deep_research_concurrency: 4
total_words: 2500
researcher = GPTResearcher(
query="your query",
report_type="deep",
config_path="path/to/config.yaml" # Configure deep research parameters here
)

Progress Tracking

The on_progress callback provides real-time insights into the research process:

class ResearchProgress:
current_depth: int # Current depth level
total_depth: int # Maximum depth to explore
current_breadth: int # Current number of parallel paths
total_breadth: int # Maximum breadth at each level
current_query: str # Currently processing query
completed_queries: int # Number of completed queries
total_queries: int # Total queries to process

Error Handling

The deep research workflow is designed to be resilient:

  • Failed queries are automatically skipped
  • Research continues even if some branches fail
  • Progress tracking helps identify any issues

Best Practices

  1. Start Broad: Begin with a general query and let the system explore specifics
  2. Monitor Progress: Use the progress callback to understand the research flow
  3. Adjust Parameters: Tune breadth and depth based on your needs:
    • More breadth = wider coverage
    • More depth = deeper insights
  4. Resource Management: Consider concurrency limits based on your system capabilities

Limitations

  • Usage of reasoning LLM models such as o3-mini
  • Deep research may take longer than standard research
  • Higher API usage and costs due to multiple concurrent queries
  • May require more system resources for parallel processing

Happy researching! ๐ŸŽ‰