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 —— 核心抽象层

这是最基础的包,包含所有基础接口和抽象类,被其他所有包依赖。它保持极度轻量,无第三方依赖。

主要组件:

类别常见类/接口说明
MessagesBaseMessage, HumanMessage, AIMessage, SystemMessage, ToolMessage消息类型抽象
Chat ModelsBaseChatModel, SimpleChatModel聊天模型基类
LLMsBaseLLM文本模型基类(已逐渐废弃)
EmbeddingsEmbeddings嵌入模型接口
Vector StoresVectorStore向量存储接口
RetrieversBaseRetriever检索器接口
ToolsBaseTool, tool (装饰器)工具定义
PromptsBasePromptTemplate, ChatPromptTemplate, PromptTemplate提示模板
Output ParsersBaseOutputParser, StrOutputParser, JsonOutputParser输出解析
RunnablesRunnable, RunnableSequence, RunnableParallel, RunnablePassthroughLCEL核心
CallbacksBaseCallbackHandler, AsyncCallbackHandler回调系统
DocumentsDocument, BaseDocumentTransformer文档抽象
LoadersBaseLoader文档加载器接口
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统一模型初始化
MessagesAIMessage, HumanMessage 等(从core重导出)便捷导入
Toolstool 装饰器(从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 ModelsChatOpenAI (旧版), ChatAnthropic (旧版), ChatOllama各种模型实现(逐渐被独立包替代)
Vector StoresChroma, FAISS, Pinecone, Weaviate, Milvus向量数据库集成
Document LoadersPyPDFLoader, CSVLoader, UnstructuredFileLoader, WebBaseLoader文档加载器
ToolsWikipediaQueryRun, GoogleSearchResults, DuckDuckGoSearchRun第三方工具
RetrieversBM25Retriever, TFIDFRetriever传统检索器
EmbeddingsOpenAIEmbeddings (旧版), HuggingFaceEmbeddings嵌入模型实现
Chat HistoryChatMessageHistory, 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-openaiChatOpenAI, OpenAIEmbeddings, AzureChatOpenAIOpenAI 官方集成
langchain-anthropicChatAnthropicAnthropic Claude
langchain-google-genaiChatGoogleGenerativeAIGoogle Gemini
langchain-ollamaChatOllama, OllamaEmbeddings本地 Ollama
langchain-mistralaiChatMistralAIMistral AI
langchain-cohereChatCohere, CohereEmbeddingsCohere
langchain-fireworksChatFireworksFireworks AI
langchain-awsChatBedrockAWS 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

主要类:

类别常见类说明
StateGraphStateGraph, MessagesState图构建与状态定义
CheckpointersInMemorySaver, PostgresSaver, RedisSaver状态持久化(记忆存储)
NodesToolNode, END, START图节点
Prebuiltcreate_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)
ConversationBufferMemoryInMemorySaver + MessagesState
ConversationSummaryMemory自定义 State + 总结节点
ConversationKGMemory自定义 State + 知识图谱节点
VectorStoreRetrieverMemoryState + 向量检索节点

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.chainslangchain_classic.chains旧版 Chain(LLMChain等)
langchain.memorylangchain_classic.memory旧版 Memory(BufferMemory等)
langchain.retrieverslangchain_classic.retrievers旧版 Retrievers
langchain.hublangchain_classic.hubPrompt Hub
# 如需使用旧版 Memory(不推荐)
from langchain_classic.memory import ConversationBufferMemory

快速参考:组件所在包速查

你想用的功能应该安装的包常见导入路径
基础消息类型langchain-corelangchain_core.messages
提示模板langchain-corelangchain_core.prompts
LCEL/Runnablelangchain-corelangchain_core.runnables
创建现代 Agentlangchain + langgraphlangchain.agents, langgraph.prebuilt
记忆/状态管理langgraphlanggraph.checkpoint
OpenAI 模型langchain-openailangchain_openai
向量存储 (Chroma/FAISS)langchain-communitylangchain_community.vectorstores
文档加载器langchain-communitylangchain_community.document_loaders
旧版 Chain/Memorylangchain-classiclangchain_classic.*
实验性功能langchain-experimentallangchain_experimental.*

总结:1.0 架构设计理念

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

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

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐