LangGraph版本更新,创建Agent的方法已更改 / ai #58

下午在调试图数据库时发现有报错,发现是create_react_agent这个函数已被弃用!赶紧查下,LangGraph的官网上还没更新,但LangChain上给出了最新的写法create_agent

langgraph.jpg

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_agentfrom 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,它是基于这两者之上更高层的封装,用法可能会更简洁些吧。可以多尝试下。

Sort:  

Congratulations @lemooljiang! You received a personal badge!

Happy Hive Birthday! You are on the Hive blockchain for 10 years!

You can view your badges on your board and compare yourself to others in the Ranking