LangChain 1.0 的最新架构和模块组成信息
·
LangChain 1.0 架构总览
LangChain 1.0 采用了分层架构设计,将功能拆分为多个独立的包,以提高稳定性和可维护性。主要包含以下核心包:
| 包名 | 定位 | 稳定性 |
|---|---|---|
langchain-core |
基础抽象与接口 | ⭐⭐⭐ 最稳定 |
langchain |
高层认知架构(Agent、链) | ⭐⭐⭐ 稳定 |
langchain-community |
第三方社区集成 | ⭐⭐ 较稳定 |
langchain-[partner] |
官方合作伙伴包(如openai) | ⭐⭐⭐ 稳定 |
langchain-experimental |
实验性功能 | ⭐ 不稳定 |
langgraph |
有状态应用/记忆管理 | ⭐⭐⭐ 稳定 |
langchain-classic |
遗留功能(1.0后) | ⭐ 已弃用 |
1. langchain-core —— 核心抽象层
这是最基础的包,包含所有基础接口和抽象类,被其他所有包依赖。它保持极度轻量,无第三方依赖。
主要组件:
| 类别 | 常见类/接口 | 说明 |
|---|---|---|
| Messages | BaseMessage, HumanMessage, AIMessage, SystemMessage, ToolMessage |
消息类型抽象 |
| Chat Models | BaseChatModel, SimpleChatModel |
聊天模型基类 |
| LLMs | BaseLLM |
文本模型基类(已逐渐废弃) |
| Embeddings | Embeddings |
嵌入模型接口 |
| Vector Stores | VectorStore |
向量存储接口 |
| Retrievers | BaseRetriever |
检索器接口 |
| Tools | BaseTool, tool (装饰器) |
工具定义 |
| Prompts | BasePromptTemplate, ChatPromptTemplate, PromptTemplate |
提示模板 |
| Output Parsers | BaseOutputParser, StrOutputParser, JsonOutputParser |
输出解析 |
| Runnables | Runnable, RunnableSequence, RunnableParallel, RunnablePassthrough |
LCEL核心 |
| Callbacks | BaseCallbackHandler, AsyncCallbackHandler |
回调系统 |
| Documents | Document, BaseDocumentTransformer |
文档抽象 |
| Loaders | BaseLoader |
文档加载器接口 |
from langchain_core.messages import HumanMessage, AIMessage
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import tool
from langchain_core.runnables import RunnablePassthrough
2. langchain —— 主包(精简版)
在 LangChain 1.0 中,langchain 包被大幅精简,专注于Agent 构建的核心功能。
1.0 版本主要包含:
| 类别 | 常见类/函数 | 说明 |
|---|---|---|
| Agent 构建 | create_react_agent, create_tool_calling_agent |
创建智能体 |
| 模型初始化 | init_chat_model, init_embeddings |
统一模型初始化 |
| Messages | AIMessage, HumanMessage 等(从core重导出) |
便捷导入 |
| Tools | tool 装饰器(从core重导出) |
便捷导入 |
from langchain import create_react_agent
from langchain.chat_models import init_chat_model
from langchain.tools import tool
⚠️ 重要变化:1.0 移除的内容
在 LangChain 1.0 中,以下内容已被移除或迁移:
- ❌ Memory 模块 → 迁移到
langgraph(见下文) - ❌ Legacy Chains(如
LLMChain,ConversationChain)→ 迁移到langchain-classic - ❌ Retrievers(如
MultiQueryRetriever)→ 迁移到langchain-classic - ❌ 索引 API → 迁移到
langchain-classic
3. langchain-community —— 社区集成
包含长尾第三方集成,由社区维护。依赖可选,保持轻量。
主要组件:
| 类别 | 常见类 | 说明 |
|---|---|---|
| Chat Models | ChatOpenAI (旧版), ChatAnthropic (旧版), ChatOllama |
各种模型实现(逐渐被独立包替代) |
| Vector Stores | Chroma, FAISS, Pinecone, Weaviate, Milvus |
向量数据库集成 |
| Document Loaders | PyPDFLoader, CSVLoader, UnstructuredFileLoader, WebBaseLoader |
文档加载器 |
| Tools | WikipediaQueryRun, GoogleSearchResults, DuckDuckGoSearchRun |
第三方工具 |
| Retrievers | BM25Retriever, TFIDFRetriever |
传统检索器 |
| Embeddings | OpenAIEmbeddings (旧版), HuggingFaceEmbeddings |
嵌入模型实现 |
| Chat History | ChatMessageHistory, FileChatMessageHistory |
消息历史存储(非Memory) |
from langchain_community.vectorstores import Chroma, FAISS
from langchain_community.document_loaders import PyPDFLoader
from langchain_community.tools import WikipediaQueryRun
4. 官方合作伙伴包 (langchain-[partner])
主流集成已拆分为独立包,便于版本管理和维护:
| 包名 | 主要类 | 说明 |
|---|---|---|
langchain-openai |
ChatOpenAI, OpenAIEmbeddings, AzureChatOpenAI |
OpenAI 官方集成 |
langchain-anthropic |
ChatAnthropic |
Anthropic Claude |
langchain-google-genai |
ChatGoogleGenerativeAI |
Google Gemini |
langchain-ollama |
ChatOllama, OllamaEmbeddings |
本地 Ollama |
langchain-mistralai |
ChatMistralAI |
Mistral AI |
langchain-cohere |
ChatCohere, CohereEmbeddings |
Cohere |
langchain-fireworks |
ChatFireworks |
Fireworks AI |
langchain-aws |
ChatBedrock |
AWS Bedrock |
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_anthropic import ChatAnthropic
5. langgraph —— 状态管理与记忆(关键变化!)
这是 LangChain 1.0 架构中最大的变化。Memory 功能已从 langchain 完全迁移到 langgraph。
核心概念:
| 概念 | 说明 | 对应旧版 |
|---|---|---|
| State | 图的状态管理(替代 Memory) | ConversationBufferMemory |
| Checkpointer | 状态持久化 | 无直接对应 |
| Graph | 工作流图构建 | Chain |
主要类:
| 类别 | 常见类 | 说明 |
|---|---|---|
| StateGraph | StateGraph, MessagesState |
图构建与状态定义 |
| Checkpointers | InMemorySaver, PostgresSaver, RedisSaver |
状态持久化(记忆存储) |
| Nodes | ToolNode, END, START |
图节点 |
| Prebuilt | create_react_agent |
预置Agent(推荐方式) |
from langgraph.graph import StateGraph, MessagesState, START, END
from langgraph.checkpoint.memory import InMemorySaver # 短期记忆
from langgraph.prebuilt import create_react_agent
# 创建带记忆的Agent
memory = InMemorySaver()
agent = create_react_agent(model, tools, checkpointer=memory)
Memory 迁移对照表:
| 旧版 (LangChain 0.x) | 新版 (LangChain 1.x + LangGraph) |
|---|---|
ConversationBufferMemory |
InMemorySaver + MessagesState |
ConversationSummaryMemory |
自定义 State + 总结节点 |
ConversationKGMemory |
自定义 State + 知识图谱节点 |
VectorStoreRetrieverMemory |
State + 向量检索节点 |
6. langchain-experimental —— 实验性功能
包含前沿、不稳定的功能,不推荐用于生产环境。
| 类别 | 常见类 | 说明 |
|---|---|---|
| 智能体 | AutoGPT, BabyAGI |
实验性智能体 |
| 链 | PALChain, LLMMathChain |
实验性链 |
| 工具 | PythonREPLTool 的实验版本 |
实验性工具 |
from langchain_experimental.agents import create_pandas_dataframe_agent
7. langchain-classic —— 遗留功能(1.0后新增)
LangChain 1.0 将旧版功能迁移到此包,以便主包保持精简。
| 旧模块 | 新导入路径 | 说明 |
|---|---|---|
langchain.chains |
langchain_classic.chains |
旧版 Chain(LLMChain等) |
langchain.memory |
langchain_classic.memory |
旧版 Memory(BufferMemory等) |
langchain.retrievers |
langchain_classic.retrievers |
旧版 Retrievers |
langchain.hub |
langchain_classic.hub |
Prompt Hub |
# 如需使用旧版 Memory(不推荐)
from langchain_classic.memory import ConversationBufferMemory
快速参考:组件所在包速查
| 你想用的功能 | 应该安装的包 | 常见导入路径 |
|---|---|---|
| 基础消息类型 | langchain-core |
langchain_core.messages |
| 提示模板 | langchain-core |
langchain_core.prompts |
| LCEL/Runnable | langchain-core |
langchain_core.runnables |
| 创建现代 Agent | langchain + langgraph |
langchain.agents, langgraph.prebuilt |
| 记忆/状态管理 | langgraph |
langgraph.checkpoint |
| OpenAI 模型 | langchain-openai |
langchain_openai |
| 向量存储 (Chroma/FAISS) | langchain-community |
langchain_community.vectorstores |
| 文档加载器 | langchain-community |
langchain_community.document_loaders |
| 旧版 Chain/Memory | langchain-classic |
langchain_classic.* |
| 实验性功能 | langchain-experimental |
langchain_experimental.* |
总结:1.0 架构设计理念
- 核心稳定:
langchain-core提供稳定抽象,版本严格遵循语义化 - 按需安装:只安装需要的集成包,避免依赖臃肿
- 状态分离:记忆/状态管理明确归属
langgraph,langchain保持无状态 - 生态清晰:官方包 vs 社区包 vs 实验包职责分明
建议新项目直接使用 LangGraph 的状态管理机制,而非使用 langchain-classic 中的旧版 Memory,以获得更好的可控性和扩展性。
更多推荐


所有评论(0)