前言
大家好!LangChain 迎來了 v1.0 這個里程碑版本(2025 年10月正式發佈),這是 LangChain 團隊經過幾年社區反饋和生產實踐後,對框架的一次大刀闊斧的重構。
最大的變化就是模塊化拆分:過去一個 langchain 包,現在被拆成了多個獨立、可按需安裝的包。這樣做的好處是:
- 主包更輕量、更專注(安裝更快、依賴更少)
- 生產環境更穩定(只裝你需要的部分)
- 生態更清晰(核心抽象、社區集成、廠商集成、舊版兼容各司其職)
- 便於維護和貢獻
本文專為 LangChain 愛好者 編寫,幫助你快速搞懂 v1.0 的每個包是幹什麼的、該什麼時候裝哪個包、它們之間的依賴關係,以及一些最佳實踐。
官方 v1.0 發佈説明:https://docs.langchain.com/oss/python/releases/langchain-v1
最新博客(2025 年 11 月):https://blog.langchain.com/langchain-langgraph-1dot0/
- LangChain v1.0 各模塊一覽表
|
包名稱 |
核心定位 |
主要內容與作用 |
依賴關係 |
適合場景 |
|
langchain-core |
核心抽象層 + LCEL(表達式語言)
|
定義所有組件的標準接口(ChatModel、Embeddings、Tool、Message、Prompt 等),LCEL 實現,不含任何第三方集成
|
無(最底層)
|
所有 LangChain 項目都必須依賴
|
|
langchain |
主包:構建 Agent 的“開箱即用”入口
|
聚焦現代 Agent 架構: |
依賴 langchain-core
|
大多數新手/生產項目直接用這個
|
|
langchain-community |
社區維護的第三方集成
|
大量文檔加載器、向量庫、工具、少見模型集成(質量參差不齊)
|
依賴 langchain-core
|
快速驗證想法、用到冷門集成時
|
|
langchain-[partner] (如 langchain-openai) |
官方深度支持的廠商集成
|
特定廠商的最優實現(如 |
只依賴 langchain-core
|
生產環境強烈推薦(穩定、更新快)
|
|
langchain-classic |
舊版兼容包(Legacy)
|
v0.x 的所有舊 Chain、舊 Retriever、Indexing API、舊 AgentExecutor 等
|
獨立包
|
正在從 v0.x 遷移的老項目
|
- 各模塊詳細説明
2.1 langchain-core:一切的基石(必須裝)
- 定位:最輕量、最純粹的包,只定義“接口”,不實現任何具體廠商或第三方功能。
- 核心內容:
- 所有組件的基類和抽象:
BaseChatModel、BaseTool、Embeddings、Runnable等 - 消息系統:
HumanMessage、AIMessage、ToolMessage、內容塊(content blocks,支持多模態) - LCEL(LangChain Expression Language):用
|管道符快速組合組件 @tool裝飾器、工具調用規範- 為什麼這麼設計?
讓整個生態都有統一的標準,其他包只需實現這些接口即可。
2.2 langchain(主包):v1.0 的真正“主角”
v1.0 把 langchain 包徹底精簡,只保留 構建現代 Agent 的最核心、最好用的 API,底層基於 LangGraph(狀態機 + 可持久化 + streaming + human-in-the-loop)實現。
- 定位:給你一個“開箱即用”的 Agent 構建體驗,適合 90% 的實際項目。
- 關鍵變化:
- 命名空間大幅精簡(過去幾百個類,現在只有最精華的部分)
- 推薦入口:
create_agent()一行代碼創建完整 Agent - 新增 middleware 系統,可以非常靈活地插拔行為(上下文工程、工具動態切換等)
- 主要模塊一覽:
|
模塊路徑
|
核心內容
|
説明
|
|
|
|
新版 Agent 創建與執行器
|
|
|
|
從 core 重新導出,方便使用
|
|
|
|
工具定義
|
|
|
|
統一初始化任意廠商模型(廠商無關)
|
|
|
|
統一初始化嵌入模型
|
- 安裝:
pip install langchain(會自動帶上 core) - 新手最佳實踐:直接從
langchain導入一切,寫代碼最順手。
from langchain import create_agentfrom langchain_openai import ChatOpenAI # 模型來自廠商包agent = create_agent(model=ChatOpenAI(model="gpt-4o"))
2.3 langchain-community:社區“大雜燴”
- 定位:社區貢獻的“功能擴展層”,放所有非核心、非熱門的集成。
- 典型內容:
- 文檔加載器:PDF、CSV、HTML、Markdown、DirectoryLoader 等
- 文本分割器:
RecursiveCharacterTextSplitter - 向量庫:Chroma、Pinecone、Qdrant、Milvus、PGVector 等
- 工具:Slack、Notion、GitHub、ArXiv、YouTube 等
- 少見模型:通義千問、DeepSeek(社區版)、本地 Ollama 等
- 特點:
- 數量極其龐大(覆蓋 95% 的冷門需求)
- 質量參差不齊、更新可能滯後(社區維護)
- 依賴都是可選的,安裝時只會拉取你實際用到的
- 安裝:
pip install langchain-community - 建議:原型階段可以用,生產環境優先換成官方廠商包或自己維護。
2.4 langchain-[partner]:官方深度廠商包(生產必備)
這些是 LangChain 團隊與廠商共同維護的“黃金集成”,目前主流的有:
|
包名
|
支持的模型/服務
|
|
langchain-openai
|
OpenAI、Azure OpenAI
|
|
langchain-anthropic
|
Claude 全系列
|
|
langchain-google
|
Gemini、Vertex AI
|
|
langchain-groq
|
Groq(Llama3 等超快推理)
|
|
langchain-ollama
|
本地 Ollama
|
|
langchain-deepseek
|
DeepSeek
|
|
……
|
更多持續增加
|
- 為什麼單獨拆出來?
- 主包保持輕量(不強制安裝所有廠商 SDK)
- 更新更快、支持最新特性(多模態 content blocks、structured output、工具調用規範)
- 只依賴 langchain-core,安裝體積最小
- 最佳實踐:
- 生產環境:務必使用對應廠商包(如
from langchain_openai import ChatOpenAI) - 多模型切換:用
init_chat_model("openai:gpt-4o")或"anthropic:claude-3-opus",代碼零改動 - 兼容 OpenAI 格式的第三方(如 DeepSeek、火山引擎)也可以直接用 langchain-openai,只改 base_url 和 key
2.5 langchain-classic:舊代碼的“救生艇”
官方把 v0.x 中所有 已被棄用(deprecated) 的功能全部搬到這個包裏,讓 v1.0 主包保持乾淨。
- 包含內容:
- 舊版 Chain:
LLMChain、SequentialChain、RouterChain等 - 舊版 Retriever:
MultiQueryRetriever、ParentDocumentRetriever等 - 舊版 Agent:
AgentExecutor、零樣本 ReAct 等 - Indexing API、LangChain Hub 等
- 安裝:
pip install langchain-classic - 導入變化:
from langchain_classic.chains import LLMChain - 建議:新項目不要用,老項目儘快遷移到新 Agent(
create_agent+ LangGraph)。
- 升級與最佳實踐建議
- 新項目直接上 v1.0:
pip install langchain langchain-openai # 夠用了
- 只用 OpenAI:只裝
langchain-core + langchain + langchain-openai - 需要向量庫/文檔加載:先看有沒有在社區包,生產再考慮自研或官方替代
- 遷移老項目:先加
langchain-classic,改 import,再逐步替換成新 API - 統一模型初始化(強烈推薦):
from langchain.chat_models import init_chat_modelmodel = init_chat_model("gpt-4o", model_provider="openai") # 或 "anthropic"
- 寫在最後
LangChain v1.0 的模塊化拆分,是框架走向成熟的標誌:更輕、更快、更專注 Agent、更易維護。對新手來説,你只需要記住:
- 日常開發:
pip install langchain langchain-openai→ 從langchain包導入一切 - 生產部署:儘量用官方廠商包
- 探索新功能:放心用社區包試水