langchain、langgraph 报错:cannot import name 'ExecutionInfo' from 'langgraph.runtime

描述错误

LangGraph/LangChain 未安装: cannot import name 'ExecutionInfo' from 'langgraph.runtime' (....venv\Lib\site-packages\langgraph\runtime.py)

分析

根据下面网页解决:
https://github.com/langchain-ai/langgraph/issues/7404

因为 langchain、langgraph、langgraph-prebuilt的版本不兼容导致的:

  • langchain==1.2.1 硬约束:langgraph < 1.1.0,不能装 1.1.0+
  • langgraph-prebuilt >=1.0.9 会强制导入 ExecutionInfo,但 <1.1.0 的 langgraph 新版(1.0.10+)已移除该类,直接冲突报错

方案一(推荐)

目标:

  • 保持 langchain==1.2.1 不动
  • 使用 不依赖 ExecutionInfo 的低版本 langgraph-prebuilt
  • langgraph 同步搭配同生态旧版,彻底规避导入错误

执行命令(uv 环境)

# 卸载现有冲突版本
uv remove langgraph langgraph-prebuilt

# 安装兼容组合(实测无 ExecutionInfo 导入报错、create_react_agent 可用)
uv add langgraph==1.0.5 langgraph-prebuilt==1.0.8

版本匹配说明

  • langgraph==1.0.5:属于 <1.1.0 区间,满足 langchain 约束,内置 ExecutionInfo
  • langgraph-prebuilt==1.0.8:该版本不会尝试导入 ExecutionInfo,完美适配
  • 同时支持 from langgraph.prebuilt import create_react_agent 正常使用

同步修改依赖清单

"langchain==1.2.1",
"langgraph==1.0.5",
"langgraph-prebuilt==1.0.8",

执行完成后重启服务,两个问题一并解决:

  1. cannot import name 'ExecutionInfo' 报错消失
  2. create_react_agent 导入正常
  3. 仅保留 allowed_objects 弃用警告(可按之前方法屏蔽/修复)

方案二

进阶:升级 LangChain 解除版本锁,使用新版生态

如果你后续想使用 langgraph 1.1+ 完整新特性,需要突破原版本约束,整体升级生态(适合新项目/可改动依赖):

步骤

  1. 解除 langchain==1.2.1 固定版本,升级到支持 langgraph 1.1+ 的版本

    uv remove langchain langgraph langgraph-prebuilt
    # 统一升级整套兼容生态
    uv add "langchain>=1.2.2" "langgraph>=1.1.10" "langgraph-prebuilt>=1.0.9"
    
  2. 该组合下:

    • langgraph 1.1.10+ 恢复 langgraph.runtime.ExecutionInfo
    • langgraph-prebuilt 1.0.9+ 正常导入,无冲突
    • create_react_agent 可正常使用

风险提示:升级后需自测原有 LangGraph 业务逻辑,部分内部 API 有小幅变更。