菜单

LangGraph 配置

相关源文件

本文档解释了如何在本地深度研究员系统中配置 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

关键配置参数

该配置提供了多种自定义选项

  1. LLM 提供商设置:

    • llm_provider:“ollama”或“lmstudio”之间的选择
    • local_llm:要使用的模型名称(例如,“mistral:7b”)
    • ollama_base_url:Ollama API 的基本 URL
    • lmstudio_base_url:LM Studio API 的基本 URL
  2. 搜索设置:

    • search_api:要使用的搜索提供商(tavily、perplexity、duckduckgo 或 searxng)
    • fetch_full_page:是否检索网页的完整内容
  3. 研究控制:

    • 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 定位并运行该图,提供用于监控研究过程的可视化界面。

来源:langgraph.json1-11

配置如何应用

配置在每个节点执行时应用

  1. 每个节点函数接收一个类型为 RunnableConfigconfig 参数
  2. 节点使用 Configuration.from_runnable_config(config) 提取配置
  3. 配置值用于自定义节点的行为

例如,在 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 配置

  1. 图初始化期间:在初始化图时传递配置值
  2. 通过环境变量:设置加载到配置中的环境变量
  3. 在 LangGraph Studio 中:通过 LangGraph Studio UI 提供配置值

图的配置模式在图编译时定义

这会告诉 LangGraph 预期哪些配置参数并允许验证配置值。

来源:src/ollama_deep_researcher/graph.py283

结论

本地深度研究员系统中的 LangGraph 配置提供了一种灵活的方式来定制研究过程。通过调整 LLM 提供商、搜索 API 和最大研究循环等参数,您可以在保持核心工作流结构的同时,根据特定的研究需求定制系统。