GPT Researcher
Deep-research agent for turning web and local sources into cited reports.
Per-dimension scores and reasoning
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.
- 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.
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.
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 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.