deep_research_from_scratch
deep_research_from_scratch 是一个由 LangChain 团队打造的开源项目,旨在手把手教你从零构建一个具备“深度研究”能力的 AI 智能体系统。面对 OpenAI、Anthropic 等巨头推出的深度研究产品,该项目通过透明的代码实现,让用户能够自主搭建类似的分析引擎。
它主要解决了复杂调研任务中策略不确定的难题。传统的自动化脚本难以应对开放式的探索需求,而 deep_research_from_scratch 利用智能体(Agent)技术,将研究过程拆解为“明确范围、执行调研、撰写报告”三个灵活阶段。系统能根据中间搜索结果动态调整后续策略,从而生成内容详实、来源可靠的综合研究报告。
这款工具特别适合开发者、AI 研究人员以及希望深入理解大模型应用架构的技术爱好者使用。它不仅是一个可运行的原型,更是一套完整的教学教程,包含五个逐步深入的笔记本,引导用户亲手实现从用户意图澄清到最终报告生成的全流程。
其核心技术亮点在于高度的可配置性与模块化设计。用户可以自由替换底层大模型(支持 OpenAI、Anthropic 等)、集成自定义搜索工具(如 Tavily),甚至接入 MCP 服务器。此外,项目基于 LangGraph 构建,充分利用了 Python 3.11+ 的特性,为构建复杂的多智能体工作流提供了清晰、可扩展的代码范本。
使用场景
某科技咨询公司的分析师需要在 24 小时内为一家初创企业输出一份关于“全球固态电池供应链最新格局”的深度调研报告,以支持其下一轮融资决策。
没有 deep_research_from_scratch 时
- 信息搜集碎片化:分析师需手动在多个搜索引擎和数据库中反复切换,难以系统性地覆盖学术论文、行业新闻及专利数据,极易遗漏关键隐性信息。
- 策略调整滞后:面对模糊的初始需求,无法动态调整搜索深度或方向,往往等到撰写阶段才发现核心数据缺失,导致返工重来。
- 报告产出低效:从整理零散笔记到构建逻辑严密的最终报告,大量时间耗费在格式调整和人工综述上,难以在短时间内交付高质量成果。
- 模型依赖固化:若想更换更擅长推理的大模型或定制专属搜索工具,需要重构整套代码流程,技术门槛高且灵活性差。
使用 deep_research_from_scratch 后
- 全源自动聚合:deep_research_from_scratch 自主调用 Tavily 等搜索工具,并行抓取多源上下文,自动构建包含技术细节与市场数据的完整知识图谱。
- 动态研究闭环:内置的智能体遵循“明确范围 - 执行研究 - 撰写报告”三步法,能根据中间结果实时修正搜索策略,确保研究方向始终精准对齐目标。
- 一键生成研报:系统自动将结构化简报转化为逻辑连贯的深度文章,分析师仅需专注于最终观点的校验,交付效率提升数倍。
- 架构灵活可控:支持通过配置文件无缝切换 OpenAI 或 Anthropic 等不同大模型,并可轻松接入自定义 MCP 服务器,完美适配公司私有数据源。
deep_research_from_scratch 将原本耗时数天的手工调研压缩为自动化智能流程,让专业团队能专注于高价值的战略洞察而非繁琐的信息搬运。
运行环境要求
- macOS
- Linux
- Windows
未说明
未说明

快速开始
🧱 从零开始的深度研究
深度研究已成为最受欢迎的智能体应用之一。OpenAI、Anthropic、Perplexity 和 Google 都推出了深度研究产品,这些产品能够利用多种来源的上下文信息生成全面的报告。此外,还有许多开源的实现可供使用。我们构建了一个简单且可配置的开源深度研究员,允许用户引入自己的模型、搜索工具和 MCP 服务器。在本仓库中,我们将从头开始构建一个深度研究员!以下是我们将要构建的主要模块图:

🚀 快速入门
前置条件
- Node.js 和 npx(第 3 个笔记本中的 MCP 服务器需要):
# 安装 Node.js(包含 npx)
# 在 macOS 上使用 Homebrew:
brew install node
# 在 Ubuntu/Debian 上:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证安装:
node --version
npx --version
- 确保您使用的是 Python 3.11 或更高版本。
- 此版本是与 LangGraph 最佳兼容所必需的。
python3 --version
- uv 包管理器
curl -LsSf https://astral.sh/uv/install.sh | sh
# 更新 PATH 以使用新的 uv 版本
export PATH="/Users/$USER/.local/bin:$PATH"
安装
- 克隆仓库:
git clone https://github.com/langchain-ai/deep_research_from_scratch
cd deep_research_from_scratch
- 安装软件包及依赖项(此操作会自动创建并管理虚拟环境):
uv sync
- 在项目根目录下创建
.env文件,并填入您的 API 密钥:
# 创建 .env 文件
touch .env
将您的 API 密钥添加到 .env 文件中:
# 用于具有外部搜索功能的研究智能体
TAVILY_API_KEY=your_tavily_api_key_here
# 用于模型调用
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# 可选:用于评估和追踪
LANGSMITH_API_KEY=your_langsmith_api_key_here
LANGSMITH_TRACING=true
LANGSMITH_PROJECT=deep_research_from_scratch
- 使用 uv 运行笔记本或代码:
# 直接运行 Jupyter 笔记本
uv run jupyter notebook
# 或者如果您更喜欢激活虚拟环境
source .venv/bin/activate # Windows 上:.venv\Scripts\activate
jupyter notebook
背景
研究是一项开放性的任务;很难提前确定回答用户请求的最佳策略。不同的请求可能需要不同的研究策略以及不同程度的搜索深度。请考虑以下请求。
智能体非常适合进行研究,因为它们能够灵活地应用不同的策略,并利用中间结果来指导探索过程。开源深度研究系统采用智能体,通过三步流程来进行研究:
- 界定范围 – 明确研究范围
- 研究 – 执行研究
- 撰写 – 生成最终报告
📝 组织结构
本仓库包含 5 个教程笔记本,将从零开始构建一个深度研究系统:
📚 教程笔记本
1. 用户澄清与简报生成(notebooks/1_scoping.ipynb)
目的:明确研究范围,并将用户输入转化为结构化的研究简报。
关键概念:
- 用户澄清:通过结构化输出判断是否需要用户补充更多上下文。
- 简报生成:将对话内容转化为详细的研究问题。
- LangGraph 命令:利用命令系统进行流程控制和状态更新。
- 结构化输出:使用 Pydantic 模型实现可靠决策。
实现亮点:
- 两步工作流:澄清 → 简报生成。
- 使用结构化输出模型(
ClarifyWithUser、ResearchQuestion)以防止幻觉。 - 根据澄清需求进行条件路由。
- 基于日期的提示词,支持上下文敏感的研究。
学习要点:状态管理、结构化输出模式、条件路由。
2. 带有自定义工具的研究代理(notebooks/2_research_agent.ipynb)
目的:构建一个使用外部搜索工具的迭代式研究代理。
关键概念:
- 代理架构:LLM 决策节点 + 工具执行节点模式。
- 顺序工具执行:可靠且同步的工具执行机制。
- 搜索集成:Tavily 搜索结合内容摘要。
- 工具执行:基于 ReAct 风格的代理循环,支持工具调用。
实现亮点:
- 同步工具执行,确保可靠性和简洁性。
- 内容摘要用于压缩搜索结果。
- 迭代式研究循环,配合条件路由。
- 丰富的提示工程设计,支持全面的研究任务。
学习要点:代理模式、工具集成、搜索优化、研究工作流设计。
3. 带有 MCP 的研究代理(notebooks/3_research_agent_mcp.ipynb)
目的:将模型上下文协议(MCP)服务器作为研究工具集成进来。
关键概念:
- 模型上下文协议:AI 工具访问的标准化协议。
- MCP 架构:通过 stdio/HTTP 实现客户端-服务器通信。
- LangChain MCP 适配器:无缝将 MCP 服务器集成为 LangChain 工具。
- 本地与远程 MCP:理解不同的传输机制。
实现亮点:
- 使用
MultiServerMCPClient管理 MCP 服务器。 - 基于配置的服务器设置(如文件系统示例)。
- 丰富的格式化设计,用于展示工具输出。
- 符合 MCP 协议要求的异步工具执行(无需嵌套事件循环)。
学习要点:MCP 集成、客户端-服务器架构、基于协议的工具接入。
4. 研究主管(notebooks/4_research_supervisor.ipynb)
目的:通过多智能体协作完成复杂的研究任务。
关键概念:
- 主管模式:协调代理 + 工作代理。
- 并行研究:利用并行工具调用,同时开展多个独立主题的研究。
- 研究委托:通过结构化工具进行任务分配。
- 上下文隔离:为不同研究主题维护独立的上下文窗口。
实现亮点:
- 采用双节点主管模式(
supervisor+supervisor_tools)。 - 使用
asyncio.gather()实现真正的并行执行。 - 通过结构化工具(
ConductResearch、ResearchComplete)进行任务委派。 - 增强型提示词,包含并行研究指令。
- 详尽记录研究结果的聚合模式。
学习要点:多智能体模式、并行处理、研究协调、异步编排。
5. 完整的多智能体研究系统(notebooks/5_full_agent.ipynb)
目的:构建一个整合所有组件的端到端研究系统。
关键概念:
- 三阶段架构:范围界定 → 研究执行 → 报告撰写。
- 系统集成:将范围界定、多智能体研究和报告生成有机结合。
- 状态管理:跨子图的复杂状态流转。
- 端到端工作流:从用户输入到最终研究报告。
实现亮点:
- 完整的工作流集成,确保状态的正确过渡。
- 包含输出模式的主管与研究人员子图。
- 最终报告生成及研究结果综合。
- 基于线程的对话管理,用于澄清环节。
学习要点:系统架构、子图组合、端到端工作流。
🎯 主要学习成果
- 结构化输出:利用 Pydantic 模型实现可靠的 AI 决策。
- 异步编排:合理运用异步模式,在并行协调与同步简洁之间取得平衡。
- 代理模式:ReAct 循环、主管模式、多智能体协作。
- 搜索集成:外部 API、MCP 服务器、内容处理。
- 工作流设计:LangGraph 模式适用于复杂的多步骤流程。
- 状态管理:跨子图和节点的复杂状态流转。
- 协议集成:MCP 服务器及其他工具生态系统的接入。
每个笔记本都在前一节的基础上逐步深入,最终形成一套可投入生产的深度研究系统,能够智能地界定范围并协调执行,从而高效应对复杂、多维度的研究需求。
相似工具推荐
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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。