使用 LangGraph 构建 AI Agent:添加工具

LangGraph实战:如何用MemorySaver为Agent添加短期记忆(附完整代码) 本文详细介绍了如何利用LangGraph的MemorySaver组件为智能体(Agent)添加短期记忆功能。通过实战代码演示,阐述了如何通过检查点机制管理会话状态,实现多轮对话的上下文关联,从而解决智能客服等场景中Agent“说完就忘”的问题,提升交互体验。 阅读详情

本文将带你掌握:工具创建(预制/自定义/服务器端)、工具节点、带工具调用的条件边、结构化输出,以及监控Token消耗的回调函数。代码可直接运行,让我们开始吧!

一、什么是LLM的工具?

简单说,工具就是你想让基础模型执行的任何函数。

关键区别在于:LLM无法看到函数代码来推断其功能——它需要一份清晰的描述,说明函数的作用、输入参数和返回结果。

你可以把普通模型想象成装在罐子里的大脑:它懂语言、会推理、甚至有记忆(来自训练数据),但无法接触外部世界。而工具就是赋予这个大脑的“身体”。有了工具,模型就能搜索网络、整理文件、分析数据库、执行代码——做任何你的函数允许的事。

那么从哪里获取工具呢?

  1. 自定义工具:像写普通函数一样创建
  2. 预制工具:使用LangChain集成工具[1],涵盖各种常用场景
  3. 服务器端工具:某些聊天模型内置在服务器端执行的工具,特别是网页搜索和代码解释器

二、创建你的第一个工具

编写工具非常简单。假设你需要一个获取天气数据的工具(这里我们简化实现,直接返回固定答案):

def get_weather(city: str) -> str:    return f"It's rainy in {city}."

要让LLM将其识别为工具,需要用@tool装饰器包装,并提供清晰的文档字符串,这部分描述将成为工具提示的一部分:

from langchain.tools import toolfrom dotenv import load_dotenvload_dotenv()  # 加载环境变量(如OPENAI_API_KEY)@tool(parse_docstring=True)def get_weather(city: str) -> str:    """返回指定城市的天气状况。    Args:        city (str): 要查询的城市    Returns:        str: 天气描述    """    return f"It's rainy in {city}."

快速体验:使用ReAct代理

为了演示代理如何使用工具,我们先使用LangChain内置的ReAct代理[2](最流行的预定义智能工作流)。在这种工作流中,代理规划、反思并使用可用工具执行操作。

ReAct代理工作流程

我们像之前一样调用代理,并添加InMemorySaver作为记忆存储(这是一种checkpoint[3]实现):

from langchain.agents import create_agentfrom langchain_core.messages import HumanMessagefrom langgraph.checkpoint.memory import InMemorySaver# 创建检查点(记忆)存储checkpointer = InMemorySaver()config = {"configurable": {"thread_id": "1"}}  # 区分不同对话线程# 创建带有天气工具的代理agent = create_agent(    model="openai:gpt-4o",     tools=[get_weather],     checkpointer=checkpointer)# 对话循环whileTrue:    query = input("query: ")        new_state = agent.invoke(        {"messages": [HumanMessage(query)]},        config,    )    answer = new_state["messages"][-1].content  # 获取最后一条消息内容    print("answer:", answer)# 输出示例:# query: hello# answer: Hello! How can I assist you today?# query: what's the weather like in Cracow?# answer: The weather in Cracow is currently rainy. Is there anything else you'd like to know?

注意:在LangChain旧版本中,此函数名为create_react_agent,你可能在其他资料中看到这个名称。

三、为LangGraph代理添加网络搜索

现在回到上篇文章的代理工作流,我们为它添加真正的网络搜索能力!

与其自己编写搜索工具,不如直接导入DuckDuckGoSearchResults。为了让LLM“知道”这个工具,我们将其绑定到模型上:

from langchain_community.tools import DuckDuckGoSearchResults# 创建两个模型实例:一个普通版,一个带工具版model = init_chat_model("openai:gpt-4o")model_with_search = model.bind_tools([DuckDuckGoSearchResults()])  # 关键:绑定工具!

更新ask_llm函数,使用带工具的模型:

def ask_llm(state: State) -> State:    user_query = input("query: ")    user_message = HumanMessage(user_query)        # 使用带搜索工具的模型    answer_message: AIMessage = model_with_search.invoke(        state["messages"] + [user_message]    )        return {"messages": [user_message, answer_message]}

关键组件:ToolNode

现在模型响应可能包含工具调用,但我们需要执行这些调用。使用预定义的ToolNode:

from langgraph.prebuilt import ToolNode# 添加工具执行节点graph.add_node("web_search", ToolNode(tools=[DuckDuckGoSearchResults()]))

条件边:智能判断是否需要搜索

但并非每次都需要调用工具——有些问题不需要网络搜索就能回答。我们需要检查是否有工具调用:有则执行并总结结果,无则直接提供答案。

使用tools_condition函数,它根据模型响应返回"tools"(需要执行工具)或END(不需要):

def show_answer(state: State) -> State:    print("answer: ", state["messages"][-1].content)    return {"iteration": state["iteration"] + 1}def sum_up_search(state: State) -> State:    # 使用普通模型(无工具)总结搜索结果    answer_message: AIMessage = model.invoke(state["messages"])    return {"messages": [answer_message]}# 构建完整工作流graph.add_edge(START, "ask_llm")graph.add_conditional_edges(    "ask_llm",    tools_condition,  # 判断是否需要工具    {        "tools": "web_search",  # 需要工具 → 执行搜索        END: "show_answer",     # 不需要 → 直接显示答案    },)graph.add_edge("web_search", "sum_up_search")graph.add_edge("sum_up_search", "show_answer")graph.add_conditional_edges(     "show_answer",     lambda state: state["iteration"] < ITERATION_LIMIT,     {         True: "ask_llm",         False: END,     }, )

完整的工作流程如下:

  1. 用户提问 → LLM接收并判断是否需要工具
  2. 需要工具 → 执行工具 → LLM总结结果 → 显示答案
  3. 不需要工具 → 直接显示答案
  4. 检查迭代限制 → 继续循环或结束

完整代码示例:

from langgraph.graph import StateGraph, START, ENDfrom langchain.chat_models import init_chat_modelfrom langchain_core.messages import HumanMessage, AIMessagefrom langgraph.prebuilt import ToolNode, tools_conditionfrom langchain_community.tools import DuckDuckGoSearchResultsfrom langchain.agents import AgentStatefrom dotenv import load_dotenvclass State(AgentState):    iteration: intITERATION_LIMIT = 5load_dotenv()# 初始化模型model = init_chat_model("openai:gpt-4o")model_with_search = model.bind_tools([DuckDuckGoSearchResults()])# 定义各节点函数(同上文ask_llm、show_answer、sum_up_search)# 构建图graph = StateGraph(State)graph.add_node("ask_llm", ask_llm)graph.add_node("web_search", ToolNode(tools=[DuckDuckGoSearchResults()]))graph.add_node("show_answer", show_answer)graph.add_node("sum_up_search", sum_up_search)# 连接节点(同上文条件边设置)# ...(连接代码见上文)workflow = graph.compile()# 可视化图结构(可选)with open("graph_search.png", "wb") as f:    f.write(workflow.get_graph().draw_mermaid_png())# 运行代理workflow.invoke({"iteration": 0}, {"recursion_limit": 100})
```![](http://cdn.zhipoai.cn/93c2db74.jpg)

带网络搜索的代理工作流

**运行示例**:

```plaintext
query: hianswer: Hello! How can I assist you today?query: what are popular events in Cracowanswer: Here are some events in Kraków you might be interested in:1. **Unsound Festival**: This is an annual festival that showcases electronic and experimental music...2. **European Games 2023**: Kraków and the Malopolska region recently hosted the European Games...

四、智能关闭:让代理听懂“再见”

目前聊天机器人运行固定的迭代次数,用户体验不佳。理想情况是:当用户表示结束对话时(如说“再见”、“今天就到这里”),代理能智能关闭。

如果你的直觉告诉你要用条件边,完全正确!但需要一点技巧。

首先,如何判断用户想结束对话?你可以列出结束语列表,但这太原始且麻烦。更好的方法是让LLM来评估——判断用户是否想结束对话对模型来说是简单任务。

然而,条件边需要明确的返回值集合。用LLM判断时,我们得到的是完整消息,每次都不一样。所以必须使用结构化输出来强制模型返回指定格式。

结构化输出:让LLM“填空”

要强制LLM使用特定格式,首先需要定义它。我们使用pydantic创建类,指定属性、类型和描述:

from pydantic import BaseModel, Fieldfrom typing import Literalclass Decision(BaseModel):    decision: Literal["yes", "no"] = Field(        description="用户是否指定结束对话(是/否)"    )

定义格式后,用with_structured_output方法强制LLM使用,类似bind_tools:

# 创建带结构化输出的模型model_decision = model.with_structured_output(Decision)def end_condition(state: State) -> Literal["yes", "no"]:    # 注意:不需要整个消息历史来做决定,可以只使用最近的消息(优化点)    decision: Decision = model_decision.invoke(        state["messages"] + [SystemMessage("用户是否想结束对话?")]    )    return decision.decision

整合智能关闭到工作流

在检查迭代次数后添加智能关闭条件。需要一个虚拟节点来连接两个条件边:

def should_end(_: State) -> State:    return {}  # 虚拟节点,不改变状态# 添加到图中graph.add_node("should_end", should_end)# 在show_answer后添加迭代检查graph.add_conditional_edges(    "show_answer",    lambda state: state["iteration"] < ITERATION_LIMIT,    {        True: "should_end",  # 未达迭代限制 → 检查是否结束        False: END,          # 达到限制 → 直接结束    },)# 添加智能结束判断graph.add_conditional_edges(    "should_end",    end_condition,  # 调用上面定义的判断函数    {        "yes": END,   # 用户想结束 → 结束        "no": "ask_llm",  # 用户不想结束 → 继续提问    },)

完整智能关闭代码结构:

# ...(前面导入和定义同上)class State(AgentState):    iteration: intclass Decision(BaseModel):    decision: Literal["yes", "no"] = Field(        description="whether the user specified to end the conversation (yes) or not (no)"    )# 初始化三个模型版本model = init_chat_model("openai:gpt-4o")model_with_search = model.bind_tools([DuckDuckGoSearchResults()])model_decision = model.with_structured_output(Decision)# 定义各节点函数(ask_llm, show_answer, sum_up_search, end_condition, should_end)# 构建完整图结构graph = StateGraph(State)# ...(添加所有节点)# ...(连接所有边,包括智能关闭条件边)workflow = graph.compile()workflow.invoke({"iteration": 0}, {"recursion_limit": 100})
```![](http://cdn.zhipoai.cn/04cf3378.jpg)

带智能关闭的代理工作流

**运行效果**:

```plaintext
query: hianswer: Hello! How can I assist you today?query: that's it for todayanswer: Alright, if you have any more questions in the future, feel free to ask. Have a great day!# 对话智能结束

五、监控与回调:了解你的Token消耗

你已经见过回调的一种用法:在ReAct代理中记忆状态。另一个重要用途是监控Token使用量。

通常,你可以直接从AIMessage检查Token使用情况:

answer: AIMessage = model.invoke({"messages": [HumanMessage("hi")]})print(answer.usage_metadata)# 输出类似:{'input_tokens': 15, 'output_tokens': 8, 'total_tokens': 23}

如果使用结构化输出,消息没有usage_metadata字段,但仍可以通过回调检查:

from langchain_core.callbacks import UsageMetadataCallbackHandlercallback = UsageMetadataCallbackHandler()answer: Decision = model_decision.invoke(    state["messages"] + [SystemMessage("用户是否想结束对话?")],    config={"callbacks": [callback]}  # 传入回调)print(callback.usage_metadata)

练习建议:监控每次模型调用的输入/输出Token总数(无论是否使用结构化输出),并在每次响应后打印计数。

写在最后

通过本文,你已经掌握了为LangGraph代理添加工具的核心技能:

  1. 创建三类工具:自定义工具、预制工具、服务器端工具
  2. 实现条件工作流:智能判断何时使用工具
  3. 结构化输出:强制LLM返回可预测格式
  4. 智能对话管理:让代理理解结束意图
  5. 资源监控:跟踪Token消耗

这些技能让你的AI代理从“空谈理论”变为“能办实事”——它现在可以搜索网络、查询数据、智能判断对话状态,真正成为有用的助手。

小挑战:尝试修改end_condition函数,只使用最近的几条消息(而非整个历史)来判断是否结束对话。这能减少Token消耗并提高响应速度。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

LangSmith与LangGraph深度解析:构建下一代AI Agent的基石 LangSmith与LangGraph不仅代表着技术工具的进步,更预示着一个新纪元的开启:当AI系统的开发过程变得完全透明可控,当复杂认知任务的编排如同搭积木般简单,人类终于站在了构建可靠智能系统的门槛之上。这两个组件的演化轨迹,正勾勒出未来AGI开发平台的雏形——在这里,每个开发者都能像指挥交响乐团般,优雅地驾驭智能的洪流。 阅读详情

相关推荐

用 LangGraph 构建 Agent 逐步指南

LangGraph是一个构建于LangChain之上的高级库,旨在通过引入循环计算能力来增强您的大型语言模型(LLM)应用。虽然LangChain允许创建用于线性工作流的有向无环图(DAG),但LangGraph更进一步,支持添加循环,这对于开发复杂的、类似智能体的行为至关重要。这些行为使得LLM能够持续循环执行某个过程,根据不断变化的条件动态决定下一步要采取的行动。LangGraph:结点、状态和边LangGraph的核心概念是状态图状态:表示在计算过程中维护和更新的上下文或记忆。

计算机科学、人工智能、数据分析和大数据方向的研发和教学。 2422

探索LangGraph:开启AI Agent构建的新路径

在 LangGraph 中,可以使用多种方式构建状态对象,为了简单起见,本文使用 TypedDict 来定义状态类。例如,我们定义一个包含graph_msg字符串变量的状态类,用于存储图的消息:​​​​​​​。

llm_way的博客 1549

【人工智能】使用 LangGraph 构建生产级 AI Agent

LangGraph 的灵感来源于 Pregel 和 Apache Beam,这两个框架分别用于大规模图处理和构建可扩展的数据处理管道。LangGraph 的公共接口灵感来自于 NetworkX,这是一个用于复杂网络分析的 Python 库。因此,LangGraph 结合了这三个项目的优点,提供了灵活性和强大的功能来操作图数据结构。LangGraph 的核心思想是把 Agent 的工作流以图(graph)的方式进行建模。

奶爸的编程之路,也就一周冷个三天 1103

从零开始:LangGraph初学者指南!构建你的第一个AI Agent!

在构建的过程中,状态对象承载了必要的上下文信息,为各个组件之间的交互提高标准化数据格式话不多说,现在开始!动手来!一定要动起手来跑!AI发展飞快!只有动手了,才知道里面会遇到什么问题,才能知道,底层原理是什么!我给大家准备了一份全套的《AI大模型零基础入门+进阶学习资源包》,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓。

qq_41314882的博客 1432

RV1126上YOLOv8部署实战:从模型转换到板端推理的完整避坑指南

本文提供了在瑞芯微RV1126芯片上部署YOLOv8目标识别算法的完整实战指南。内容涵盖从模型转换、环境搭建到板端推理代码编写的全流程,重点解析了RKNN-Toolkit使用、量化配置、内存优化及后处理实现等关键环节的常见问题与解决方案,旨在帮助开发者高效避坑,实现边缘AI应用的稳定落地。

pz89012345的博客 568

从2D到3D地图开发:手把手教你用Cesium+Three.js实现卫星轨迹可视化(含代码片段)

本文详细介绍了如何结合Cesium与Three.js实现从2D到3D的卫星轨迹可视化。通过对比传统Web GIS框架的局限,阐述了Cesium处理三维地理与轨道数据、Three.js负责高级图形渲染的分工优势,并提供了从环境搭建、坐标同步到动态粒子效果实现的完整代码实战指南。

nut55的博客 672

使用LangGraph构建你的第一个AI Agent-附完整代码

定义一个名为 ‘State’ 的 TypedDict,用于结构化个工具方法的状态数据。

ytt0523_com的博客 1762

PyQt5混搭qfluentwidgets实战:用FramelessWindow快速打造现代化界面

本文详细介绍了如何将PyQt5与qfluentwidgets组件库结合,利用FramelessWindow快速打造现代化无边框界面。通过环境配置、核心特性解析、组件混用技巧及高级样式定制,帮助开发者提升桌面应用的用户体验和美观度,特别适合需要现代UI设计的Python开发者。

sugar的博客 969

【保姆级】手把手教你用LangGraph搭建AI Agent(附详细代码),远比你想的更简单!

       你是否遇到过这种尴尬:在对客户演示AI智能体时,本应流畅自动的流程却反复请求澄清、决策混乱? 工程师Paolo Perrone在曾经历这种惨痛失败后反思发现,自己对智能体架构理解有误,构建的系统过于复杂,决策界限模糊,缺乏清晰的推理路径。只要理解了核心原理,构建高效的agent实际上远比想象中简单。 本文将分享这一经验,带你从零开始深入理解AI智能体,学会用LangGraph搭建自己的AI Agent。

EnjoyEDU的博客 3569

ESP32对接百度智能云语音识别:从硬件配置到API调用的完整指南

本文详细介绍了ESP32对接百度智能云语音识别的完整流程,从硬件配置到API调用,涵盖麦克风选择、音频处理、错误处理及性能优化等关键环节。通过实战案例展示如何实现低成本、高效率的语音交互方案,特别适合智能硬件开发者参考。

weixin_29198045的博客 373

ExoPlayer硬解码实战:如何绕过系统默认软解码提升播放性能(附完整代码)

本文深入剖析了ExoPlayer默认解码器选择机制的不确定性,并提供了通过自定义MediaCodecSelector强制启用硬解码的完整实战方案。该方案能有效解决因软解码导致的播放卡顿、黑屏花屏及高功耗问题,显著提升Android应用在各种设备上的视频播放性能与稳定性。

weixin_29295541的博客 456

手把手教你用LangGraph搭建AI Agent(附详细代码),远比你想的更简单!

本文将分享这一经验,带你从零开始深入理解AI智能体,学会用LangGraph搭建自己的AI Agent。

kaka0722ww的博客 1547

MacBook 长期挂机 OpenClaw:电池保护 + 防休眠设置

本文介绍了MacBook长期挂机运行OpenClaw时的电池保护和防休眠设置方案。主要内容包括:1)电池保护策略,通过电源连接、充电限制和定期充放电维护电池健康;2)防休眠设置,禁用系统休眠、自动休眠和屏幕休眠;3)OpenClaw的Docker部署方法。文章提供了详细的命令行脚本和配置说明,帮助用户实现MacBook的长期稳定运行,同时保护电池寿命。

一键难忘的博客 1695

Mem0实战:为LangGraph+Agent添加持久记忆能力(代码教程)

本文介绍了Mem0这一面向AI Agent的通用长期记忆层,详细讲解了如何结合LangGraph框架实现具备长期记忆能力的AI Agent。文章从Mem0的核心功能出发,提供了完整的代码实现,包括创建Mem0客户端、定义聊天状态、构建核心聊天节点和Agent。通过Mem0,AI Agent能够存储和检索用户历史交互信息,实现个性化上下文感知的回复,提升智能应用的持续学习能力。

2401_85343303的博客 1624

24、JavaFX MP3 音频播放器开发详解

本文详细介绍了如何使用JavaFX开发一个功能丰富的MP3音频播放器,涵盖文件拖放加载、音频播放控制、音频频谱可视化、进度定位滑块等核心功能,并提供了完整的代码实现和解析。适合希望学习JavaFX多媒体应用开发的开发者参考。

wind6的博客 170

构建栅格地图matlab代码

1 使用MATLAB实现地图栅格化 效果图如下所示 图1 ...

qq_59747472的博客 4518

【干货】LangGraph底层API实现多轮问答机器人和ReACT智能体完整教程!

本文详细介绍了使用LangGraph底层API构建多轮对话机器人和复现ReACT智能体的方法。通过定义状态结构、添加模型和工具节点,结合条件分支图实现工具调用与决策循环,并以天气助手实例演示完整开发流程。文章帮助开发者掌握LangGraph的灵活性与强大功能,为构建复杂AI Agent奠定基础。

m0_65555479的博客 1270

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

LangGraph实战揭秘:如何用「有向循环图」实现AI Agent的自主决策与工具链开发?

Agent + Tool - Skills(内置了一些Skills)Skills(元数据 name ,description —> 决定调用什么工具;指导说明书SKILL.md —> 怎么调)Agent会先调用read_file通过加载这个skill.md了解具体的调用方法。

lvuchenliu的博客 309

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LangGraph - 02:集成外部工具,增强 Agent 能力

在LangGraph中实现工具调用,主要围绕着以下三个核心概念。理解了它们,可以帮助我们掌握通过 LangGraph 实现 Agent 的工具集成。

2301_81940605的博客 1345

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

从原型到量产:经40+落地案例验证的AI Agent 7步实操路线图

企业AI落地中,AIAgent常面临"实验室可用、生产不可用"的困境。本文基于40+实战案例,提出7步量产路线图:1)选型适配的LLM(不盲目追求大模型);2)集成必需工具与API(定义严格I/O规范);3)定义Agent逻辑(从简单到复杂迭代);4)添加记忆模块(区分短期/长期记忆);5)分配单一明确任务;6)构建多Agent系统(需协调者Agent);7)渐进式部署。核心建议:60%资源投入基础步骤,坚持"单一Agent精通>多Agent复杂",小步快跑迭代。AI

释迦呼呼的博客 1913

用LangGraph、 Ollama,构建个人的 AI Agent

事实上,AI Agent 的研究还处于早期阶段,该领域还没有明确的定义。但是 Astra 和 GPT-4o 已经可以成为一个很好的早期示例了。NVIDIA 高级研究员、AI Agent 项目负责人 Jim Fan表示我们距离出现一个有实体的 AI Agent 或者说以 ChatGPT 作为内核的机器人,还有大约 3 年的时间。如果用他话来解释什么是 AI Agent,简单来说,AI Agent 就是能够在动态世界中自主决策的 AI 模型和算法。

了解关于云主机、GPU、AI、数据库托管、Kubernetes等相关技术知识,以及DigitalOcean云平台使用教程 4988

LangGraph从零构建生产级 AI Agent 平台的递进式学习项目

本文介绍了《LangGraph 实战系列》的整体学习路线与项目规划,涵盖 LangGraph 基础、Tool Calling、Memory、Reasoning Agent、Multi-Agent 及生产级 AI Agent 平台构建,帮助开发者从原理到工程化系统掌握 AI Workflow 与 Agent 编排能力。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 3万+

LangGraph 构建Agent

LangGraph是LangChain团队推出的状态化工作流框架,专为构建复杂多步骤的AI代理和工作流设计。其核心是将AI应用逻辑抽象为图结构,支持循环、分支和状态持久化,适用于需要长期记忆和多轮决策的场景。与LangChain相比,LangGraph更专注于流程管理,两者常结合使用。

weixin_42828342的博客 1325

LangGraph:构建AI Agent的利器

传统的LLM应用往往是线性的,即用户输入一个问题,模型生成一个回答。然而,现实世界中的许多任务并非如此简单,它们可能需要模型进行多轮交互、调用外部工具、进行决策甚至自我修正。LangGraph通过引入“图(Graph)”的概念,将这些复杂的交互和决策过程可视化并模块化,从而使得构建复杂的Agent成为可能。简单来说,LangGraph允许定义一个有向图,其中每个“节点(Node)”代表一个操作(例如,调用LLM、执行工具、处理数据),而“边(Edge)”则定义了这些操作之间的流程和条件。

m0_64363449的博客 1356
上一篇: LLM智能体自我进化教程(非常详细),SKILLRL框架从入门到精通,收藏这一篇就够了!
下一篇: MegaFlow分布式编排系统全解(非常详细),Agent时代架构从入门到精通,收藏这一篇就够了!
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值