本文档解释了如何在本地深度研究员系统中配置 LangGraph 的结构和行为。它涵盖了图的架构、配置选项以及如何自定义其行为。有关项目中使用的环境变量的信息,请参阅环境变量。
本地深度研究员使用 LangGraph 来协调一个多步骤的研究过程,该过程在一个迭代循环中生成搜索查询、执行网络搜索、总结发现并识别知识空白。图结构定义了这些组件如何交互以及数据如何在系统中流动。
来源:src/ollama_deep_researcher/graph.py282-297
LangGraph 被构建为一个 StateGraph,它通过多个相互连接的节点管理研究工作流。每个节点在研究过程中执行特定功能。
| 节点 | 功能 | 描述 |
|---|---|---|
generate_query | 生成搜索查询 | 根据研究主题创建优化的搜索查询 |
web_research | 执行网络搜索 | 使用配置的搜索 API 执行网络搜索 |
summarize_sources | 总结结果 | 创建/更新研究发现的运行总结 |
reflect_on_summary | 识别差距 | 识别知识空白并生成后续查询 |
finalize_summary | 格式化最终输出 | 准备带有引用的最终研究输出 |
这些节点之间的路由由 route_research 函数控制,该函数根据配置的最大研究迭代次数决定是继续研究循环还是结束总结。
来源:src/ollama_deep_researcher/graph.py16-230 src/ollama_deep_researcher/graph.py262-280
LangGraph 使用 Configuration 类进行配置,该类在运行时传递给图。此配置控制图的各种行为
来源:src/ollama_deep_researcher/graph.py10 src/ollama_deep_researcher/graph.py39 src/ollama_deep_researcher/graph.py91 src/ollama_deep_researcher/graph.py149 src/ollama_deep_researcher/graph.py193 src/ollama_deep_researcher/graph.py276
该配置提供了多种自定义选项
LLM 提供商设置:
llm_provider:“ollama”或“lmstudio”之间的选择local_llm:要使用的模型名称(例如,“mistral:7b”)ollama_base_url:Ollama API 的基本 URLlmstudio_base_url:LM Studio API 的基本 URL搜索设置:
search_api:要使用的搜索提供商(tavily、perplexity、duckduckgo 或 searxng)fetch_full_page:是否检索网页的完整内容研究控制:
max_web_research_loops:最大研究迭代次数strip_thinking_tokens:是否从 LLM 输出中移除思考标记来源:src/ollama_deep_researcher/graph.py39-174
该图使用 SummaryState 类来维护整个研究过程中的研究状态。该状态包括
来源:src/ollama_deep_researcher/graph.py12 src/ollama_deep_researcher/graph.py283
在项目层面,LangGraph 在 langgraph.json 文件中注册,该文件指定了
此配置允许 LangGraph Studio 定位并运行该图,提供用于监控研究过程的可视化界面。
配置在每个节点执行时应用
RunnableConfig 的 config 参数Configuration.from_runnable_config(config) 提取配置例如,在 generate_query 节点中,配置决定了使用哪个 LLM 提供商
来源:src/ollama_deep_researcher/graph.py39-55 src/ollama_deep_researcher/graph.py91-110 src/ollama_deep_researcher/graph.py149-163 src/ollama_deep_researcher/graph.py193-209 src/ollama_deep_researcher/graph.py276-280
要自定义 LangGraph 配置
图的配置模式在图编译时定义
这会告诉 LangGraph 预期哪些配置参数并允许验证配置值。
来源:src/ollama_deep_researcher/graph.py283
本地深度研究员系统中的 LangGraph 配置提供了一种灵活的方式来定制研究过程。通过调整 LLM 提供商、搜索 API 和最大研究循环等参数,您可以在保持核心工作流结构的同时,根据特定的研究需求定制系统。