local-deep-researcher
local-deep-researcher 是一款完全在本地运行的深度网络研究与报告撰写助手。它旨在解决用户在调研过程中面临的信息碎片化、隐私泄露风险以及过度依赖云端大模型的问题。通过模拟人类研究者的思维路径,它能针对给定主题自动生成搜索查询、汇总结果、反思知识盲区并发起新一轮搜索,经过多轮迭代后,最终输出一份包含完整来源引用的 Markdown 格式研究报告。
这款工具特别适合注重数据隐私的开发者、学术研究人员以及希望搭建私有化知识库的技术爱好者使用。其核心亮点在于“完全本地化”架构,支持无缝对接 Ollama 或 LMStudio 托管的任何开源大语言模型(如 DeepSeek R1、Llama 3.2 等),确保所有数据处理均在用户设备完成,无需上传云端。此外,它具备独特的“反思 - 迭代”机制,能够自主发现信息缺口并动态调整搜索策略,而非简单堆砌搜索结果。在配置上,它既默认支持无需 API 密钥的 DuckDuckGo 搜索,也灵活兼容 SearXNG、Tavily 等专业检索服务,让用户在保护隐私的同时,享受高效、透明的深度研究体验。
使用场景
某独立开发者正在为一款新的开源项目撰写技术选型报告,需要深入调研当前主流的本地大模型推理框架及其性能表现。
没有 local-deep-researcher 时
- 信息搜集碎片化:需要在多个搜索引擎间反复切换,手动筛选大量无关广告和低质量博客,耗时极长。
- 深度分析缺失:难以自动发现知识盲区,往往只停留在表面参数对比,无法深入挖掘架构差异或社区隐性评价。
- 隐私与成本顾虑:使用在线 AI 助手整理资料时,担心敏感的技术构思泄露,且高频调用付费 API 导致预算超支。
- 报告整理繁琐:收集到的链接和摘要散落在不同标签页,手动汇总成带引用的 Markdown 文档极易出错且格式混乱。
使用 local-deep-researcher 后
- 全自动闭环调研:只需输入主题,local-deep-researcher 即可自动生成搜索词、抓取结果并总结,无需人工干预浏览过程。
- 智能迭代补全:工具能主动反思总结中的知识缺口,自动发起新一轮针对性搜索,确保技术选型的深度和全面性。
- 完全本地化运行:结合 Ollama 或 LMStudio 部署本地模型,所有数据在本地处理,既保护了研发隐私又节省了 API 费用。
- 一键生成规范报告:调研结束后直接输出包含完整来源引用的 Markdown 报告,开发者可直接将其用于项目文档或技术分享。
local-deep-researcher 将原本需要数小时的人工调研与整理工作,转化为一个安全、自主且深度的本地自动化流程,极大提升了技术决策的效率与质量。
运行环境要求
- macOS
- Windows
未说明 (依赖用户自行选择的本地 LLM 模型及 Ollama/LMStudio 的运行环境)
未说明 (取决于所选本地大语言模型的显存/内存需求)

快速开始
本地深度研究员
本地深度研究员是一个完全本地化的网络研究助手,它可以使用由 Ollama 或 LMStudio 托管的任何大语言模型。只需提供一个主题,它就会生成网络搜索查询、收集搜索结果、总结这些结果,并基于总结反思以发现知识空白,进而生成新的搜索查询来填补这些空白,如此循环往复,直至达到用户设定的次数。最后,它会向用户提供一份包含所有引用来源的 Markdown 格式总结。

简短总结视频:
🔥 更新
- 2025年8月6日:新增对工具调用和 gpt-oss 的支持。
⚠️ 警告(2025年8月6日):
gpt-oss模型在 Ollama 中不支持 JSON 模式。请在配置中选择use_tool_calling来使用工具调用功能,而非 JSON 模式。
📺 视频教程
想亲眼见证它的运行,还是自己动手搭建?请查看以下实用视频教程:
- 使用 R1 的本地深度研究员概览 - 加载并测试 DeepSeek R1 蒸馏模型。
- 从零开始构建本地深度研究员 - 介绍其构建过程。
🚀 快速入门
克隆仓库:
git clone https://github.com/langchain-ai/local-deep-researcher.git
cd local-deep-researcher
然后编辑 .env 文件,根据您的需求自定义环境变量。这些环境变量控制模型选择、搜索工具及其他配置设置。运行应用程序时,这些值将通过 python-dotenv 自动加载(因为 langgraph.json 指向“env”文件)。
cp .env.example .env
使用 Ollama 选择本地模型
在 这里 下载适用于 Mac 的 Ollama 应用程序。
从 Ollama 拉取本地大语言模型。例如 deepseek-r1:8b:
ollama pull deepseek-r1:8b
- 您还可以选择性地更新
.env文件,添加以下 Ollama 配置设置。
- 如果设置了这些值,它们将优先于
configuration.py中Configuration类的默认值。
LLM_PROVIDER=ollama
OLLAMA_BASE_URL="http://localhost:11434" # Ollama 服务端点,默认为 `http://localhost:11434`
LOCAL_LLM=model # 要使用的模型,默认为 `llama3.2`,若未设置则使用此默认值
使用 LMStudio 选择本地模型
从 这里 下载并安装 LMStudio。
在 LMStudio 中:
- 下载并加载您偏好的模型(如 qwen_qwq-32b)
- 切换到“本地服务器”选项卡
- 启动兼容 OpenAI API 的服务器
- 记下服务器 URL(默认:http://localhost:1234/v1)
您还可以选择性地更新
.env文件,添加以下 LMStudio 配置设置。
- 如果设置了这些值,它们将优先于
configuration.py中Configuration类的默认值。
LLM_PROVIDER=lmstudio
LOCAL_LLM=qwen_qwq-32b # 使用与 LMStudio 中显示的模型名称完全一致的名称
LMSTUDIO_BASE_URL=http://localhost:1234/v1
选择搜索工具
默认情况下,它会使用无需 API 密钥的 DuckDuckGo 进行网络搜索。但您也可以通过在环境文件中添加 API 密钥来使用 SearXNG、Tavily 或 Perplexity。您可以选择性地更新 .env 文件,添加以下搜索工具配置及 API 密钥。如果设置了这些值,它们将优先于 configuration.py 中 Configuration 类的默认值。
SEARCH_API=xxx # 要使用的搜索 API,例如 `duckduckgo`(默认)
TAVILY_API_KEY=xxx # 要使用的 Tavily API 密钥
PERPLEXITY_API_KEY=xxx # 要使用的 Perplexity API 密钥
MAX_WEB_RESEARCH_LOOPS=xxx # 最大研究循环次数,默认为 `3`
FETCH_FULL_PAGE=xxx # 是否获取完整页面内容(仅限 DuckDuckGo),默认为 `false`
使用 LangGraph Studio 运行
Mac
- (推荐)创建虚拟环境:
python -m venv .venv
source .venv/bin/activate
- 启动 LangGraph 服务器:
# 安装 uv 包管理器
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.11 langgraph dev
Windows
- (推荐)创建虚拟环境:
- 安装
Python 3.11(并在安装过程中将其添加到 PATH)。 - 重启终端以确保 Python 可用,然后创建并激活虚拟环境:
python -m venv .venv
.venv\Scripts\Activate.ps1
- 启动 LangGraph 服务器:
# 安装依赖
pip install -e .
pip install -U "langgraph-cli[inmem]"
# 启动 LangGraph 服务器
langgraph dev
使用 LangGraph Studio 界面
当您启动 LangGraph 服务器时,应该会看到以下输出,并且 Studio 将在您的浏览器中打开:
准备就绪!
LangGraph Studio Web UI:https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
通过上述 URL 打开 LangGraph Studio Web UI。在“配置”选项卡中,您可以直接设置各种助手配置。请注意,配置值的优先级顺序如下:
1. 环境变量(最高优先级)
2. LangGraph UI 配置
3. Configuration 类中的默认值(最低优先级)
为助手提供一个研究主题,您就可以直观地看到它的整个流程!
关于模型兼容性的说明
在选择本地大语言模型时,请确保其能够生成结构化的 JSON 输出。然而,某些模型可能难以满足这一要求,此时助手会启用后备机制来处理这种情况。例如,DeepSeek R1 (7B) 和 DeepSeek R1 (1.5B) 模型就难以生成所需的 JSON 输出,助手会自动切换到后备模式进行处理。
浏览器兼容性说明
访问 LangGraph Studio UI 时:
- 建议使用 Firefox 以获得最佳体验
- Safari 用户可能会因混合内容(HTTPS/HTTP)而遇到安全警告
- 如果遇到问题,请尝试:
- 使用 Firefox 或其他浏览器
- 禁用广告拦截扩展程序
- 检查浏览器控制台以获取具体的错误信息
工作原理
Local Deep Researcher 的灵感来源于 IterDRAG。该方法会将一个问题分解为多个子问题,分别为每个子问题检索文档、回答子问题,然后基于回答结果再检索第二个子问题的相关文档。我们的实现与此类似:
- 给定用户提供的主题,使用本地 LLM(通过 Ollama 或 LMStudio)生成网络搜索查询
- 利用搜索引擎或工具查找相关资料
- 使用 LLM 对与用户研究主题相关的网络搜索结果进行总结
- 随后,LLM 会对总结内容进行反思,识别知识空白
- 生成新的搜索查询以填补这些知识空白
- 重复上述过程,每次都会用网络搜索的新信息更新总结内容
- 整个流程可配置迭代次数(请参阅“configuration”选项卡)
输出
图的输出是一个包含研究摘要的 Markdown 文件,并附有引用来源的标注。在研究过程中收集的所有资料都会保存到图的状态中。您可以在 LangGraph Studio 中查看这些资料:

最终的摘要也会保存到图的状态中:

部署选项
部署此图的方式有多种 途径。有关使用 LangGraph 部署的详细步骤,请参阅 LangChain Academy 的 第 6 模块。
TypeScript 实现
该项目的 TypeScript 版本(不含 Perplexity 搜索)可在以下地址找到: https://github.com/PacoVK/ollama-deep-researcher-ts
作为 Docker 容器运行
随附的 Dockerfile 只会运行带有 local-deep-researcher 服务的 LangChain Studio,但并未将 Ollama 作为依赖服务包含在内。您需要单独运行 Ollama,并配置 OLLAMA_BASE_URL 环境变量。此外,您还可以通过设置 LOCAL_LLM 环境变量来指定要使用的 Ollama 模型。
克隆仓库并构建镜像:
$ docker build -t local-deep-researcher .
运行容器:
$ docker run --rm -it -p 2024:2024 \
-e SEARCH_API="tavily" \
-e TAVILY_API_KEY="tvly-***YOUR_KEY_HERE***" \
-e LLM_PROVIDER=ollama \
-e OLLAMA_BASE_URL="http://host.docker.internal:11434/" \
-e LOCAL_LLM="llama3.2" \
local-deep-researcher
注意:您会看到如下日志信息:
2025-02-10T13:45:04.784915Z [info ] 🎨 Opening Studio in your browser... [browser_opener] api_variant=local_dev message=🎨 Opening Studio in your browser...
URL: https://smith.langchain.com/studio/?baseUrl=http://0.0.0.0:2024
…但浏览器并不会从容器中自动打开。
相反,请使用正确的 baseUrl IP 地址访问以下链接:https://smith.langchain.com/studio/thread?baseUrl=http://127.0.0.1:2024
常见问题
相似工具推荐
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)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。