关于 🔎 GPT Researcher
GPT Researcher 是一个开源的自主研究 Agent,可基于网络与本地文档生成带引用的研究报告,面向需要深入调研的个人和组织。它采用规划与执行 Agent 协作的方式,并支持递归式深度研究。
主要功能
- 01基于网络与本地文档生成研究报告
- 02带引用来源的多源信息汇总
- 03递归式深度研究与并行处理
- 04默认使用 Jev 进行上下文过滤
- 05支持 PDF、Word 等格式导出
- 06可通过 MCP 接入外部数据源
适用场景
- 01为某一主题生成带引用的详细研究报告
- 02基于本地文档进行研究与总结
- 03将深度研究能力接入 Claude 等 AI 助手
MCP 相关
GPT Researcher 可作为 MCP 客户端,通过 RETRIEVER 设置连接 GitHub 仓库、数据库或自定义 API 等数据源;其 MCP 服务已迁移至独立仓库 gptr-mcp,用于向 Claude 等客户端提供深度研究能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🔎 GPT Researcher
GPT Researcher 是首个开源深度研究 Agent,专为任何给定任务的网络和本地研究而设计。
该 Agent 可生成详尽、准确且公正的研究报告,并附有引用。GPT Researcher 提供一整套自定义选项,可创建量身定制、面向特定领域的研究 Agent。GPT Researcher 远超 RAG:规划与执行 Agent 会将每项任务拆解为研究问题,决策模型只保留回答这些问题真正有用的上下文,多 Agent工作流会协调专用 Agent,从规划到发布全程协作,而递归深度研究则会从广度和深度两个维度探索主题。研究以并行方式运行,因而速度快、稳定可靠,并能减少错误信息。
我们的使命是通过 AI 为个人和组织提供准确、公正、可靠的信息。
为什么选择 GPT Researcher?
- 人工研究要得出客观结论可能需要数周时间,并耗费大量资源。
- 使用过时信息训练的大模型可能产生幻觉,无法满足当前研究任务的需求。
- 当前大模型存在令牌限制,难以生成长篇研究报告。
- 现有服务的网络来源有限,容易导致错误信息和浅层结果。
- 选择性网络来源可能给研究任务带来偏见。
演示
安装为 Claude 技能
将 GPT Researcher 安装为 Claude 技能,扩展 Claude 的深度研究能力:
npx skills add assafelovic/gpt-researcher
安装后,Claude 可在对话中直接利用 GPT Researcher 的深度研究能力。
架构
核心思路是使用“规划” Agent 和“执行” Agent。规划 Agent 会生成研究问题,而执行 Agent 会收集相关信息。随后,发布者会汇总所有发现,生成一份全面的报告。
步骤:
- 根据研究查询创建一个任务专用 Agent。
- 生成一组问题,共同形成对任务的客观看法。
- 使用爬虫 Agent 收集每个问题的相关信息。
- 总结每项资源并追踪其来源。
- 筛选并汇总摘要,形成最终研究报告。
教程
功能
- 📝 利用网页和本地文档生成详细的研究报告。
- 🖼️ 智能抓取并筛选报告图片。
- 🍌 使用 Google Gemini(Nano Banana)生成 AI 内嵌图片,用于视觉说明。
- 📜 生成超过 2,000 字的详细报告。
- 🌐 汇总 20 多个来源,得出客观结论。
- 🎯 使用 Jev 智能筛选上下文,默认无需 API 密钥或嵌入。
- 🖥️ 提供轻量版(HTML/CSS/JS)和适用于生产环境的版本(NextJS + Tailwind)前端。
- 🔍 支持 JavaScript 的网页抓取。
- 📂 在整个研究过程中保留记忆和上下文。
- 📄 将报告导出为 PDF、Word 和其他格式。
📖 文档
请参阅文档,了解:
- 安装和设置指南
- 配置和自定义选项
- 操作示例
- 完整的 API 参考
⚙️ 快速开始
安装
-
安装 Python 3.12 或更高版本。指南。
-
克隆项目并进入目录:
git clone https://github.com/assafelovic/gpt-researcher.git cd gpt-researcher -
通过导出 API 密钥或将其存储在
.env文件中进行设置。export OPENAI_API_KEY={Your OpenAI API Key here} export TAVILY_API_KEY={Your Tavily API Key here}(可选)如需增强追踪和可观测性,也可以设置:
# export LANGCHAIN_TRACING_V2=true # export LANGCHAIN_API_KEY={Your LangChain API Key here}如需使用自定义的 OpenAI 兼容 API(例如本地模型或其他服务提供商),也可以设置:
export OPENAI_BASE_URL={Your custom API base URL here} -
安装依赖并启动服务:
pip install -r requirements.txt python -m uvicorn main:app --reload
访问 http://localhost:8000 即可开始使用。
有关其他设置方式(例如 Poetry 或虚拟环境),请参阅快速开始页面。
作为 PIP 包运行
pip install gpt-researcher
使用示例:
...
from gpt_researcher import GPTResearcher
query = "why is Nvidia stock going up?"
researcher = GPTResearcher(query=query)
# Conduct research on the given query
research_result = await researcher.conduct_research()
# Write the report
report = await researcher.write_report()
...
更多示例和配置,请参阅 PIP 文档页面。
🔧 MCP 客户端
GPT Researcher 支持 MCP 集成,可连接 GitHub 仓库、数据库和自定义 API 等专用数据源。这样便能在网页搜索之外,从这些数据源开展研究。
export RETRIEVER=tavily,mcp # Enable hybrid web + MCP research
from gpt_researcher import GPTResearcher
import asyncio
import os
async def mcp_research_example():
# Enable MCP with web search
os.environ["RETRIEVER"] = "tavily,mcp"
researcher = GPTResearcher(
query="What are the top open source web research agents?",
mcp_configs=[
{
"name": "github",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": os.getenv("GITHUB_TOKEN")}
}
]
)
research_result = await researcher.conduct_research()
report = await researcher.write_report()
return report
有关完整的 MCP 文档和高级示例,请参阅 MCP 集成指南。
🍌 行内图像生成
GPT Researcher 可以使用 Google 的 Gemini 模型(Nano Banana),自动生成并在研究报告中嵌入 AI 创建的插图。
# Enable in your .env file
IMAGE_GENERATION_ENABLED=true
GOOGLE_API_KEY=your_google_api_key
IMAGE_GENERATION_MODEL=models/gemini-2.5-flash-image
启用后,系统将:
- 分析研究上下文,找出适合可视化的内容
- 在研究阶段预先生成 2-3 张相关图像
- 在撰写报告时将图像嵌入正文
生成的图像采用与 GPT Researcher UI 相匹配的深色模式样式,呈现专业的信息图美学,并点缀青绿色。
请在我们的文档中了解图像生成的更多信息。
✨ 深度研究
GPT Researcher 现已支持深度研究——一种先进的递归研究工作流,可深入且广泛地探索主题。此功能采用树状探索模式,深入探究子主题,同时全面把握研究主题。
- 🌳 可配置深度和广度的树状探索
- ⚡️ 并发处理,提升速度
- 🤝 在各研究分支之间智能管理上下文
- ⏱️ 每次深度研究约需 5 分钟
- 💰 每次研究成本约为 $0.4(使用
o3-mini,推理力度设为 "high")
请在我们的文档中了解深度研究的更多信息。
🎯 使用 Jev 智能筛选上下文
每次研究都会抓取数十个页面,而每个页面中只有部分内容有助于回答问题。在任何内容传递给大模型之前,GPT Researcher 都会决定保留哪些段落。默认情况下,它使用 TypeSafe 提供的模型 Jev,该模型会评估每个段落对问题的实用性,而不是判断其文字或嵌入向量的相似度。
Jev 的上下文相关性比嵌入向量高 59%,成本相同(保留的段落中,相关内容占 73%,而嵌入向量为 46%)。我们在 28 项研究任务上对每种方案进行了基准测试,使用相同的已抓取来源进行回放,确保只有筛选器不同:
| 上下文筛选器 | 保留的相关段落 | 与嵌入向量正面对比 | 筛选时间 | 每份报告成本 | 需求 |
|---|---|---|---|---|---|
| Jev(默认) | 73% | 15 胜 · 10 平 · 3 负 | 1.7s | $0.115 | TYPESAFE_API_KEY |
| 关键词(备用方案) | 51% | 14 胜 · 8 平 · 6 负 | 0.02s | $0.116 | 无 |
| 嵌入向量 | 46% | — | 1.0s | $0.117 | 嵌入服务提供商 |
| 不筛选 | — | 13 胜 · 11 平 · 4 负 | — | $0.192 | 无 |
无论使用哪种筛选器,撰写报告都需要约 45s,因此一次运行的总耗时只会因筛选步骤而变化。在开放式问题上,不经筛选地写入所有页面内容能生成覆盖面最广的报告,但成本会高出 65%。
无需进行任何设置。 配置了 TYPESAFE_API_KEY 时会使用 Jev。未配置密钥或 Jev 调用失败时,GPT Researcher 会回退到关键词(BM25)排序,该方案在本地运行,无需 API 密钥、模型或嵌入向量。嵌入向量仍可作为一种选项使用。
export TYPESAFE_API_KEY=... # use Jev (the default when a key is set)
export CONTEXT_FILTER=auto # auto | jev | keyword | embeddings | none
请参阅上下文筛选器文档和完整基准测试,了解方法、注意事项以及如何复现。
使用 Docker 运行
步骤 1 - 安装 Docker
步骤 2 - 克隆 '.env.example' 文件,在克隆的文件中添加 API 密钥,并将文件保存为 '.env'
步骤 3 - 在 docker-compose 文件中,注释掉不想使用 Docker 运行的服务。
docker-compose up --build
如果不行,请尝试去掉连字符后运行:
docker compose up --build
步骤 4 - 默认情况下,如果你没有取消 docker-compose 文件中的任何注释,此流程将启动 2 个进程:
- 在 localhost:8000 上运行的 Python 服务
- 在 localhost:3000 上运行的 React 应用
在任意浏览器中访问 localhost:3000,尽情研究吧!
📄 本地文档研究
你可以指示 GPT Researcher 基于本地文档执行研究任务。目前支持的文件格式有:PDF、纯文本、CSV、Excel、Markdown、PowerPoint 和 Word 文档。
步骤 1:添加环境变量 DOC_PATH,指向文档所在的文件夹。
export DOC_PATH="./my-docs"
步骤 2:
- 如果你在 localhost:8000 上运行前端应用,只需在“Report Source”下拉选项中选择“My Documents”。
- 如果你使用 PIP 软件包运行 GPT Researcher,则在实例化
GPTResearcher类时,将report_source参数设为“local”。此处提供代码示例。
🤖 MCP 服务
我们的 MCP 服务已迁移至专用代码仓库:gptr-mcp。
GPT Researcher MCP Server 可让 Claude 等 AI 应用开展深度研究。虽然大模型应用可以通过 MCP 使用网页搜索工具,但 GPT Researcher MCP 能提供更深入、更可靠的研究结果。
功能:
- 为 AI 助手提供深度研究能力
- 通过优化上下文使用,提供更高质量的信息
- 为大模型提供更全面的结果和更强的推理能力
- 集成 Claude Desktop
如需详细的安装和使用说明,请访问官方代码仓库。
👪 多 Agent 助手
随着 AI 从提示词工程和 RAG 发展到多 Agent 系统,我们很高兴推出使用 LangGraph 和 AG2 构建的多 Agent 助手。
借助多 Agent 框架,研究流程可以利用多个具备专门技能的 Agent,在深度和质量上得到显著提升。本项目展示了一个 AI Agent 团队如何协同工作,针对给定主题开展研究,从规划到发布。
一次典型运行会生成一份 5-6 页的研究报告,支持 PDF、Docx 和 Markdown 等多种格式。
请在此处查看,或访问我们的 LangGraph 和 AG2 文档了解更多信息。
🔍 可观测性
GPT Researcher 支持 LangSmith,提供增强的追踪和可观测性,让复杂多 Agent 工作流的调试和优化更加轻松。
启用追踪:
- 设置以下环境变量:
export LANGCHAIN_TRACING_V2=true export LANGCHAIN_API_KEY=your_api_key export LANGCHAIN_PROJECT="gpt-researcher" - 按照常规方式运行研究任务。所有基于 LangGraph 的 Agent 交互都会自动追踪,并在 LangSmith 控制面板中可视化。
🖥️ 前端应用
GPT-Researcher 现在提供了增强版前端,以改善用户体验并简化研究流程。前端提供:
- 直观的界面,用于输入研究查询
- 实时跟踪研究任务进度
- 交互式展示研究结果
- 可自定义设置,打造个性化研究体验
提供两种部署选项:
- 由 FastAPI 提供服务的轻量级静态前端
- 功能丰富的 NextJS 应用,支持高级功能
如需详细的设置说明和更多前端功能信息,请访问我们的文档页面。
🚀 贡献
我们非常欢迎大家贡献!如果你有兴趣,请查看贡献指南。
请查看我们的路线图页面;如果你有兴趣加入我们的使命,欢迎通过Discord 社区联系我们。
✉️ 支持 / 联系我们
🛡 免责声明
本项目 GPT Researcher 是一款实验性应用,按“原样”提供,不附带任何明示或暗示的保证。我们依据 Apache 2 许可证分享代码,仅供学术用途。本文内容不构成学术建议,也不建议将其用于学术论文或研究论文。
我们对无偏研究的看法:
- GPT Researcher 的主要目标是减少错误和带有偏见的事实。如何实现?我们认为,抓取的网站越多,获取错误数据的可能性就越低。每次研究都会抓取多个网站,并选取出现频率最高的信息,因此这些信息全部错误的可能性极低。
- 我们的目标不是消除偏见,而是尽可能减少偏见。我们在此作为一个社区,共同探索人类与大模型互动的最有效方式。
- 在研究中,人们也往往会带有偏见,因为大多数人对自己研究的主题早已有了看法。此工具会抓取众多观点,并平等地阐述不同看法,而带有偏见的人可能从未读过这些观点。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。