mcpField
🔎
🔎 GPT Researcher

🔎 GPT Researcher

本地服务
gptr.devAI 与智能体30.3k3 周前更新

关于 🔎 GPT Researcher

GPT Researcher 是一个开源的自主研究 Agent,可基于网络与本地文档生成带引用的研究报告,面向需要深入调研的个人和组织。它采用规划与执行 Agent 协作的方式,并支持递归式深度研究。

主要功能

  1. 01基于网络与本地文档生成研究报告
  2. 02带引用来源的多源信息汇总
  3. 03递归式深度研究与并行处理
  4. 04默认使用 Jev 进行上下文过滤
  5. 05支持 PDF、Word 等格式导出
  6. 06可通过 MCP 接入外部数据源

适用场景

  1. 01为某一主题生成带引用的详细研究报告
  2. 02基于本地文档进行研究与总结
  3. 03将深度研究能力接入 Claude 等 AI 助手

MCP 相关

GPT Researcher 可作为 MCP 客户端,通过 RETRIEVER 设置连接 GitHub 仓库、数据库或自定义 API 等数据源;其 MCP 服务已迁移至独立仓库 gptr-mcp,用于向 Claude 等客户端提供深度研究能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"gpt-researcher": {
"command": "npx",
"args": [
"-y",
"skills"
]
}
}
}
启动命令npx -y skills

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmskills

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🔎 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 会收集相关信息。随后,发布者会汇总所有发现,生成一份全面的报告。

README 配图

步骤:

  • 根据研究查询创建一个任务专用 Agent。
  • 生成一组问题,共同形成对任务的客观看法。
  • 使用爬虫 Agent 收集每个问题的相关信息。
  • 总结每项资源并追踪其来源。
  • 筛选并汇总摘要,形成最终研究报告。

教程

功能

  • 📝 利用网页和本地文档生成详细的研究报告。
  • 🖼️ 智能抓取并筛选报告图片。
  • 🍌 使用 Google Gemini(Nano Banana)生成 AI 内嵌图片,用于视觉说明。
  • 📜 生成超过 2,000 字的详细报告。
  • 🌐 汇总 20 多个来源,得出客观结论。
  • 🎯 使用 Jev 智能筛选上下文,默认无需 API 密钥或嵌入。
  • 🖥️ 提供轻量版(HTML/CSS/JS)和适用于生产环境的版本(NextJS + Tailwind)前端。
  • 🔍 支持 JavaScript 的网页抓取。
  • 📂 在整个研究过程中保留记忆和上下文。
  • 📄 将报告导出为 PDF、Word 和其他格式。

📖 文档

请参阅文档,了解:

  • 安装和设置指南
  • 配置和自定义选项
  • 操作示例
  • 完整的 API 参考

⚙️ 快速开始

安装
  1. 安装 Python 3.12 或更高版本。指南。

  2. 克隆项目并进入目录:

    git clone https://github.com/assafelovic/gpt-researcher.git
    cd gpt-researcher
    
  3. 通过导出 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}
    
  4. 安装依赖并启动服务:

    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

启用后,系统将:

  1. 分析研究上下文,找出适合可视化的内容
  2. 在研究阶段预先生成 2-3 张相关图像
  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.115TYPESAFE_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 工作流的调试和优化更加轻松。

启用追踪:

  1. 设置以下环境变量:
    export LANGCHAIN_TRACING_V2=true
    export LANGCHAIN_API_KEY=your_api_key
    export LANGCHAIN_PROJECT="gpt-researcher"
    
  2. 按照常规方式运行研究任务。所有基于 LangGraph 的 Agent 交互都会自动追踪,并在 LangSmith 控制面板中可视化。

🖥️ 前端应用

GPT-Researcher 现在提供了增强版前端,以改善用户体验并简化研究流程。前端提供:

  • 直观的界面,用于输入研究查询
  • 实时跟踪研究任务进度
  • 交互式展示研究结果
  • 可自定义设置,打造个性化研究体验

提供两种部署选项:

  1. 由 FastAPI 提供服务的轻量级静态前端
  2. 功能丰富的 NextJS 应用,支持高级功能

如需详细的设置说明和更多前端功能信息,请访问我们的文档页面。

🚀 贡献

我们非常欢迎大家贡献!如果你有兴趣,请查看贡献指南。

请查看我们的路线图页面;如果你有兴趣加入我们的使命,欢迎通过Discord 社区联系我们。 README 配图

✉️ 支持 / 联系我们

🛡 免责声明

本项目 GPT Researcher 是一款实验性应用,按“原样”提供,不附带任何明示或暗示的保证。我们依据 Apache 2 许可证分享代码,仅供学术用途。本文内容不构成学术建议,也不建议将其用于学术论文或研究论文。

我们对无偏研究的看法:

  1. GPT Researcher 的主要目标是减少错误和带有偏见的事实。如何实现?我们认为,抓取的网站越多,获取错误数据的可能性就越低。每次研究都会抓取多个网站,并选取出现频率最高的信息,因此这些信息全部错误的可能性极低。
  2. 我们的目标不是消除偏见,而是尽可能减少偏见。我们在此作为一个社区,共同探索人类与大模型互动的最有效方式。
  3. 在研究中,人们也往往会带有偏见,因为大多数人对自己研究的主题早已有了看法。此工具会抓取众多观点,并平等地阐述不同看法,而带有偏见的人可能从未读过这些观点。

星标历史图表

⬆️ 返回顶部

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。