跳转到内容

LangChain和LangGraph

💡

LangChain是大模型应用开发的主流框架,提供LLM调用、工具集成、RAG、Agent等能力。LangGraph是LangChain的图编排框架,用有向图控制Agent的执行流程。本文档以Python代码为主,覆盖核心API和实战模式。


一、LangChain 基础

1.1 环境安装

1.2 LLM调用(最基础)

1.3 Prompt Template

1.4 LCEL链式调用(核心模式)

📌

LCEL(LangChain Expression Language):用 | 管道符串联组件,prompt | llm | output_parser 形成处理链。


二、Function Tools(工具定义与调用)

📌

Tool是Agent调用外部能力的接口。LangChain支持多种定义方式:@tool装饰器、StructuredTool、Pydantic类。

2.1 @tool 装饰器(最简单)

2.2 StructuredTool(自定义参数)

2.3 绑定工具到LLM


三、MCP(Model Context Protocol)

📌

MCP是Anthropic提出的开放协议,标准化了AI模型与外部工具/数据源的连接方式。LangChain通过 langchain-mcp-adapters 集成MCP Server。

3.1 连接MCP Server

3.2 MCP vs 传统Tool对比

对比

传统 @tool

MCP

定义方式

代码内@tool装饰器

独立的MCP Server进程

复用性

耦合在项目代码中

多项目共享,跨语言跨平台

工具发现

手动写tools列表

Client自动发现Server提供的所有工具

适用

快速原型、简单项目

企业级应用、多Agent共享、标准化接口


四、RAG(检索增强生成)

4.1 RAG完整流程

📌

RAG = 检索(Retrieve) + 增强(Augment) + 生成(Generate):将知识库文档切分→向量化→存入向量数据库→查询时检索相关文档→拼接进Prompt→LLM生成答案。

4.2 多种检索策略


五、Agent 搭建

5.1 create_react_agent(推荐方式)

📌

ReAct Agent是LangChain最经典的Agent模式:Thought(思考) → Action(调用工具) → Observation(观察结果) → 循环直到得出最终答案。

5.2 Agent + 记忆(Memory)

5.3 Agent + RAG(工具增强)


六、LangGraph 图编排

📌

LangGraph有向图(StateGraph)精确控制Agent的执行流程。相比简单ReAct,LangGraph支持条件分支、循环、并行、人工审核、子图嵌套等高级控制。

6.1 StateGraph 基础

6.2 条件分支(核心能力)

6.3 人工审批节点(Human-in-the-Loop)

6.4 并行执行(Send)

6.5 子图嵌套


七、架构模式对比

模式

适用场景

LangChain/LangGraph实现

简单链

固定步骤:prompt→llm→output

LCEL管道符 |

Router

根据意图分发到不同处理链

RunnableBranch / conditional_edges

ReAct Agent

LLM自主决定何时调用工具

create_react_agent()

RAG

基于知识库的问答

retriever | format | prompt | llm

多Agent协作

多个专业Agent分工合作

LangGraph子图 + Send并行

Human-in-Loop

需要人工审核/确认的流程

interrupt() + Command(resume=...)


学习路线建议:

  1. 入门:LLM调用 → Prompt Template → LCEL链式调用
  2. 工具:@tool定义 → bind_tools → ReAct Agent
  3. RAG:文档加载→切分→向量化→检索→增强生成
  4. 进阶:LangGraph StateGraph → 条件分支 → 子图嵌套
  5. 生产:MCP集成 → Human-in-Loop → 多Agent协作 → 监控追踪