FEATURED · 精选文章

GPT Researcher 入门指南:从架构原理到本地部署的完整实战

发布时间 / 2026/9/10 5:01:15
来源 / 创域科博编辑部
栏目 / 资讯中心
GPT Researcher 入门指南:从架构原理到本地部署的完整实战 GPT Researcher 入门指南从架构原理到本地部署的完整实战【免费下载链接】gpt-researcherAn autonomous agent that conducts deep research on any data using any LLM providers项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-researcherGPT Researcher 是一个基于任意 LLM 提供商的自主智能体用于对各类任务进行全面的在线研究最终产出详细、客观、有事实依据的研究报告。本指南聚焦 GPT Researcher 的入门链路先理解其 planner execution agents 的并行研究架构再完成环境准备、API Key 配置、依赖安装与 FastAPI 服务启动并深入源码验证每一步的底层实现帮助你快速跑通一次完整的研究任务。GPT Researcher 是什么GPT Researcher 是一个自主研究智能体设计目标是针对综合性在线研究类任务产出详细、客观、无偏见的研究报告并支持定制化配置聚焦相关资源、自定义大纲、以及定制写作风格等。它借鉴了学术界近期提出的 Plan-and-Solve先规划再求解与 RAG检索增强生成两篇论文的思路专门解决在线研究场景中普遍存在的速度、确定性与可靠性问题。通过并行化的智能体协作而非同步串行操作它在保证稳定性的同时显著提升了研究速度。从当前仓库源码看这一设计被落实为gpt_researcher/agent.py中的 GPTResearcher 类它是整个研究流程的总协调者具体的研究规划、网页检索、上下文管理、报告写作分别由 ResearchConductor、ContextManager、ReportGenerator 等组件承担形成了一条清晰的编排层 - 执行层分层结构。为什么要用 GPT Researcher原文档从五个角度说明了构建这类智能体的动机这些痛点至今仍是通用 LLM 应用于研究场景的核心障碍人工研究耗时过长要为一项研究任务形成客观结论人工往往需要数周时间去寻找正确的资料与信息。LLM 知识陈旧且易幻觉当前 LLM 的训练数据存在时效滞后且存在严重的幻觉风险几乎无法直接用于严肃的研究任务。输出长度受限当前 LLM 的 token 输出上限不足以支撑 2k 字以上的长篇研究报告。检索范围过窄类似 ChatGPT Web Plugin 的联网方案只考虑有限的资源和内容容易导致结论流于表面或带有偏见。资源选择偏差仅使用少数几个来源本身就会在研究结论中引入系统性偏差。GPT Researcher 通过多源聚合 并行执行 引用跟踪来系统性地缓解上述问题具体体现在后面的架构设计中。整体架构Planner 与 Execution Agents原文档给出了本项目的核心架构思想运行 planner规划者与 execution执行两类智能体planner 生成需要研究的问题execution agents 依据每个研究问题寻找最相关的信息最后 planner 过滤并聚合所有相关信息生成最终研究报告。文档还注明智能体使用 gpt-4o-mini 与 gpt-4o128K 上下文配合完成研究任务并且只在必要时才使用更大模型以优化成本。这一快模型打底、智能模型兜底的策略在当前仓库配置中得到保留和演进gpt_researcher/config/variables/default.py中默认 FAST_LLM 为openai:gpt-5.4-mini、SMART_LLM 与 STRATEGIC_LLM 均为openai:gpt-5.4其中 SMART_LLM 被特别注明支持 2k 词的长响应STRATEGIC_LLM 作为规划阶段使用的推理模型。详细执行流程原文档将研究流程拆解为如下四个具体步骤创建领域专属智能体根据研究查询或任务自动选择并创建领域专属的 agent。生成一组研究问题生成一组研究问题它们共同构成对任意给定任务的客观意见。触发爬虫智能体针对每个研究问题触发一个 crawler agent 抓取与任务相关的在线资源。总结与聚合对每个抓取到的资源基于相关信息进行总结并跟踪其来源最后过滤、聚合所有总结的来源生成最终研究报告。从源码看这套流程在 GPTResearcher.conduct_research 中得到了完整实现关键环节包括智能体选择当未显式传入agent与role时调用 choose_agent 让 smart LLM 根据查询返回{server: ..., agent_role_prompt: ...}结构优先用json_repair修复模型输出的残缺 JSON解析失败时还有正则提取、默认 agent 兜底等多级降级策略。研究执行交由 ResearchConductor.conduct_research 完成。它先通过 plan_research 进行一次初始检索并规划出子查询大纲再针对每个子查询并行执行搜索 - 抓取 - 相似内容筛选的完整链路。报告写作研究上下文收集完毕后ReportGenerator.write_report 基于context、agent_role_prompt、report_type、tone等参数生成最终报告。并行化是关键_get_context_by_web_search中所有子查询通过asyncio.gather并发执行见 researcher.py这正是原文档所说通过并行化智能体工作提升速度、替代同步操作的代码级印证。核心能力清单原文档列出 GPT Researcher 的主要特性这也是评估其适用场景时最直接的参考多类型报告生成可生成研究报告、大纲、资源列表与研究要点等不同形式的报告。长篇报告能力能够生成超过 2K 词的详细研究报告。多源聚合每次研究平均聚合 20 个网络来源以形成客观、有事实依据的结论。开箱即用的 Web 界面附带易于使用的 HTML/CSS/JS 网页界面。JS 支持的网页抓取可抓取支持 JavaScript 渲染的网页内容。来源跟踪持续跟踪并记录已访问、已使用的网络来源上下文。多格式导出可将研究报告导出为 PDF、Word 等格式。关于多类型报告仓库中定义了完整的枚举集合。在 gpt_researcher/utils/enum.py 中ReportType包含research_report标准综合报告、resource_report资源清单、outline_report大纲、custom_report自定义、detailed_report深度详细报告、subtopic_report子主题报告与deep深度研究模式共七种类型。Tone枚举则定义了从 Objective、Formal、Analytical 到 Narrative、Humorous 等 15 种写作风格见 enum.py对应定制化选项中的写作风格维度。环境准备与获取项目前置要求原文档要求Python 3.11 或更高版本。此外运行 GPT Researcher 还需要一个 LLM 提供商的 API Key文档推荐 OpenAI GPT也支持 Ollama 等本地模型或其他兼容 OpenAI 的提供商详细支持列表可参考 supported-llms.md一个搜索引擎 API Key文档推荐 Tavily Search API也可换成 duckduckgo、google、bing、searchapi、serper、searx 等参见 search-engines.md。克隆项目$ git clone https://github.com/assafelovic/gpt-researcher.git $ cd gpt-researcher如需使用本仓库可直接git clone https://gitcode.com/GitHub_Trending/gp/gpt-researcher.git获取副本。配置 API Keys原文档提供了两种设置 API Key 的方式直接导出环境变量或将变量写入.env文件。方式一export 导出环境变量临时Linux / Windows 临时会话可直接使用 exportexport OPENAI_API_KEY{Your OpenAI API Key here} export TAVILY_API_KEY{Your Tavily API Key here}如果使用自定义的 OpenAI 兼容 API例如本地模型或其他提供商还可以额外设置基础 URLexport OPENAI_BASE_URL{Your custom API base URL here}方式二写入 .env 文件持久化在gpt-researcher目录下创建.env文件直接填入变量名与值不带export前缀OPENAI_API_KEY你的OpenAI密钥 TAVILY_API_KEY你的Tavily密钥项目在启动阶段会自动加载该文件main.py顶部调用load_dotenv()见 main.pycli.py入口处同样调用load_dotenv()见 cli.py保证两种运行方式都能读取.env配置。更换 LLM 与搜索引擎LLM 提供商文档推荐 OpenAI GPT但任何其他 LLM 模型包括开源模型均可使用。更换方式与支持的模型清单详见 llms.md。搜索引擎文档推荐 Tavily Search API也可通过修改配置中的RETRIEVER切换为duckduckgo、google、bing、searchapi、serper、searx等并补充对应的环境变量 API Key。仓库默认配置即RETRIEVER: tavily见 default.py且 get_retrievers 会在初始化时依据该配置装配具体的检索器实例。快速开始Quickstart安装依赖$ pip install -r requirements.txt以 FastAPI 启动服务$ uvicorn main:app --reload启动后在任意浏览器访问http://localhost:8000即可开始研究。从源码看FastAPI 应用定义在 backend/server/app.pymain.py在__main__分支中会以host0.0.0.0, port8000启动 uvicorn见 main.py因此直接运行python main.py也能达到同样效果。前端页面由frontend/目录下的 HTML/CSS/JS 实现服务端则通过 WebSocket 向前端实时推送研究进度相关实现见 backend/server/websocket_manager.py。使用虚拟环境或 Poetry方式一Python venv创建虚拟环境环境名可自定例如envpython -m venv env激活虚拟环境# Windows PowerShell/CMD .\env\Scripts\activate安装依赖python -m pip install -r requirements.txt停用虚拟环境deactivate方式二PoetryPoetry 会读取项目的pyproject.toml来确定依赖及其版本创建隔离的虚拟环境避免与系统全局包冲突。安装依赖并创建虚拟环境对应 Poetry 版本约~1.7.1poetry install进入 Poetry 管理的虚拟环境 shellpoetry shell在虚拟环境中运行应用python -m uvicorn main:app --reload然后访问 http://localhost:8000 开始研究。用 CLI 直接生成研究报告除 Web 界面外仓库还提供命令行入口 cli.py适合脚本化或批量研究场景。基本用法python cli.py query --report_type report_type --tone tone --query_domains foo.com,bar.com常用参数一览取自 cli.py 的 argparse 定义参数说明可选值 / 默认值query待研究的查询位置参数必填--report_type报告类型research_reportSummary约 2 分钟、detailed_reportDetailed约 5 分钟、resource_report、outline_report、custom_report、subtopic_report、deep深度研究必填--tone报告写作风格objective默认、formal、analytical、persuasive、informative、explanatory、descriptive、critical、comparative、speculative、reflective、narrative、humorous、optimistic、pessimistic--encoding输出文件编码默认utf-8--query_domains逗号分隔的限定搜索域名默认空--report_source研究信息来源web默认、local、hybrid、azure、langchain_documents、langchain_vectorstore、static--no-pdf跳过 PDF 生成仅输出 Markdown 与 DOCX开关标志--no-docx跳过 DOCX 生成仅输出 Markdown 与 PDF开关标志CLI 的输出逻辑同样值得注意报告生成后会用 fast LLM 根据查询与报告预览生成一个简短标题最多 20 字符经文件名安全清洗后作为文件名并在 Markdown 文件头部附加 YAML frontmatter其中包含task_id、title、query、report_type、report_source、tone、query_domains、created_at、sources_count、total_cost_usd等元数据字段见 cli.py便于后续检索与溯源。默认输出到outputs/目录同一文件名的 Markdown、PDF、DOCX 会按相同 stem 分组存放。深入理解研究主流程源码解析为帮助你在部署后进一步排查问题或定制行为这里给出研究主流程的关键代码路径相对仓库根目录入口与总编排GPTResearcher 类 ——conduct_research()负责研究阶段write_report()、write_introduction()、write_report_conclusion()负责写作阶段quick_search()提供跳过完整流程的快速检索。研究执行核心ResearchConductor.conduct_research —— 根据report_source分支处理 web / local / hybrid / azure / langchain 等不同来源_get_context_by_web_search实现规划子查询 - 并发抓取 - 上下文组合。智能体自动选择choose_agent —— 调用 smart LLM 返回 agent 名称与角色提示词具备 json_repair / 正则提取 / 默认兜底三级容错。报告写作ReportGenerator.write_report —— 传入上下文、风格、提示词家族等参数生成报告当没有任何检索内容时会主动放弃写作而不是编造见 writer.py 的空上下文保护逻辑。报告类型与风格枚举enum.py ——ReportType、ReportSource、Tone等全部取值定义。默认配置default.py —— 所有可调参数及其默认值检索器、LLM 选择、token 限制、MCP 策略、深度研究参数、图片生成等。延伸阅读getting-started.md —— 官方快速上手文档包含本文对应的完整安装步骤。llms.md —— 更换与配置各类 LLM 提供商的详细说明。search-engines.md —— 不同搜索引擎retriever的接入方式。config.md —— 全局配置项详解。deep_research.md —— 深度研究模式Deep Research的进阶用法。how-to-choose.md —— 如何在 Web 界面与 pip 包等不同使用方式之间选择。【免费下载链接】gpt-researcherAn autonomous agent that conducts deep research on any data using any LLM providers项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-researcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻