
local-deep-researcher
本地跑通搜索到报告,隐私数据不出门
local-deep-researcher 是一个完全本地运行的网络研究与报告写作助手,基于 Python 开发。它解决的核心问题是:在使用大模型做深度研究时,用户往往需要将查询和资料发送到云端服务,存在隐私泄露和依赖外部 API 的风险。该项目将整个研究流程——从问题拆解、多轮网络搜索、网页内容抓取,到信息整合与报告生成——全部放在本地执行,配合本地部署的大语言模型(如通过 Ollama)即可完成。它支持自动生成搜索关键词、迭代式深入检索、对来源进行摘要与引用,并最终输出结构化的研究报告。用户只需给出一个研究主题,系统就能自主规划搜索路径、收集证据并撰写带参考来源的文档。对于注重数据隐私、希望离线使用 AI 研究能力的研究人员、分析师和开发者来说,这是一个开箱即用的方案。
项目数据
使用教程
环境要求
- Python 3.11(uvx 启动命令指定 --python 3.11)
- 本地大模型服务:Ollama 或 LMStudio,且已拉取所需模型
- 搜索工具 API Key(如 Tavily 的 TAVILY_API_KEY)
- 可选:Docker,用于以容器方式运行
安装与启动步骤
-
1克隆仓库
把项目代码拉到本地并进入项目目录,后续所有命令都在该目录下执行。
git clone https://github.com/langchain-ai/local-deep-researcher.git cd local-deep-researcher -
2复制环境变量文件
把示例配置复制成 .env,运行时会通过 python-dotenv 自动加载(langgraph.json 指向该 env 文件)。
cp .env.example .env -
3编辑 .env 配置
按需修改模型选择、搜索工具等环境变量,例如 SEARCH_API、TAVILY_API_KEY、LLM_PROVIDER、OLLAMA_BASE_URL、LOCAL_LLM。
-
4安装 uv
安装 uv 包管理器,用于以隔离环境一键启动 LangGraph 开发服务器。
curl -LsSf https://astral.sh/uv/install.sh | sh -
5启动 LangGraph Studio
用 uvx 拉取 langgraph-cli 并以本项目为可编辑依赖启动开发服务,默认端口 2024。
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.11 langgraph dev -
6可选:pip 安装依赖
不想用 uv 时,可用 pip 把项目装成可编辑包,并安装 langgraph-cli。
pip install -e . pip install -U "langgraph-cli[inmem]" -
7可选:Docker 运行
构建镜像后运行容器,需单独启动 Ollama 并正确设置 OLLAMA_BASE_URL。
docker build -t local-deep-researcher . docker run --rm -it -p 2024:2024 -e SEARCH_API="tavily" -e TAVILY_API_KEY="tvly-xxxxxxxx" -e LLM_PROVIDER=ollama -e OLLAMA_BASE_URL="http://host.docker.internal:11434/" -e LOCAL_LLM="llama3.2" local-deep-researcher
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
SEARCH_API | 是 | 选择使用的网络搜索工具 | tavily |
TAVILY_API_KEY | 是 | Tavily 搜索服务的 API Key | tvly-xxxxxxxx |
LLM_PROVIDER | 是 | 指定大模型提供方 | ollama |
OLLAMA_BASE_URL | 是 | Ollama 服务地址,Docker 下需指向宿主机 | http://host.docker.internal:11434/ |
LOCAL_LLM | 否 | 指定要使用的 Ollama 模型名称 | llama3.2 |
use_tool_calling | 否 | 改用工具调用替代 JSON 模式,gpt-oss 等模型必须开启 | true |
如何确认成功
终端出现 Opening Studio 日志后,浏览器访问 https://smith.langchain.com/studio/thread?baseUrl=http://127.0.0.1:2024 能看到 Studio 界面即成功。
常见问题
Q:日志提示已打开浏览器,但容器里没弹出窗口?
A:这是正常现象,容器内不会启动浏览器。请手动访问 Studio 链接,并把 baseUrl 换成正确 IP,如 http://127.0.0.1:2024。
Q:使用 gpt-oss 模型时报错怎么办?
A:gpt-oss 在 Ollama 不支持 JSON 模式,需在配置中开启 use_tool_calling,改用工具调用方式运行。
Q:Docker 容器连不上本地 Ollama?
A:Dockerfile 不含 Ollama,需单独运行 Ollama,并把 OLLAMA_BASE_URL 设为 http://host.docker.internal:11434/ 指向宿主机。
Q:docker run 时提示找不到搜索或模型配置?
A:需在命令中用 -e 传入 SEARCH_API、TAVILY_API_KEY、LLM_PROVIDER、OLLAMA_BASE_URL、LOCAL_LLM 等环境变量,或改用 .env 文件配置后本地运行。
注意事项
- Dockerfile 只把 LangGraph Studio 作为服务运行,不包含 Ollama 依赖服务,必须单独运行 Ollama 并配置 OLLAMA_BASE_URL。
- 环境变量在启动时由 python-dotenv 自动从 .env 读取,因为 langgraph.json 指向了该 env 文件。
- 不支持 JSON 模式的模型需切换到 use_tool_calling 工具调用模式,例如 gpt-oss。
- Web 研究流程需要搜索工具 API Key,用 Tavily 时填写 TAVILY_API_KEY。
核心亮点
- 全流程本地化,查询与资料不离开本机,隐私安全
- 支持多轮迭代搜索与自动关键词生成,研究深度可调
- 基于 LangGraph 构建,流程模块化,便于替换模型或搜索源
不足之处
- 依赖本地大模型质量,小模型生成报告的结构和准确性有限
- 网络搜索仍依赖外部搜索引擎 API(如 Tavily、DuckDuckGo),并非完全离线
- 配置本地模型和搜索密钥有一定门槛,对新手不够友好
适用场景
- 个人研究者对敏感主题做深度调研,不希望数据上传云端
- 企业内部做竞品或技术调研,要求资料不出内网
- 开发者学习 AI Agent 工作流,本地调试多步搜索与报告生成
替代项目
GPT-Researcher、storm、AutoGen
项目介绍
上一篇:SuperMew
下一篇:langconnect
同类项目推荐
firecrawl
开源
网页抓取像喝水一样简单,开发者省下整周加班
The context API to search, scrape, and interact with the web at scale.
contoso-chat
开源
一键跑通 Azure RAG 应用,从代码到评估部署全流程
This sample has the full End2End process of creating RAG application with Prompty an···
graphify
开源
整个代码库画成一张图,找问题一眼定位
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable k···
qiaomu-youtube-ai-podcast
开源
一站式索引AI播客,快速找到有文字稿和总结的节目
AI 播客索引:整理 AI 播客、中文简介、Transcript 状态和总结入口 | Curated AI podcast ···