agents-deep-research
agents-deep-research 是一款基于 OpenAI Agents SDK 构建的智能深度研究助手,旨在自动化完成复杂课题的深入调研与报告撰写。它解决了传统搜索工具信息碎片化、难以生成系统化长篇内容的问题,能够自主迭代地挖掘知识盲区,最终输出结构严谨、引用详实的研究成果。
该工具特别适合研究人员、分析师、开发者及需要快速获取高质量行业洞察的专业人士使用。无论是撰写千字以内的简报,还是二十页以上的深度专著,它都能灵活应对。其核心亮点在于独特的双模式架构:轻量级的“迭代研究者”适合快速出稿;而强大的“深度研究者”则采用多智能体协作机制,先规划大纲,再并行调用多个子代理分章节攻关,通过“发现缺口 - 选择工具 - 执行搜索 - 综合总结”的闭环不断精进内容。此外,它拥有极佳的兼容性,不仅支持 OpenAI、Anthropic、Gemini 等主流大模型,也能连接本地部署模型(如 Ollama),并允许用户轻松扩展自定义工具,是实现全自动、无干预深度研究的得力伙伴。
使用场景
某科技咨询公司的分析师需要在 48 小时内交付一份关于“全球固态电池供应链与关键技术瓶颈”的深度行业报告,以支持客户的投资决策。
没有 agents-deep-research 时
- 信息搜集碎片化:分析师需手动在数十个网页、论文库和新闻源间切换,难以系统性识别知识盲区,容易遗漏关键数据。
- 逻辑整合耗时久:从杂乱的信息中提炼观点并构建报告大纲需耗费大量脑力,撰写初稿往往占据 80% 的时间,导致深度分析不足。
- 内容深度受限:受限于个人精力,很难对每个技术细分领域(如电解质材料、制造工艺)进行多轮迭代挖掘,报告流于表面。
- 协作与追溯困难:多人协作时信息来源不透明,难以追溯具体数据的出处,验证事实准确性成本极高。
使用 agents-deep-research 后
- 自动化闭环调研:agents-deep-research 的“知识缺口代理”自动识别盲区,并调度搜索与爬虫工具并行填补,确保信息覆盖无死角。
- 结构化大纲先行:DeepResearcher 模式先生成严谨的报告大纲,再并发运行多个迭代研究实例填充各章节,将构思与写作效率提升数倍。
- 多层级深度洞察:通过多轮“观察 - 思考 - 行动”循环,工具能深入挖掘技术参数与产业链细节,产出媲美专家水平的深度内容。
- 全程可追溯输出:生成的报告自带详细引用来源,且支持通过 OpenAI 追踪功能复盘每一步推理过程,极大降低了事实核查成本。
agents-deep-research 将原本需要团队数天协作的深度调研工作,转化为单人即可在数小时内完成的高质量自动化流程,重新定义了行业研究的效率标准。
运行环境要求
- Linux
- macOS
- Windows
- 非必需
- 主要依赖云端 API (OpenAI, Anthropic, Gemini 等) 或本地模型服务 (如 Ollama, LM Studio)
- 若运行本地模型,GPU 需求取决于具体模型大小,文中未指定具体显存要求
未说明 (建议根据并发任务量配置,文中提到可能同时处理 50-60 个网页抓取任务)

快速开始
使用 OpenAI Agents SDK 的智能体式深度研究
一款基于 OpenAI Agents SDK 构建的强大深度研究助手,旨在对任何给定主题进行深入研究。兼容 Azure OpenAI、OpenAI、Anthropic、Gemini、DeepSeek、Perplexity、OpenRouter、Hugging Face 以及 Ollama 等本地模型。
它采用多智能体架构,以迭代方式工作,不断深化对主题的理解,并生成越来越详细的见解,最终汇集成完整的报告。
该工具设计为可扩展,支持使用自定义工具以及任何符合 OpenAI API 规范的第三方大语言模型。LLM 和工具调用可以选择性地通过 OpenAI 的追踪功能进行跟踪。
相关背景介绍 在此。
概述
本包提供两种研究模式:
IterativeResearcher:针对某个主题或子主题持续循环进行研究并撰写报告。- 推荐使用此模式,且适用于较短的报告(最多 5 页 / 1,000 字)。
- 用户可以指定研究深度、时间限制、报告长度和格式要求等约束条件。
DeepResearcher:执行更为全面和结构化的流程,首先制定报告大纲,然后为报告的每个部分并行运行多个IterativeResearcher实例。- 适用于较长的报告(例如 20 页以上)。
DeepResearcher 的工作流程如下:
- 接收研究主题,进行初步研究以形成报告大纲/计划。
- 针对报告计划中的每个部分,同时运行多个
IterativeResearcher实例:- 识别当前研究中的知识空白;
- 有针对性地选择合适的工具来填补这些空白;
- 通过专业智能体执行研究任务;
- 将研究成果综合成一个完整的章节。
- 将所有章节整合成一份连贯且结构清晰的报告。
值得注意的是,深度研究智能体在开始时不会提出澄清性问题,因此可以以自动化方式使用。
示例输出
深度研究示例(使用 DeepResearcher):
简单研究示例(使用 IterativeResearcher):
- Quantera 市场规模 - 1,001 字
- 英国政府政策 - 1,077 字
流程图
IterativeResearcher 流程
flowchart LR
A["用户输入<br>- 查询内容<br>- 最大迭代次数<br>- 最大时间<br>- 输出指令"] --> B
subgraph "深度研究循环"
B["知识空白智能体"] -->|"当前空白<br>及目标"| C["工具选择智能体"]
C -->|"工具查询<br>(并行执行)"| D["工具智能体<br>- 网络搜索<br>- 爬虫<br>- 自定义工具"]
D -->|"新发现"| E["观察智能体"]
E --> |"对发现及研究策略的思考"| B
end
E --> F["撰写智能体<br>(最终输出<br>附参考文献)"]
DeepResearcher 流程
flowchart LR
A["用户输入<br>- 查询内容<br>- 最大迭代次数<br>- 最大时间"] --> B["规划智能体"]
B -->|"报告计划<br>(章节及背景信息)"| D2
subgraph 并行["并行章节研究"]
D1["IterativeResearcher<br>(第1章)"]
D2["IterativeResearcher<br>(第2章)"]
D3["IterativeResearcher<br>(第3章)"]
end
D1 -->|"第1章<br>草稿"| E["校对智能体"]
D2 -->|"第2章<br>草稿"| E
D3 -->|"第3章<br>草稿"| E
E --> F["最终<br>研究报告"]
安装
使用 pip 安装:
pip install deep-researcher
或者克隆 GitHub 仓库:
git clone https://github.com/qx-labs/agents-deep-research.git
cd agents-deep-research
pip install -r requirements.txt
然后创建包含 API 密钥的 .env 文件:
cp .env.example .env
编辑 .env 文件,根据需要添加 OpenAI、Serper 等设置,例如:
OPENAI_API_KEY=<your_key>
SEARCH_PROVIDER=serper # 或设置为 openai
SERPER_API_KEY=<your_key>
使用方法
Python 模块
# 可参阅 /examples 文件夹获取完整示例
import asyncio
from deep_researcher import IterativeResearcher, DeepResearcher
# 对于简单查询,运行 IterativeResearcher
researcher = IterativeResearcher(max_iterations=5, max_time_minutes=5)
query = "请提供关于量子计算的全面概述"
report = asyncio.run(
researcher.run(query, output_length="5 页")
)
# 对于更长且结构化程度更高的报告,运行 DeepResearcher
researcher = DeepResearcher(max_iterations=3, max_time_minutes=5)
report = asyncio.run(
researcher.run(query)
)
print(report)
运行时自定义 LLM 配置
在 Python 中运行深度研究时,您可以在运行时设置自定义的 LLM 配置变量,从而在代码中动态切换模型选择。
import asyncio
from deep_researcher import DeepResearcher, LLMConfig
# 这些配置选项将优先于环境变量
llm_config = LLMConfig(
search_provider="serper",
reasoning_model_provider="openai",
reasoning_model="o3-mini",
main_model_provider="openai",
main_model="gpt-4o",
fast_model_provider="openai",
fast_model="gpt-4o-mini"
)
researcher = DeepResearcher(max_iterations=3, max_time_minutes=5, config=llm_config)
report = asyncio.run(
researcher.run(query)
)
命令行
从命令行运行研究助理。
如果你通过 pip 安装的:
deep-researcher --mode deep --query "提供量子计算的全面概述" --max-iterations 3 --max-time 10 --verbose
或者如果你克隆了 GitHub 仓库:
python -m deep_researcher.main --mode deep --query "提供量子计算的全面概述" --max-iterations 3 --max-time 10 --verbose
参数说明:
--query:研究主题或问题(如果不提供,系统会提示您输入)--mode:如果设置为deep,则使用 DeepResearcher;如果设置为simple,则使用 IterativeResearcher(默认值为deep)--max-iterations:最大研究迭代次数(默认值为 5)--max-time:研究循环在自动退出以生成最终报告之前的最大时间(单位:分钟;默认值为 10)--output-length:报告期望的长度(默认值为“5页”)--output-instructions:对最终报告的额外格式化说明
布尔标志:
--verbose:将研究进度打印到控制台--tracing:在 OpenAI 平台上跟踪工作流(仅适用于 OpenAI 模型)
兼容模型
Deep Researcher 设计用于运行任何符合 OpenAI API 规范的模型,并通过调整 base_url 参数来适配相应的模型提供商。兼容的提供商包括 Azure OpenAI、OpenAI、Anthropic、Gemini、DeepSeek、Hugging Face 和 OpenRouter,以及通过 Ollama 和 LM Studio 运行的本地托管模型。
然而,为了确保 Deep Researcher 能够顺利运行且不出现错误,它依赖于在工具调用方面表现优异的模型。
- 如果使用 OpenAI 模型,我们发现
gpt-4o-mini在工具选择方面的效果与o3-mini不相上下,甚至更好(这与 此排行榜 的结果一致)。鉴于其速度和成本优势,我们建议在工作流中大多数代理使用gpt-4o-mini,而将o3-mini用于规划任务,gpt-4o则用于最终撰写。 - 如果使用 Gemini 模型,请注意只有 Gemini 2.5 Pro(当前为
gemini-2.5-pro-preview-03-25)表现良好。Gemini 2.0 Flash(gemini-2.0-flash)虽然被列为支持工具调用,但经常无法成功调用任何工具。
架构
Deep Research Assistant 由以下组件构成:
核心组件
- IterativeResearcher:协调单个主题或子主题的迭代式研究流程
- DeepResearcher:协调更深入、更广泛的流程,包括初始报告大纲、并行调用多个
IterativeResearch实例,以及最后的校对步骤 - LLMConfig:管理与语言模型的交互,以便根据需要随时更换模型
代理系统
- 知识缺口代理:分析当前研究状态,识别知识上的空白
- 工具选择代理:确定用于填补特定知识缺口的工具
- 工具代理:专门执行特定研究任务的代理(可扩展以添加自定义工具):
- 网络搜索代理
- 网站爬虫代理
- 撰写代理:将研究发现整合成连贯的报告
研究工具
- 网络搜索:通过 SERP 查询查找相关信息
- 我们的实现默认使用 Serper 来运行 Google 搜索,这需要将 API 密钥设置到
SERPER_API_KEY环境变量中。 - 您可以通过将环境变量
SEARCH_PROVIDER设置为openai,将其替换为 OpenAI 的原生网络搜索工具。
- 我们的实现默认使用 Serper 来运行 Google 搜索,这需要将 API 密钥设置到
- 网站爬虫:从给定网站的页面中提取详细内容
实现自定义工具代理
工具代理是专门使用一个或多个工具来执行特定任务的代理(例如网络搜索、从 API 获取并解释数据等)。要实现自定义工具代理:
- 在
deep_researcher/tools文件夹中创建代理将使用的任何工具 - 在
deep_researcher/agents/tool_agents文件夹中创建调用该工具的新工具代理 - 将工具代理的定义添加到
deep_researcher/agents/tool_agents/__init__.py中的init_tool_agents函数中 - 更新
deep_researcher/agents/tool_selector_agent.py的系统提示,加入新代理的名称和描述,以便 ToolSelectorAgent 能够识别它的存在
配置自定义 LLM
理论上,本仓库与任何遵循 OpenAI API 规范的 LLM 都兼容。这包括 DeepSeek 以及通过 OpenRouter 提供的模型。然而,这些模型需要与 OpenAI API 规范中的 结构化输出 兼容(即能够设置 response_format: {type: "json_schema", ...})。
LLM 的配置和管理在 deep_researcher/llm_config.py 文件中进行。
跟踪监控
Deep Research Assistant 集成了 OpenAI 的跟踪监控系统。每次研究会话都会生成一个跟踪 ID,可用于通过 OpenAI 平台实时监控执行流程和代理之间的交互。
观察与局限性
速率限制
DeepResearcher会并行执行大量搜索和 API 调用(在任何给定时刻,它可能正在抓取 50–60 个不同的网页)。因此,您可能会遇到 OpenAI、Gemini、Anthropic 等模型提供商的速率限制,尤其是在使用较低或免费层级时。- 如果遇到此类错误,您可以改用消耗较少 API 调用的
IterativeResearcher。
输出长度
LLM 对于严格遵循输出长度指导并不擅长。通常会出现以下两个问题:
- LLM 不擅长计数。在给出长度指示时,最好提供模型在其训练数据中熟悉的参考标准(如“一条推文的长度”、“几段文字”、“一本书的长度”),而不是具体的字数。
- 尽管许多模型的输出 token 限制非常大,但很难让它们每次回复生成超过 1–2 千字的内容。有一些方法可以生成更长的输出,例如 这种方法。
我们为 IterativeResearcher 添加了 output_length 参数,以便用户更好地控制输出长度,但请务必考虑到上述局限性。
待办事项:
- 为不同模型提供商添加单元测试
- 添加针对不同模型的示例实现
- 增加与其他搜索引擎提供商的兼容性(如 SearXNG、Bing、Tavily、DuckDuckGo 等)
- 添加缓存功能(如 Redis),以避免重复抓取网页或重复调用
- 添加更多专业化的研究工具(如维基百科、arXiv、数据分析等)
- 添加 PDF 解析器
- 添加本地文件集成 / RAG 功能
作者
由 Jai Juneja 在 QX Labs 创建。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
