GPT Researcher
Deep-research agent for turning web and local sources into cited reports.
- Source repo
- assafelovic/gpt-researcher
- Stars
- ★ 31k
- Last updated
- 26d ago
- License
- Apache-2.0
- Primary language
- Python
- FA score
- 52/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformClaude.ai · OpenAI API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- An analyst preparing a cited, long-form briefing on a current topic can collect and synthesize material from multiple web sources.
- Not a fit if
- Users wanting a ready-made hosted product instead of self-hosting
- Anyone needing guaranteed factual accuracy for academic papers
- Source review
- 52/100 · Major gaps 2 safety controls not found
What does this agent do, and when should you use it?
GPT Researcher is an open deep-research agent for web and local-document research tasks. Its planner-and-execution design generates research questions, sends crawler agents to gather material, tracks sources while summarizing, and aggregates the findings into a report. The project exposes a Python package through the GPTResearcher class, a FastAPI server, and lightweight static or NextJS frontend options. It supports web research plus local PDF, text, CSV, Excel, Markdown, PowerPoint, and Word documents, with exports including PDF and Word. It also documents recursive Deep Research, MCP-backed data sources, and LangSmith tracing for LangGraph-based workflows.
A Python caller creates GPTResearcher(query=query), runs await researcher.conduct_research(), then runs await researcher.write_report(). The documented flow creates task-specific research questions, uses a crawler agent to gather information for each question, summarizes and source-tracks resources, then filters and aggregates the summaries into a final report. A self-hosted server can be started with python -m uvicorn main:app --reload after installing requirements; local-document research uses DOC_PATH. With RETRIEVER=tavily,mcp, mcp_configs can define commands, arguments, and environment variables for MCP sources such as GitHub repositories, databases, and custom APIs alongside web search.
- An analyst preparing a cited, long-form briefing on a current topic can collect and synthesize material from multiple web sources.
- A team with PDFs, spreadsheets, Word files, or Markdown notes can set DOC_PATH and research its local document collection.
- A developer who needs repository or database content alongside web results can configure RETRIEVER=tavily,mcp and mcp_configs.
- A user who wants to submit research questions in a browser and follow progress can deploy the FastAPI service with either frontend option.
- A researcher investigating a complex subject can use Deep Research’s configurable depth and breadth for recursive, tree-like exploration.
How do you install or deploy this agent?
Use Python 3.11 or later, clone the repository, and set the documented API keys:
export OPENAI_API_KEY={Your OpenAI API Key here}
export TAVILY_API_KEY={Your Tavily API Key here}Install and start the server:
pip install -r requirements.txt
python -m uvicorn main:app --reloadThe server is available at http://localhost:8000 by default. For library use, install:
pip install gpt-researcherHow do you use this agent?
The minimal package flow is:
from gpt_researcher import GPTResearcherquery = "why is Nvidia stock going up?"
researcher = GPTResearcher(query=query)
research_result = await researcher.conduct_research()
report = await researcher.write_report()For local research, first set export DOC_PATH="./my-docs"; select “My Documents” in the frontend or pass report_source="local" when creating GPTResearcher. For hybrid web and MCP research, set export RETRIEVER=tavily,mcp and supply the MCP server details in mcp_configs.
What are this agent's strengths and limitations?
- Its documented planner, execution-agent, and publisher flow covers question generation, collection, source tracking, and report aggregation.
- It combines web research with several local file formats, allowing internal documents and external material in one research workflow.
- MCP configuration can connect specialized sources including GitHub repositories, databases, and custom APIs.
- It is available as a Python package and through FastAPI, lightweight static and NextJS frontends, or Docker deployment.
- The standard setup requires Python 3.11+ and configuration of both an OpenAI API key and a Tavily API key.
- The documented Deep Research estimate is about five minutes per run and about $0.40 when using o3-mini at high reasoning effort.
- The project describes itself as experimental and provided as-is; it does not claim to eliminate bias or guarantee factual correctness.
- MCP use adds RETRIEVER and mcp_configs setup, and individual data sources commonly require their own credentials.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| GPT Researcher This agent | 52 · Major gaps | Library / SDKFree + model costs | ★ 31k | 26d ago | Python | Claude.ai · OpenAI API |
| MiroThinker | 27 · Major gaps | CLIFree + model costs | ★ 8.4k | 7mo ago | Python | OpenAI API · Claude API |
| webclaw Web Extraction Engine | 66 · Some gaps | CLIFreemium | ★ 2.4k | 2d ago | Rust | Codex · Claude Code · OpenAI API · Claude API |
| Bright Data MCP | 64 · Some gaps | MCP serverFreemium | ★ 2.7k | 1d ago | JavaScript | Claude Code · Claude.ai |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: The project explicitly states the backend has no built-in authentication, relying on operator deployment, which lowers least privilege; user confirmation mechanism is absent, hence 0; data flow transparency is partially present (e.g., source tracking), but not detailed; sensitive data handling is mentioned (e.g., API keys), but not in-depth; dependency security has CVE comments (e.g., brotli), but not comprehensive; external effects include web scraping and API calls, but not explicitly limited; rollback mechanism is absent; source attribution has source tracking, but not verified. Deductions: lack of user confirmation, rollback, and permission control relies on operator.
Evidence shows: README and pyproject.toml version consistent (0.14.7), but README license is MIT, pyproject.toml license is MIT, but LICENSE file is Apache-2.0, inconsistency; dependencies declared fully, but availability not verified; failure messages not detailed. Deductions: license inconsistency, failure handling not fully explained.
Evidence shows: Targets broad audience (individuals and organizations), supports multiple LLMs and search providers, diverse scenarios; capability boundaries are described (e.g., research tasks), but not explicitly limited; trigger precision is average, not detailed; environment fit includes Docker, local run. Deductions: trigger precision insufficient, capability boundaries not fully clear.
Evidence shows: Information architecture clear (README, docs links), install notes detailed, naming stable (version), examples and FAQ provided, known limitations have disclaimer, license file exists but version inconsistent, changelog absent, maintenance responsibility has author info. Deductions: license inconsistency, missing changelog.
Evidence shows: Output usability high (PDF, Word), marginal value obvious (automated research), cost-benefit stated (~$0.1/task). Deductions: cost data unverified, marginal value not quantified.
Evidence shows: Claims based on papers, but no specific citations; cross-source verification mentioned (aggregating multiple sources), but not detailed; fact-inference separation not explicit. Deductions: lack of specific citations, fact-inference separation unclear.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Backend has no built-in authentication; must add your own auth and network controls before exposing publicly.
- License inconsistency: README and pyproject.toml state MIT, but LICENSE file is Apache-2.0; verify actual license.
- Many dependencies; regularly audit for security vulnerabilities, especially those involved in web scraping and document processing.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
v3.7.0 Jev update and many bug fixes and improvements
Release notes excerpt
Smarter context, no embeddings required GPT Researcher now picks the context it sends to the LLM by usefulness, not similarity. Every passage scraped for a research question is scored by [Jev](https://typesafe.ai/blog/introducing-system-one-models-and-jev) on how useful it is for answering that question, and only the passages that help are kept. On a benchmark of 28 research tasks replayed on identical sources: <img width="3200" height="1800" alt="image-1790437831580" src="https://github.com/user-attachments/assets/c2a7b305-2e60-4709-ad9c-8af09e297f9f" /> …View on GitHub ↗ -
v3.6.1 Major fixes
Release notes excerpt
What's Changed * fix: restore main, add CI, and land 97 queued PRs by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2074 * fix(readme): restore broken star history chart by @Dessalines39394 in https://github.com/assafelovic/gpt-researcher/pull/2066 * docs: document scholarly retriever configuration by @pikaqiu2333 in https://github.com/assafelovic/gpt-researcher/pull/1863 * chore(deps): update python-pptx requirement from >=1.0.0 to >=1.0.2 by @dependabot[bot] in https://github.com/assafelovic/gpt-researcher/pull/1927 …View on GitHub ↗ -
Release notes excerpt
Introducing a super stable version with enhanced improvements across security, stability and performance. We're also introducing a collaboration with Langchain with the latest deep agents framework here - https://github.com/assafelovic/gpt-researcher/tree/main/deep_agents Thank you and welcome to all the new contributors! What's Changed * security: sanitize untrusted content, add SECURITY.md, pin brotli by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1820 …View on GitHub ↗