目录
LangChain 详解
1. 定义与定位
2. 核心功能
3. 主要用途
LangGraph 详解
1. 定义与定位
2. 核心特性
3. 主要用途
LangChain vs LangGraph 核心区别
LangChain 详解
1. 定义与定位
LangChain 是一个用于构建基于大语言模型(LLM)应用程序的开源框架。它主要定位为工具包(Toolkit),为开发者提供了一系列可组合的组件和工具,用于将LLM与外部数据源、工具和服务连接起来。
2. 核心功能
组件化设计:LangChain采用模块化架构,包含以下核心组件:
- Models(模型):支持各种LLM提供商的接口封装
- Prompts(提示模板):管理和优化提示工程
- Chains(链):将多个组件串联成工作流
- Memory(记忆):管理对话上下文和状态
- Indexes(索引):文档加载、分割和向量存储
- Agents(代理):基于LLM的决策和工具调用
集成生态:LangChain提供了丰富的集成,支持:
- 各种LLM提供商(OpenAI、Anthropic、Cohere等)
- 向量数据库(Pinecone、Weaviate、Chroma等)
- 工具和API(搜索引擎、计算器、代码执行器等)
3. 主要用途
LangGraph 详解
1. 定义与定位
LangGraph 是LangChain团队开发的图结构编排框架,专门用于构建有状态的、多参与者(multi-actor)的应用程序。它主要定位为编排框架(Orchestration Framework),专注于解决复杂agent工作流的编排问题。
2. 核心特性
图结构工作流:LangGraph基于有向图的概念,允许开发者定义:
- 节点(Nodes):代表计算单元或函数
- 边(Edges):定义执行流程和条件分支
- 状态(State):在节点间传递和维护的共享数据
关键优势:
- 支持循环:与传统的DAG(有向无环图)不同,LangGraph支持循环和条件分支
- 状态管理:内置的状态持久化和恢复机制
- 人类干预:支持在执行过程中插入人工审核步骤
- 流式处理:支持实时流式输出和中间结果
3. 主要用途
LangChain vs LangGraph 核心区别
| 定位 | 工具包(Toolkit) | 编排框架(Orchestration Framework) |
| 架构 | 链式组合(Chain-based) | 图结构(Graph-based) |
| 状态管理 | 基础对话记忆 | 内置状态持久化和恢复 |
| 执行模式 | 线性流水线 | 支持循环和条件分支 |
| 复杂度 | 适合简单到中等复杂度任务 | 适合复杂多步骤工作流 |
| 人类干预 | 需要额外实现 | 内置支持 |
| 学习曲线 | 相对平缓 | 相对陡峭 |
实际上,LangChain和LangGraph经常协同工作:
- 使用LangChain的组件作为构建块(模型、工具、检索器等)
- 使用LangGraph作为编排层来组织这些构建块
例如,你可以用LangChain连接向量数据库和LLM,然后用LangGraph来编排一个复杂的RAG agent,该agent能够:



