跳至内容
排错与迁移

排错与迁移:LangChain 旧教程升级 v1 与报错原文速查

网上多数 LangChain 教程写于 0.1 到 0.3 时期,照着在 v1 上运行,常常第一行就报错。先判断你面对的是旧教程、旧项目,还是一行具体报错,再按对应方法处理。

先选你的情况

你的情况适合的做法从这里开始
有一个旧项目,打算升级到 v1按步骤迁移,每一步都留回滚点旧项目升级到 v1
已经报错,或者行为不对按报错原文或症状对号入座,再进入对应实验按症状排查故障
只想查一个 import 或写法直接查表,不用通读导入兼容矩阵

不确定自己属于哪种,先看环境里装的是哪个版本:运行 pip show langchain,看输出里的 Version。

  • 以 0. 开头:在验证过的 0.3.27 里,旧教程常见的 import 全部能导入,只是部分会打印弃用警告。计划升级时,再回到这里;
  • 以 1. 开头:在验证过的 1.4.7 里,langchain.chains、langchain.memory、langchain.prompts 这类旧 import 会直接报错,先看旧教程迁移对照。

旧项目升级到 v1

从旧教程的写法出发,一步步升级到 v1,并且每一步都留好回滚点。

  1. LangChain 旧教程迁移到 v1:导入、调用与报错对照 速查 · 更新于 2026-10-26

    对着旧教程,把 import、调用方式和参数名逐条换成 v1 写法。

  2. LangChain 从 v0.x 升级到 v1:分步迁移与回滚 Runbook · 更新于 2026-10-25

    先用 langchain-classic 零行为变更地换 import,再迁到 create_agent,每一步都有可回滚的检查点。

  3. 旧 RAG 入库代码升级到 v1:加载、切分、向量库怎么换,结果变不变 指南 · 更新于 2026-10-27

    换完入库代码的 import,确认块数、块内容和检索顺序没变,并决定停止维护的 langchain-community 里哪些环节要换掉。

  4. RetrievalQA 与 LLMChain 迁移到 LCEL:保持结果一致 Runbook · 更新于 2026-10-26

    迁移前后量出消息内容、返回值形状、模型调用次数和检索为空时的差异,调用方不用改。

  5. ConversationBufferMemory 迁移到 v1:thread_id、持久化与历史裁剪 Runbook · 更新于 2026-10-26

    迁移对话记忆,并确认不同 thread_id 之间互相隔离、没有静默失忆。

遇到报错:按症状排查 →

按症状排查故障

拿报错原文或症状对号入座,再进入对应的实验定位原因。

  1. LangChain 生产故障速查:13 类报错的原因与处理 速查 · 更新于 2026-10-25

    按报错原文或症状找到条目,并跳到对应的详细实验。

  2. 工具调用 schema 排障:docstring、参数校验与异常处理 速查 · 更新于 2026-10-26

    定位并修好工具 schema 与参数校验导致的调用失败。

修好之后:上线前检查 →

按现象直接找文章

症状从这里开始
照着旧教程敲代码,第一行 import 就报错v1 迁移与旧写法对照
升级 langchain 之后出现 ModuleNotFoundError导入兼容矩阵,再按迁移 Runbook操作
项目里还在用 AgentExecutor、LLMChain迁移 Runbook
旧的 RAG 入库代码(TextLoader、RecursiveCharacterTextSplitter、FAISS)要升级,或者担心升级后入库结果变了旧 RAG 入库代码升级到 v1
旧的 RetrievalQA 要迁到 LCELRetrievalQA 与 LLMChain 迁移到 LCEL
对话历史丢了,或者不同用户的会话串线对话记忆迁移
手里只有一行报错原文生产故障速查
模型给工具传错了参数,或者工具抛异常后 Agent 的行为不符合预期工具调用 schema 排障
设了 LANGSMITH_TRACING=false 还有 trace,或者设了 true 却没有 trace追踪环境变量:新旧变量并存时谁生效

只需查询某个 import 或变量优先级时,直接使用参考手册。v0.1 / v0.2 的内容仅用于维护旧项目,不适合作为 v1 实现依据,保存在历史版本,只为让旧链接继续可用。

最后更新于