LangGraph版本更新,创建Agent的方法已更改 / ai #58
下午在调试图数据库时发现有报错,发现是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,它是基于这两者之上更高层的封装,用法可能会更简洁些吧。可以多尝试下。
Leave LangGraph版本更新,创建Agent的方法已更改 / ai #58 to:
Read more #cn posts
Best Posts From lemooljiang
We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.