下午在调试图数据库时发现有报错,发现是create_react_agent这个函数已被弃用!赶紧查下,LangGraph的官网上还没更新,但LangChain上给出了最新的写法create_agent
LangGraph 的新版本迭代中,langgraph.prebuilt.create_react_agent 已经被正式弃用(Deprecated)。
官方为了将 Agent 的创建范式进行统一,并引入更强大的中间件(Middleware)生态,将这个功能彻底收拢到了 langchain.agents 模块中,并升级为了全新的 create_agent。
升级提示:升级到新版本需要确保你的核心库版本更新(推荐更新 pip install -U langchain langgraph)
| 维度 | 旧版本 (LangGraph 预置) | 新版本 (LangChain 统一规范) |
|---|---|---|
| 导包路径 | from langgraph.prebuilt import create_react_agent | from langchain.agents import create_agent |
| 主要定位 | LangGraph 内部的快捷图生成工具 | 结合 LangGraph 图底层 + LangChain 统一生态的智能体工厂 |
升级提示:升级到新版本需要确保你的核心库版本更新(推荐更新
pip install -U langchain langgraph)。
升级非常简单。核心的参数(如 model, tools, prompt 等)逻辑基本保留,你只需要改变导入路径并升级函数名为 create_agent 即可
import os
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
# 【核心改变】从 langchain.agents 导入统一的 create_agent
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver
# 1. 配置密钥
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"
# 2. 定义工具
@tool
def calculate_payout(base_salary: int, bonus: int) -> int:
"""计算员工的总奖金。"""
return base_salary + bonus
tools = [calculate_payout]
# 3. 初始化支持 Tool Calling 的大模型
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
# 4. 设置记忆体(LangGraph 原生的持久化依然完全兼容)
memory = InMemorySaver()
# 5. 【新版写法】创建 Agent
system_prompt = "你是一个财务精算助手,请使用工具准确计算薪酬,并用中文专业回答。"
# 统一使用 create_agent 替代原先的 create_react_agent
agent_graph = create_agent(
model=llm,
tools=tools,
prompt=system_prompt,
checkpointer=memory # 依然完美支持 LangGraph 的记忆架构
)
# 6. 测试运行
config = {"configurable": {"thread_id": "finance_session_001"}}
inputs = {"messages": [{"role": "user", "content": "基本工资 8000,奖金 3500,总共是多少?"}]}
if __name__ == "__main__":
for chunk in agent_graph.stream(inputs, config=config, stream_mode="updates"):
for node_name, node_output in chunk.items():
print(f"\n [节点: {node_name}] 正在处理...")
for msg in node_output.get("messages", []):
msg.pretty_print()
只是更改了下写法,但底层的变动还是蛮大的。现在LangChain团队主推DeepAgents,它是基于这两者之上更高层的封装,用法可能会更简洁些吧。可以多尝试下。