实现参考
导入兼容矩阵

LangChain 导入兼容矩阵:0.3.27 与 1.4.7 下 36 个常用符号的可用性

升级到 LangChain v1 时,最常见的问题是:“我用的这个类,在新版本里还能不能 import?不能的话去哪里找?”本页给出一张实际导入过的矩阵:同一批符号,在三种环境里分别尝试导入,结果原样记录。适合在升级前对照自己的代码,也适合报错之后快速定位。

适用版本与验证信息

环境已安装的关键包说明
0.3.27langchain==0.3.27、langchain-core==0.3.86、langchain-community==0.3.31、langchain-text-splitters==0.3.11、langgraph==0.6.11迁移前的旧环境
1.4.7(仅 langchain)langchain==1.4.7、langchain-core==1.7.0、langchain-openai==1.7.2、langgraph==1.2.17只升级 langchain、没有装兼容层的环境
1.4.7 + 兼容层在上一行基础上增加 langchain-classic==1.0.8、langchain-community==0.4.2、langchain-text-splitters==1.1.3按迁移指南安装了兼容层和社区包

怎么读这张表

脚本对每个符号执行“导入模块,再取属性”,只会有三种结果:

结果含义典型报错
可用模块和名称都存在无
名称已移除模块还在,但这个名字没了ImportError: cannot import name ...
模块不存在整个子模块不在当前安装里ModuleNotFoundError: No module named ...

两点限制需要提前说清楚:

  • “可用”不等于“没有弃用警告”。 脚本为了让输出稳定关闭了警告,所以旧路径在 0.3.27 里显示“可用”,并不代表它仍被推荐;
  • “模块不存在”取决于安装了什么。 同一个符号在“仅 langchain”和“兼容层”两列里结果不同,通常只是因为少装了一个包,而不是符号真的消失了。

旧路径:langchain.* 下的 18 个符号

这是 0.x 项目里最常见的写法。0.3.27 里 18 个中有 17 个可用(只有 create_agent 还不存在);到 1.4.7,无论是否安装兼容层,都只剩 3 个可用:

符号0.3.271.4.7(仅 langchain)1.4.7 + 兼容层
langchain.agents.initialize_agent可用名称已移除名称已移除
langchain.agents.AgentExecutor可用名称已移除名称已移除
langchain.agents.create_tool_calling_agent可用名称已移除名称已移除
langchain.agents.create_react_agent可用名称已移除名称已移除
langchain.agents.create_agent名称已移除可用可用
langchain.chains.LLMChain可用模块不存在模块不存在
langchain.chains.RetrievalQA可用模块不存在模块不存在
langchain.chains.create_retrieval_chain可用模块不存在模块不存在
langchain.memory.ConversationBufferMemory可用模块不存在模块不存在
langchain.prompts.PromptTemplate可用模块不存在模块不存在
langchain.schema.Document可用模块不存在模块不存在
langchain.text_splitter.RecursiveCharacterTextSplitter可用模块不存在模块不存在
langchain.chat_models.init_chat_model可用可用可用
langchain.chat_models.ChatOpenAI可用名称已移除名称已移除
langchain.llms.OpenAI可用模块不存在模块不存在
langchain.vectorstores.FAISS可用模块不存在模块不存在
langchain.document_loaders.TextLoader可用模块不存在模块不存在
langchain.tools.tool可用可用可用

其中 1.4.7 下仍可用的 3 个是 create_agent、init_chat_model、tool——正好对应官方迁移指南里“langchain 包保留 agents、chat_models、tools”的描述。

其他参照:新位置与相邻包

为了帮助判断“应该去哪里找”,同时记录了 7 个参照符号:

符号0.3.271.4.7(仅 langchain)1.4.7 + 兼容层
langchain_core.prompts.ChatPromptTemplate可用可用可用
langchain_core.documents.Document可用可用可用
langchain_text_splitters.RecursiveCharacterTextSplitter可用模块不存在可用
langchain_classic.agents.AgentExecutor模块不存在模块不存在可用
langchain_classic.chains.LLMChain模块不存在模块不存在可用
langchain_classic.memory.ConversationBufferMemory模块不存在模块不存在可用
langgraph.prebuilt.create_react_agent可用可用可用
  • 安装兼容层后,langchain_classic.agents、langchain_classic.chains、langchain_classic.memory 下的符号全部可用——但上一张表同时显示,旧路径 langchain.agents.AgentExecutor、langchain.chains.LLMChain 并不会因此恢复。兼容层提供的是新位置,不是旧路径的别名,必须修改 import;
  • langchain_text_splitters 在“仅 langchain”环境里不存在:在 1.4.7 下,文本切分器需要单独安装 langchain-text-splitters;
  • langgraph.prebuilt.create_react_agent 在 1.4.7 里仍可导入,但官方迁移指南已经推荐改用 create_agent。

迁移目标:11 个新位置

下面这些是旧符号迁移后的落脚点,每一项都真实导入过:

符号0.3.271.4.7(仅 langchain)1.4.7 + 兼容层
langchain_classic.agents.initialize_agent模块不存在模块不存在可用
langchain_classic.agents.create_react_agent模块不存在模块不存在可用
langchain_classic.agents.create_tool_calling_agent模块不存在模块不存在可用
langchain_classic.chains.RetrievalQA模块不存在模块不存在可用
langchain_classic.chains.create_retrieval_chain模块不存在模块不存在可用
langchain_core.prompts.PromptTemplate可用可用可用
langchain_core.messages.HumanMessage可用可用可用
langchain_openai.ChatOpenAI模块不存在可用可用
langchain_openai.OpenAI模块不存在可用可用
langchain_community.vectorstores.FAISS可用模块不存在可用
langchain_community.document_loaders.TextLoader可用模块不存在可用

读法:

  • 11 个目标里,只有“1.4.7 + 兼容层”这一列全部可用,所以按这张表迁移时,需要同时安装 langchain-classic、langchain-community、langchain-openai;
  • langchain_openai 里的 ChatOpenAI、OpenAI 在 0.3.27 环境里不存在,是因为那个环境没有安装 langchain-openai,不是版本问题;
  • 如果你的旧代码从 langchain.vectorstores、langchain.document_loaders 导入,目标是 langchain_community.*,需要安装 langchain-community(本实验装的是 0.4.2)。

用脚本检查你自己的符号

把你项目里实际用到的符号追加到 SYMBOLS 或 TARGETS 列表,在每个环境里各运行一次即可得到同样格式的结果:

import_matrix.py
"""Report which symbols can still be imported from the installed LangChain version."""
import importlib
import importlib.metadata as md
import warnings
 
warnings.simplefilter("ignore")
 
SYMBOLS = [
    ("langchain.agents", "initialize_agent"),
    ("langchain.agents", "AgentExecutor"),
    ("langchain.agents", "create_tool_calling_agent"),
    ("langchain.agents", "create_react_agent"),
    ("langchain.agents", "create_agent"),
    ("langchain.chains", "LLMChain"),
    ("langchain.chains", "RetrievalQA"),
    ("langchain.chains", "create_retrieval_chain"),
    ("langchain.memory", "ConversationBufferMemory"),
    ("langchain.prompts", "PromptTemplate"),
    ("langchain.schema", "Document"),
    ("langchain.text_splitter", "RecursiveCharacterTextSplitter"),
    ("langchain.chat_models", "init_chat_model"),
    ("langchain.chat_models", "ChatOpenAI"),
    ("langchain.llms", "OpenAI"),
    ("langchain.vectorstores", "FAISS"),
    ("langchain.document_loaders", "TextLoader"),
    ("langchain.tools", "tool"),
    ("langchain_core.prompts", "ChatPromptTemplate"),
    ("langchain_core.documents", "Document"),
    ("langchain_text_splitters", "RecursiveCharacterTextSplitter"),
    ("langchain_classic.agents", "AgentExecutor"),
    ("langchain_classic.chains", "LLMChain"),
    ("langchain_classic.memory", "ConversationBufferMemory"),
    ("langgraph.prebuilt", "create_react_agent"),
]
 
# Where the old names go after the split; each target is imported for real in every environment.
TARGETS = [
    ("langchain_classic.agents", "initialize_agent"),
    ("langchain_classic.agents", "create_react_agent"),
    ("langchain_classic.agents", "create_tool_calling_agent"),
    ("langchain_classic.chains", "RetrievalQA"),
    ("langchain_classic.chains", "create_retrieval_chain"),
    ("langchain_core.prompts", "PromptTemplate"),
    ("langchain_core.messages", "HumanMessage"),
    ("langchain_openai", "ChatOpenAI"),
    ("langchain_openai", "OpenAI"),
    ("langchain_community.vectorstores", "FAISS"),
    ("langchain_community.document_loaders", "TextLoader"),
]
 
 
def status(module: str, name: str) -> str:
    try:
        getattr(importlib.import_module(module), name)
        return "OK"
    except ModuleNotFoundError:
        return "NO_MODULE"
    except AttributeError:
        return "NO_ATTR"
    except Exception as exc:  # unexpected import-time failure
        return f"ERR:{type(exc).__name__}"
 
 
def version(dist: str) -> str:
    try:
        return md.version(dist)
    except md.PackageNotFoundError:
        return "-"
 
 
print(
    "installed:",
    ", ".join(f"{d}={version(d)}" for d in ("langchain", "langchain-core", "langchain-classic", "langchain-community", "langchain-text-splitters")),
)
for module, name in SYMBOLS:
    print(f"{status(module, name):10s} {module}.{name}")
print("-- migration targets --")
for module, name in TARGETS:
    print(f"{status(module, name):10s} {module}.{name}")

三个环境的原始输出如下,上面的表格就是由它们合并而成。

0.3.27:

installed: langchain=0.3.27, langchain-core=0.3.86, langchain-classic=-, langchain-community=0.3.31, langchain-text-splitters=0.3.11
OK         langchain.agents.initialize_agent
OK         langchain.agents.AgentExecutor
OK         langchain.agents.create_tool_calling_agent
OK         langchain.agents.create_react_agent
NO_ATTR    langchain.agents.create_agent
OK         langchain.chains.LLMChain
OK         langchain.chains.RetrievalQA
OK         langchain.chains.create_retrieval_chain
OK         langchain.memory.ConversationBufferMemory
OK         langchain.prompts.PromptTemplate
OK         langchain.schema.Document
OK         langchain.text_splitter.RecursiveCharacterTextSplitter
OK         langchain.chat_models.init_chat_model
OK         langchain.chat_models.ChatOpenAI
OK         langchain.llms.OpenAI
OK         langchain.vectorstores.FAISS
OK         langchain.document_loaders.TextLoader
OK         langchain.tools.tool
OK         langchain_core.prompts.ChatPromptTemplate
OK         langchain_core.documents.Document
OK         langchain_text_splitters.RecursiveCharacterTextSplitter
NO_MODULE  langchain_classic.agents.AgentExecutor
NO_MODULE  langchain_classic.chains.LLMChain
NO_MODULE  langchain_classic.memory.ConversationBufferMemory
OK         langgraph.prebuilt.create_react_agent
-- migration targets --
NO_MODULE  langchain_classic.agents.initialize_agent
NO_MODULE  langchain_classic.agents.create_react_agent
NO_MODULE  langchain_classic.agents.create_tool_calling_agent
NO_MODULE  langchain_classic.chains.RetrievalQA
NO_MODULE  langchain_classic.chains.create_retrieval_chain
OK         langchain_core.prompts.PromptTemplate
OK         langchain_core.messages.HumanMessage
NO_MODULE  langchain_openai.ChatOpenAI
NO_MODULE  langchain_openai.OpenAI
OK         langchain_community.vectorstores.FAISS
OK         langchain_community.document_loaders.TextLoader

1.4.7(仅 langchain):

installed: langchain=1.4.7, langchain-core=1.7.0, langchain-classic=-, langchain-community=-, langchain-text-splitters=-
NO_ATTR    langchain.agents.initialize_agent
NO_ATTR    langchain.agents.AgentExecutor
NO_ATTR    langchain.agents.create_tool_calling_agent
NO_ATTR    langchain.agents.create_react_agent
OK         langchain.agents.create_agent
NO_MODULE  langchain.chains.LLMChain
NO_MODULE  langchain.chains.RetrievalQA
NO_MODULE  langchain.chains.create_retrieval_chain
NO_MODULE  langchain.memory.ConversationBufferMemory
NO_MODULE  langchain.prompts.PromptTemplate
NO_MODULE  langchain.schema.Document
NO_MODULE  langchain.text_splitter.RecursiveCharacterTextSplitter
OK         langchain.chat_models.init_chat_model
NO_ATTR    langchain.chat_models.ChatOpenAI
NO_MODULE  langchain.llms.OpenAI
NO_MODULE  langchain.vectorstores.FAISS
NO_MODULE  langchain.document_loaders.TextLoader
OK         langchain.tools.tool
OK         langchain_core.prompts.ChatPromptTemplate
OK         langchain_core.documents.Document
NO_MODULE  langchain_text_splitters.RecursiveCharacterTextSplitter
NO_MODULE  langchain_classic.agents.AgentExecutor
NO_MODULE  langchain_classic.chains.LLMChain
NO_MODULE  langchain_classic.memory.ConversationBufferMemory
OK         langgraph.prebuilt.create_react_agent
-- migration targets --
NO_MODULE  langchain_classic.agents.initialize_agent
NO_MODULE  langchain_classic.agents.create_react_agent
NO_MODULE  langchain_classic.agents.create_tool_calling_agent
NO_MODULE  langchain_classic.chains.RetrievalQA
NO_MODULE  langchain_classic.chains.create_retrieval_chain
OK         langchain_core.prompts.PromptTemplate
OK         langchain_core.messages.HumanMessage
OK         langchain_openai.ChatOpenAI
OK         langchain_openai.OpenAI
NO_MODULE  langchain_community.vectorstores.FAISS
NO_MODULE  langchain_community.document_loaders.TextLoader

1.4.7 + 兼容层:

installed: langchain=1.4.7, langchain-core=1.7.0, langchain-classic=1.0.8, langchain-community=0.4.2, langchain-text-splitters=1.1.3
NO_ATTR    langchain.agents.initialize_agent
NO_ATTR    langchain.agents.AgentExecutor
NO_ATTR    langchain.agents.create_tool_calling_agent
NO_ATTR    langchain.agents.create_react_agent
OK         langchain.agents.create_agent
NO_MODULE  langchain.chains.LLMChain
NO_MODULE  langchain.chains.RetrievalQA
NO_MODULE  langchain.chains.create_retrieval_chain
NO_MODULE  langchain.memory.ConversationBufferMemory
NO_MODULE  langchain.prompts.PromptTemplate
NO_MODULE  langchain.schema.Document
NO_MODULE  langchain.text_splitter.RecursiveCharacterTextSplitter
OK         langchain.chat_models.init_chat_model
NO_ATTR    langchain.chat_models.ChatOpenAI
NO_MODULE  langchain.llms.OpenAI
NO_MODULE  langchain.vectorstores.FAISS
NO_MODULE  langchain.document_loaders.TextLoader
OK         langchain.tools.tool
OK         langchain_core.prompts.ChatPromptTemplate
OK         langchain_core.documents.Document
OK         langchain_text_splitters.RecursiveCharacterTextSplitter
OK         langchain_classic.agents.AgentExecutor
OK         langchain_classic.chains.LLMChain
OK         langchain_classic.memory.ConversationBufferMemory
OK         langgraph.prebuilt.create_react_agent
-- migration targets --
OK         langchain_classic.agents.initialize_agent
OK         langchain_classic.agents.create_react_agent
OK         langchain_classic.agents.create_tool_calling_agent
OK         langchain_classic.chains.RetrievalQA
OK         langchain_classic.chains.create_retrieval_chain
OK         langchain_core.prompts.PromptTemplate
OK         langchain_core.messages.HumanMessage
OK         langchain_openai.ChatOpenAI
OK         langchain_openai.OpenAI
OK         langchain_community.vectorstores.FAISS
OK         langchain_community.document_loaders.TextLoader

结果与你的环境不一致时的排障

现象常见原因处理
同一个符号在你的环境里显示“可用”,表里是“模块不存在”你的环境多装了某个包(例如已经装了 langchain-classic)先用 pip list 对照上文各环境的包与版本,再判断是否可比
表里“可用”,你的环境里“名称已移除”你的 langchain 版本更新,名称在后续版本被移除用 pip show langchain 查版本,重新运行脚本得到你自己的矩阵
导入时出现弃用警告本页脚本关闭了警告去掉 warnings.simplefilter("ignore") 重新运行,警告文字会指出推荐的新位置

升级任何一个相关包(langchain、langchain-core、langchain-classic、langchain-community)之后,都建议重新运行一次脚本;它只依赖标准库,不需要联网或 API Key,也没有任何会修改环境的操作,所以可以放心加进 CI。

相关阅读

来源

以上来源均于 2026-10-25 核对。矩阵数据来自站点仓库 labs/langchain-v1-migration/ 的实际运行。

维护信息

  • 编辑:LangChain 中文网编辑部(内容标准见编辑与纠错说明);
  • 最近验证:2026-10-25;
  • 复现:先执行 labs/setup-envs.sh 重建环境,再执行 python3 labs/run.py --lab langchain-v1-migration;
  • 发现错误请按联系我们反馈。