构建智能的基石:
LangGraph 实战与生态集成

汇报人:刘晓枫
时间:2025.7.17

1. LangGraph 的应用

1.1 什么是 LangGraph?它能做什么?

  • 一句话定义:LangGraph 是一个用于构建强大、有状态、可循环的 LLM 应用的框架。它不是替代 LangChain,而是其能力的延伸。
  • 核心功能:它将多步骤的复杂任务流程,构建成一个“图”(Graph)。图中的每个节点代表一个计算步骤(如调用大模型、执行工具),边则代表流程的走向。
  • 解决的关键问题:传统的链式(Chain)结构是线性的,而 LangGraph 允许创建带有循环的流程,这对于实现 Agent(智能体)的“思考-行动-观察”迭代循环至关重要。

1. LangGraph 的应用

1.2 如何使用 LangGraph?

构建一个 LangGraph 应用,主要涉及以下几个核心概念,无需深入代码即可理解:

  • 状态 (State):定义一个贯穿整个流程的“记忆体”,用于在不同节点间传递和更新信息。
  • 节点 (Nodes):流程中的每一个“动作单元”。可以是一个 LLM 调用、一个工具执行,或是一段普通的业务逻辑。
  • 边 (Edges):连接节点的“流程线”。可以是固定的,也可以是条件性的(根据节点输出决定走向)。
  • 核心引擎 (LLM) & 工具 (Tools):负责推理决策和与外部世界交互。

它的使用门槛:入门容易,精通有深度。简单的流程可以快速搭建;复杂的 Agent 则需要更精细的设计。

1. LangGraph 的应用

1.3 LangGraph 的优势是什么?

  • 白盒化与可调试性:最大的优势之一。由于每一步都是一个独立的节点,我们可以清晰地追踪数据流转和程序状态,轻松定位问题所在,而不是面对一个难以捉摸的“黑盒”。
  • 高度的灵活性与控制力:可以自由设计复杂的逻辑,包括循环、分支和回溯,实现精细化的流程控制。
  • 持久化与可中断:支持保存当前执行状态,并在之后从断点处恢复执行,非常适合长耗时任务。

2. LangGraph 与 MCP (模型上下文协议)

2.1 什么是MCP?

MCP(模型上下文协议)是一套用于标准化 AI 工具和服务的开放协议,可以简单理解为 AI 领域的 OpenAPI/Swagger 规范

  • 核心价值:通过统一的格式定义工具,实现不同框架(如LangGraph)间的无缝调用与解耦
  • 关键实现:通过 MCP Server 可将任何函数或工作流打包成一个独立的、可远程调用的网络服务。

2.2 LangGraph 如何封装为 MCP 工具?

将一个完整的 LangGraph 工作流变成一个标准的 MCP 工具,过程非常直接:

  • 核心封装:将 LangGraph 工作流的调用逻辑(invoke)封装在一个标准的 Python 函数中。
  • 声明为工具:在该函数上方加上一个简单的装饰器,如 @mcp.tool(),即可将其声明为一个 MCP 工具。
  • 部署优化
    • 异步改造:为提高服务性能,需将同步工作流改造为异步模式。
    • 拆分初始化与调用:将耗时的初始化操作放在服务启动时执行,MCP 工具本身只负责轻量的调用。

2. LangGraph 与 MCP

2.3 LangGraph 如何接入并使用 MCP 工具?

反过来,在 LangGraph 内部调用一个已经存在的 MCP 工具也非常方便:

  • LangChain 官方提供了相应的集成库。
  • 只需提供 MCP Server 的服务地址(URL),就可以像调用本地函数一样,轻松地在 LangGraph 的节点中调用远端的任何 MCP 工具。

2.4 如何高效测试 MCP 工具?

  • 无需编写复杂脚本,使用MCP Inspector工具 (需要node环境:powershell运行 npx @modelcontextprotocol/inspector)。
  • 这是一个可视化界面,可连接到 MCP Server,自动列出所有工具,并直接在界面上输入参数进行测试,非常直观、高效。

3. LangGraph 与 HTTP

3.1 LangGraph 如何封装为 HTTP 接口?

除了 MCP,将 LangGraph 工作流封装成一个标准的 HTTP 接口也是常见的做法。以 FastAPI 框架为例,只需创建一个 API 路由,在处理函数中调用工作流并返回结果即可。

3.2 与封装为 MCP 有什么差异?

特性封装为 MCP封装为 HTTP
核心理念暴露一种“能力”或“服务”暴露一个特定的“功能入口”
发现机制支持工具的自动发现和元数据描述需要调用方预先知道接口地址
适用场景构建可互操作的 Agent 和工具生态简单的、点对点的服务集成

4. LangGraph 接入 Dify

4.1 方式一:通过 MCP Agent 节点接入

  • 如何操作:在 Dify 中添加“Agent”节点,配置好 MCP Server 地址。
  • 调用方式:可由 LLM 根据 Prompt 自行决策调用,也可通过提示词强制调用。

4.2 方式二:通过 HTTP 请求节点接入

  • 如何操作:在 Dify 中添加“HTTP 请求”节点。
  • 配置:直接配置封装好的 HTTP 接口的 URL、请求方法和参数等。

4. LangGraph 接入 Dify

4.3 两种接入方式的异同与选择

  • HTTP 节点:直接、高效、稳定。适用于流程固定的场景。
  • MCP Agent 节点:智能、灵活。适用于需要大模型根据上下文动态决策的复杂场景。

4.4 有了 Dify,为什么还需要 LangGraph?

它们是互补的。我们用 LangGraph 构建一个强大的、具有复杂内部逻辑的“积木块”(如 ReAct Agent),然后将这个“积木块”通过 MCP 或 HTTP 接入 Dify,在 Dify 的画布上与其他能力一起,搭建成一个完整的应用。

5. 我的实践与沉淀

5.1 实践一:代码理解与注释工作流

构建了一个融合本地知识库、RAG、ReAct 等技术的 LangGraph 工作流,用于理解代码并自动生成注释。该工作流已完成技术验证,为团队积累了宝贵经验。

工作流结构示意图:

工作流结构图1

5. 我的实践与沉淀

5.2 实践二:通用型 ReAct Agent

将 LangGraph 重构为一个通用的、具备“思考-行动-观察”迭代的 ReAct 策略的 Agent。该 Agent 已通过 HTTP 接口接入 Dify,展现了 LangGraph 作为复杂逻辑核心的强大能力。

工作流结构示意图:

工作流结构图2

5. 我的实践与沉淀

5.3 经验沉淀与避坑指南

  • 在上述探索过程中,遇到并解决了一些问题,例如模型调用、向量数据库构建、LangGraph使用、MCP等。
  • 这些经验和“踩过的坑”已经系统性地总结并分享在语雀中。
  • 查找路径: 算法团队(AgenticTools) → 分享记录 → 新人双周报 → 校招 → 实习 → 刘晓枫 → 避坑
  • 文档链接: 点击此处直接访问 https://quicktron.yuque.com/mkx9l1/xdu8pp/nux39i2vvswkz50q
  • 欢迎大家查阅交流,共同进步,避免重复投入时间。

谢谢!

汇报人:刘晓枫
时间:2025.7.17