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 架构设计理念

  1. 核心稳定langchain-core 提供稳定抽象,版本严格遵循语义化
  2. 按需安装:只安装需要的集成包,避免依赖臃肿
  3. 状态分离:记忆/状态管理明确归属 langgraphlangchain 保持无状态
  4. 生态清晰:官方包 vs 社区包 vs 实验包职责分明

建议新项目直接使用 LangGraph 的状态管理机制,而非使用 langchain-classic 中的旧版 Memory,以获得更好的可控性和扩展性。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐