掘金 人工智能 前天 16:27
使用LangGraph构建智能体
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

LangGraph是一种用于构建基于图的智能体框架。其核心思想是将复杂任务分解为称为“节点”的离散步骤,并定义节点之间的状态转换逻辑。通过一个共享状态将节点连接起来,节点可以读写此状态。实现LangGraph智能体通常涉及五个步骤:1.分解工作流程为节点;2.明确每个节点的具体操作类型(LLM、数据、动作、用户输入);3.设计包含原始数据的共享状态;4.将每个步骤实现为接收和返回状态的Python函数节点;5.将节点连接成可运行的工作流图。该框架强调错误处理、人工干预以及状态的原始数据存储原则。

🧩 **任务分解与节点化**:LangGraph的核心是将复杂任务分解为一系列称为“节点”的独立、离散的操作单元。每个节点专注于执行单一、明确的功能,例如理解用户意图、检索数据或执行外部动作。这种分解使得工作流程更加模块化和易于管理。

🧠 **节点类型与职能**:LangGraph支持四种主要的节点类型:LLM步骤(用于推理、生成文本)、数据步骤(用于信息检索)、动作步骤(用于执行外部操作)以及用户输入步骤(用于引入人工干预)。每种类型都有明确的职能,以应对智能体在不同场景下的需求。

📚 **共享状态与数据管理**:智能体内部的所有节点通过一个“共享状态”进行通信和协作。这个状态充当智能体的“笔记本”,记录所有中间信息和决策。关键在于存储原始数据而非格式化文本,以便在需要时进行灵活处理,并确保数据在跨步骤的持久性。

⚙️ **节点实现与错误处理**:每个节点被实现为一个Python函数,接收当前状态并返回更新后的状态。LangGraph将错误视为流程预设的一部分,并提供多种策略来处理瞬态错误、LLM可恢复错误、用户可修正错误以及开发者需要处理的意外错误,确保流程的鲁棒性。

🔗 **工作流图构建与连接**:通过定义节点之间的必要连接,将各个节点组合成一个可执行的工作流图。LangGraph的节点具备自行路由决策的能力,因此只需要少量关键的边来构成整个图结构,使得构建过程更加高效。

使用 LangGraph 构建智能体时,首先要将任务分解为称为 节点 的离散步骤。然后,需要描述每个节点不同的决策逻辑和状态转换方式。最后,通过一个 共享状态 将各个节点连接起来,每个节点都可以读写该状态。


要在 LangGraph 中实现智能体,通常需要遵循五个步骤。

第一步:将你的工作流程分解成一个个独立的步骤。

首先,确定流程中的各个步骤。每个步骤都将成为一个节点(一个执行特定操作的函数)。然后,绘制这些步骤之间的连接图。

第二步:明确每个步骤需要做什么

对于图中的每个节点,确定它代表什么类型的操作以及它需要什么上下文才能正常工作。

一般有以下4种类型的操作步骤:

分类详解与实例

步骤类型核心职能典型节点示例所需上下文(举例)
LLM 步骤
(大脑)
理解、推理、决策、生成分类节点:分析用户意图。
起草回复节点:生成回复内容。
• 原始用户输入
• 分类结果
• 公司回复风格指南
数据步骤
(记忆)
信息检索、数据查询文档搜索节点:从知识库查找答案。
客户历史查询:从数据库获取过往记录。
• 查询关键词(如订单号)
• 搜索范围/权限
动作步骤
(手脚)
执行实际操作、改变外部状态发送回复节点:将最终回复邮件发出。
创建工单节点:在追踪系统中创建Bug工单。
• 最终审定的回复内容
• 目标邮箱地址
• 工单详细信息
用户输入步骤
(监督)
引入人类判断、处理异常人工审核节点:将敏感或复杂回复交由人工审批。• 需要审核的回复草稿
• 触发送审的原因(如高金额退款)

第三步:设计你的共享状态

状态是你的智能体中所有节点都可以访问的共享记忆。你可以将其想象成你的智能体在处理流程中所使用的笔记本,用来记录它在此过程中了解到的一切信息和做出的所有决定。

设计状态就是为你的智能体 设计数据结构。一个精心设计的“共享笔记本”(状态)是构建一个高效、可靠且易于理解的智能体工作流的基石。它决定了节点之间如何通信,以及工作流的上下文如何得以保持。

哪些数据要保存在状态中?

这个数据是否需要跨步骤保持?如果需要,则将其置于状态中。如果能从其他数据中推导出,则在需要时计算,而不是将其存储在状态中。

💡 一个关键原则:你的状态应该存储原始数据,而不是格式化的文本。需要时,在节点内部进行格式化。

第四步:构建节点

构建节点就是我们将每个步骤实现为一个函数。LangGraph 中的一个节点就是一个 Python 函数,它接收当前状态并返回更新后的状态。

如何妥善处理节点中可能发生的错误?

错误类型谁来修复它修复策略何时使用
瞬态错误(网络问题、速率限制)系统(自动)重试策略临时故障,通常在重试后解决。
LLM 可恢复错误(工具故障、解析问题)LLM将错误存储在状态中并循环返回LLM能够发现错误并调整其方法
用户可修正的错误(信息缺失、说明不清晰)人类暂停需要用户输入才能继续
意外错误开发者让错误冒泡吧未知问题需要Debug

第五步:将节点连接起来

现在,我们将节点连接成一个可运行的工作流图。由于我们的节点能够处理自身的路由决策,我们只需要定义几条必要的边即可。

总结一下

通过以上步骤我们总结一下 LangGraph 的思维方式:

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LangGraph 智能体 AI 工作流 Agent Workflow AI Framework
相关文章