Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Autonomous agent for comprehensive deep research on any topic
.claude/skills/brycewang-stanford-gpt-researcher-guide/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 113% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 78% | 0% |
GPT Researcher is an autonomous research agent with over 26,000 GitHub stars that conducts comprehensive online research on any given topic. Developed by Assaf Elovic, it generates detailed, factual, and unbiased research reports by planning research questions, searching multiple sources, scraping and filtering relevant content, and synthesizing findings into well-structured reports with citations.
The agent addresses a fundamental challenge in AI-assisted research: generating accurate, comprehensive reports rather than relying on a single LLM's potentially outdated or hallucinated knowledge. GPT Researcher uses a multi-agent architecture where a planner agent decomposes the research query into sub-questions, multiple retriever agents gather information from diverse sources, and a writer agent synthesizes everything into a coherent report.
For academic researchers, GPT Researcher is valuable for conducting preliminary literature surveys, exploring unfamiliar research domains, gathering background information for grant proposals, and generating initial drafts of review sections. The agent can be configured to search specific domains, use academic search engines, and output reports in various formats including markdown and PDF.
bash# Install from PyPI pip install gpt-researcher # Or clone for development git clone https://github.com/assafelovic/gpt-researcher.git cd gpt-researcher pip install -e .
Configure your environment with API keys using environment variables:
bash# Required: LLM provider (choose one) export OPENAI_API_KEY=$OPENAI_API_KEY # Or use other providers export ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY # Required: Search provider (choose one) export TAVILY_API_KEY=$TAVILY_API_KEY # Or alternatives export SERPER_API_KEY=$SERPER_API_KEY export SEARX_URL=$SEARX_URL
For a fully local setup without external API dependencies, you can configure local LLMs and search engines:
bash# Use local LLM via Ollama export OPENAI_BASE_URL=http://localhost:11434/v1 export LLM_PROVIDER=ollama export FAST_LLM=llama3 export SMART_LLM=llama3 # Use local search via SearXNG export SEARX_URL=http://localhost:8888 export SEARCH_PROVIDER=searx
Generate a research report with a single function call:
pythonfrom gpt_researcher import GPTResearcher import asyncio async def run_research(): query = "Recent advances in protein structure prediction using deep learning" researcher = GPTResearcher(query=query, report_type="research_report") # Conduct research (searches, scrapes, analyzes sources) research_result = await researcher.conduct_research() # Generate the final report report = await researcher.write_report() # Access sources used sources = researcher.get_source_urls() print(f"Report based on {len(sources)} sources") print(report) asyncio.run(run_research())
GPT Researcher supports multiple report types tailored to different needs:
python# Generate a detailed multi-page report researcher = GPTResearcher( query="Transformer architectures for scientific document understanding", report_type="detailed_report", max_subtopics=5, )
The research process follows a sophisticated multi-agent pipeline:
python# Customize the research configuration researcher = GPTResearcher( query="Impact of climate change on marine biodiversity", report_type="research_report", source_urls=None, # Or provide specific URLs to research config_path=None, # Or path to custom config max_search_results_per_query=5, verbose=True, )
Restrict research to specific domains or provide seed URLs:
python# Research only from specific academic sources researcher = GPTResearcher( query="CRISPR gene editing safety profiles", source_urls=[ "https://pubmed.ncbi.nlm.nih.gov/", "https://www.nature.com/", "https://www.science.org/", ], )
Configure different LLMs for different stages of the research pipeline:
python# Use a fast model for planning and a powerful model for writing # Set via environment variables # FAST_LLM: Used for sub-question generation and filtering # SMART_LLM: Used for report synthesis and writing
GPT Researcher includes a web interface and API server:
bash# Start the web UI and API server cd gpt-researcher pip install -r requirements.txt python -m uvicorn main:app --host 0.0.0.0 --port 8000
The API exposes WebSocket endpoints for streaming research progress and REST endpoints for report management, making it easy to integrate into existing research platforms.
GPT Researcher can be adapted for several academic use cases:
The reports include full citations with URLs, making it straightforward to verify sources and follow up with deeper reading of primary literature.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 16,038 | 20,682 | +29% | 1 | 1 | 0% | 2,944 | 4,474 | +52% | 0 | 0 | — |
case-02 | fail→pass | 16,888 | 14,461 | -14% | 1 | 1 | 0% | 3,125 | 3,771 | +21% | 0 | 0 | — |
case-03 | pass→pass | 11,246 | 9,574 | -15% | 1 | 1 | 0% | 1,814 | 3,170 | +75% | 0 | 0 | — |
case-04 | fail→pass | 18,487 | 11,086 | -40% | 1 | 1 | 0% | 3,158 | 3,253 | +3% | 0 | 0 | — |
case-05 | fail→pass | 8,089 | 6,931 | -14% | 1 | 1 | 0% | 1,336 | 2,847 | +113% | 0 | 0 | — |
case-06 | pass→pass | 3,723 | 3,314 | -11% | 1 | 1 | 0% | 742 | 2,114 | +185% | 0 | 0 | — |
case-07 | pass→pass | 11,523 | 5,070 | -56% | 1 | 1 | 0% | 1,741 | 2,287 | +31% | 0 | 0 | — |
case-08 | pass→pass | 8,080 | 1,960 | -76% | 1 | 1 | 0% | 1,593 | 1,917 | +20% | 0 | 0 | — |
case-09 | pass→pass | 4,826 | 2,728 | -43% | 1 | 1 | 0% | 661 | 2,049 | +210% | 0 | 0 | — |
case-10 | pass→pass | 5,135 | 3,134 | -39% | 1 | 1 | 0% | 759 | 1,947 | +157% | 0 | 0 | — |
case-11 | pass→pass | 14,182 | 12,602 | -11% | 1 | 1 | 0% | 2,447 | 3,556 | +45% | 0 | 0 | — |
case-12 | fail→pass | 19,583 | 18,875 | -4% | 1 | 1 | 0% | 2,800 | 4,244 | +52% | 0 | 0 | — |
case-13 | pass→pass | 5,799 | 2,516 | -57% | 1 | 1 | 0% | 1,015 | 1,855 | +83% | 0 | 0 | — |
case-14 | pass→pass | 1,960 | 1,089 | -44% | 1 | 1 | 0% | 274 | 1,690 | +517% | 0 | 0 | — |
case-15 | pass→pass | 12,933 | 4,653 | -64% | 1 | 1 | 0% | 2,155 | 2,587 | +20% | 0 | 0 | — |
case-16 | pass→pass | 10,306 | 4,768 | -54% | 1 | 1 | 0% | 1,554 | 2,497 | +61% | 0 | 0 | — |
case-17 | fail→pass | 7,260 | 2,071 | -71% | 1 | 1 | 0% | 989 | 1,760 | +78% | 0 | 0 | — |
case-18 | pass→pass | 5,475 | 2,623 | -52% | 1 | 1 | 0% | 1,148 | 2,009 | +75% | 0 | 0 | — |
case-19 | pass→pass | 13,515 | 11,545 | -15% | 1 | 1 | 0% | 2,294 | 3,182 | +39% | 0 | 0 | — |
case-20 | pass→pass | 11,407 | 8,791 | -23% | 1 | 1 | 0% | 1,850 | 3,276 | +77% | 0 | 0 | — |
case-21 | pass→pass | 15,963 | 16,921 | +6% | 1 | 1 | 0% | 3,090 | 4,297 | +39% | 0 | 0 | — |
case-22 | pass→pass | 13,339 | 19,484 | +46% | 1 | 1 | 0% | 2,693 | 4,917 | +83% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.