再“手搓”Agent了!一文带你快速掌握LangGraph,一篇就够了,建议收藏!
文章介绍LangGraph作为LangChain生态系统的升级版,通过"图"式结构替代"链"式结构,实现更复杂的智能体协作流程。通过代码对比展示了LangGraph如何简化工具调用流程,将原本需要手动处理的多步交互高度封装,让开发者能更专注于业务逻辑,提升开发效率,是构建智能体应用的强大工具。如果你接触过大模型应用开发,一定对LangChain不陌生。但随着应用逻辑越来越复杂,你是否也曾陷入管理“
文章介绍LangGraph作为LangChain生态系统的升级版,通过"图"式结构替代"链"式结构,实现更复杂的智能体协作流程。通过代码对比展示了LangGraph如何简化工具调用流程,将原本需要手动处理的多步交互高度封装,让开发者能更专注于业务逻辑,提升开发效率,是构建智能体应用的强大工具。
如果你接触过大模型应用开发,一定对LangChain不陌生。但随着应用逻辑越来越复杂,你是否也曾陷入管理“链(Chain)”的困扰?
为了解决这个问题,LangChain官方推出了一个强大的新成员——LangGraph。
那么:
- LangGraph到底是什么?
- 它和LangChain是什么关系?
- 我们应该如何使用它来构建更强大的智能体(Agent)应用?
本文将为你快速梳理LangGraph的核心概念,并附上可以直接运行的实战代码。
核心概念:LangGraph究竟是什么?
在深入代码之前,我们必须先理解几个核心问题:
-
- LangGraph与LangChain的关系是什么?
- LangGraph并不是一个独立的框架,而是LangChain生态系统的一部分。你可以把它看作是LangChain在 Agent功能上的“超级进化”。
- LangChain的核心是通过“链(Chain)”的方式,将各个功能组件(模型、提示词、工具)串联起来,像是一行行代码,按顺序执行。
- LangGraph则是通过“图(Graph)”的方式,将多个智能体(Agent)以节点的形式组织起来,实现更复杂的、带循环和条件判断的协作流程。
-
- Agent (智能体) 的作用
- 在LangGraph中,Agent是应用的基础,它封装了大语言模型的各种能力。LangGraph提供了一种更简单、更标准化的方式来构建和封装Agent。
- 你可以把Agent理解为一个“员工”,比如一个“程序员Agent”,他知道如何从框架设计到代码编写,再到测试部署的整个流程。
-
- Tools (工具) 与Function Calling
- Tools,即我们常说的 Function Calling (函数调用),是让大模型能够调用外部API或本地函数的能力。
- 当模型遇到自身知识无法解答的问题时(比如“今天几月几号?”),它不会胡编乱造,而是会请求调用你提供给它的工具(如一个获取当前日期的函数)。
- 这个过程通常需要两次交互:第一次模型判断需要用工具并返回请求,第二次程序执行工具后将结果返回给模型,模型再给出最终答案。
快速上手:LangChain与LangGraph代码实战
接下来,我们通过具体的代码案例,直观感受LangChain和LangGraph在实现方式上的区别。
-
- 环境搭建
首先,确保你已经安装了必要的依赖库。
# 安装LangGraph会自动安装LangChain的核心依赖
pip install langgraph
# 安装LangChain社区版,其中包含大量模型和组件的集成
pip install langchain_community
# 其他依赖
pip install dashscope
-
- LangChain方式:基础交互与工具调用
这是使用LangChain实现工具调用的标准流程,你需要手动处理模型与工具之间的两次交互。
第一次——让模型判断是否需要调用工具:
# 导入所需模块
import os
import datetime
from langchain.tools import tool
from langchain_community.chat_models import ChatTongyi
# 定义大模型(此处以阿里云通义千问为例)
llm = ChatTongyi(
model="qwen-plus",
api_key=os.environ["BAILIAN_API_KEY"]
)
# 使用@tool装饰器定义一个工具
@tool("get_current_date")
defget_current_date():
"""获取今天日期"""
return datetime.datetime.now().strftime("%Y-%m-%d")
# 大模型绑定工具
llm_with_tools = llm.bind_tools([get_current_date])
# 将所有工具放入一个字典
all_tools = {"get_current_date": get_current_date}
# 初始化消息列表
messages = ["今天几月几号"]
# 第一次交互:让模型判断是否需要调用工具
ai_msg = llm_with_tools.invoke(messages)
messages.append(ai_msg)
# 模型返回的工具调用请求
ai_msg.tool_calls
输出:
[{'name': 'get_current_date',
'args': {},
'id': 'call_98f4cf84e6604be684c0d3',
'type': 'tool_call'}]
第二次——调用工具,并将将工具结果发回给模型,获取最终答案:
# 如果有匹配的工具调用
if ai_msg.tool_calls:
for tool_call in ai_msg.tool_calls:
# 根据名称选择并执行工具
selected_tool = all_tools[tool_call["name"].lower()]
tool_message = selected_tool.invoke(tool_call)
# 将工具执行结果加入消息列表
messages.append(tool_message)
# 第二次交互:将工具结果发回给模型,获取最终答案
final_response = llm_with_tools.invoke(messages)
final_response.content
输出:
今天是2025年9月4日。
-
- LangGraph方式:一键封装,轻松交互
使用LangGraph,上面的复杂流程可以被极大简化。create_react_agent 方法将模型和工具直接封装成一个功能完备的Agent,你只需要与这个Agent对话即可。
from langgraph.prebuilt import create_react_agent
# 使用 LangGraph 将大模型和工具封装为一个 Agent
agent = create_react_agent(
llm,
tools=[get_current_date],
prompt='你是一个智能助手,你可以调用工具来回答用户的问题。'
)
# 直接与 Agent 对话,它会自动处理内部的工具调用流程
response = agent.invoke({"messages": "今天几月几号"})
response['messages'][-1].content
输出:
今天是2025年9月4日。
达到了相同效果。同时,通过对比可以发现,LangGraph将LangChain中需要手动处理的多步交互流程进行了高度封装,让开发者能更专注于业务逻辑,而不是底层的调用细节,极大地提升了开发效率。
希望这篇快速入门能帮助你对LangGraph建立清晰的认识,如果你也对LangGraph感兴趣,就赶快动手试试吧!
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型实战项目&项目源码👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战项目来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
为什么分享这些资料?
只要你是真心想学AI大模型,我这份资料就可以无偿分享给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!
这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
更多推荐
所有评论(0)