首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从 “0” 到 “1”!手把手教你用 LangGraph 搭建 AI Agent

AI Agent 作为一种强大的智能工具,能够高效地执行自动化任务、准确回答用户查询、快速进行数据处理等。

它的身影广泛地活跃在客户支持、智能推荐、内容生成等多个领域,极大地提升了工作效率和用户体验。

然而,AI Agent 领域所涉及的技术较为复杂,这常常让刚踏入 AI 领域的开发者以及对 Agent 系统充满好奇的初学者望而却步。

不过,现在有了 LangGraph 这个得力助手,即使是零基础的新手也能轻松创建一个简单但功能齐全的 AI 代理,逐步拆解基础知识,快速开启 AI 代理构建之旅。

本文将分为两个部分进行详细讲解,帮助你快速入门:第一部分是 LangGraph 的组成部分;第二部分是构建和执行你的第一个 AI 代理。

构建 AI 代理的价值远不止于实现某些任务的自动化,它还体现在多个重要方面,例如提高效率、增强用户体验、便捷的构建与部署等。

接下来,让我们深入了解如何使用 LangGraph 来构建 AI 代理。

一、LangGraph 中图的主要组成部分

1.1 节点

在 LangGraph 中,节点本质上是 Python 函数。它接收图的状态作为首个参数,通过这个参数,节点能够获取 Graph 中的动态信息,并对状态进行更新,从而实现与 Graph 的交互。每个节点的操作都是基于对共享状态的处理和修改展开的。默认情况下,节点还会覆盖前置状态值。

1.2 边

边在图中可以视为连接两个节点的桥梁,它将两个端点连接在一起。边主要分为以下两种类型:

普通边

指的是没有设置任何条件的边,只要流程执行到该节点,就会按照边的连接顺序进入下一个节点。

条件边

仅在特定条件满足时才会被遍历的边。它会根据一系列逻辑判断和条件语句(通常使用 if 和 else 语句)来返回下一个要访问的节点名称。

1.2.1 额外知识点

孤立节点

在图论中,孤立节点是指没有任何边与其他节点相连的节点(顶点),它完全与图中的其他部分断开,度数为 0。

状态

状态是在图形的不同节点和边之间传递的对象,它通常是处理图时首先定义的关键要素。在构建的过程中,状态对象承载了必要的上下文信息,为各个组件之间的交互提供了标准化的数据格式。

二、构建一个简单的 Graph

2.1 构建 Graph 节点

在构建图时,我们首先需要明确图应该执行的功能,然后将这些功能构思转化为普通的 Python 函数,这些函数就是图中的节点。以下是三个简单的节点示例:

从上述代码可以看出,每个节点都会对图形状态进行修改。在 Python 中运行这段代码时,可能会收到关于未定义图形状态的警告,不过不用担心,接下来我们会进行处理。

2.2 构建 Graph 状态

Graph 的状态对象用于维护 Graph 中当前活动的短期记忆,并作为参数传递给每个节点。在 LangGraph 中,我们可以利用 TypedDict、Pydantic 和内置类来构建和管理这些状态对象。为了保持实现的简单性和清晰度,我们选择使用 TypedDict 来定义图形状态:

此时,我们的状态包含了一个名为 graph_msg 的变量,用于储存 Graph 的消息。通过前面节点的代码,我们可以清楚地看到变量是如何在每个 Graph 节点中被更新的。

2.3 构建实际 Graph

现在我们已经准备好所需的组件,接下来就可以开始构建实际的 Graph 了。首先,我们需要传入 Graph 的状态,并使用 LangGraph 中的类来完成构建,这里我们将导入 StateGraph 类。

2.4 添加所有的节点

我们可以通过以下代码将所有节点添加到 Graph 中:

其中,START 是一个特殊的节点,它用于将状态传递给 Graph,以初始化 Graph 代理,标志着执行的起点;END 是另一个特殊节点,用于指示终止点。

2.5 添加边

接下来,我们继续向 Graph 添加边:

2.6 编译 Graph

在完成设置后,我们需要对 Graph 进行编译。编译 Graph 时会执行一些操作,例如检查孤立节点是否存在,以及对 Graph 结构进行其他检查。以下是编译 Graph 的代码:

2.7 Graph 可视化

为了直观地查看 Graph 的结构,我们可以使用 Python 代码对创建的 Graph 进行可视化。需要注意的是,为了确保代码正常运行,请从 Python 笔记本运行。以下是可视化 Graph 的代码:

从可视化的图中,我们可以清晰地看到条件边用虚线表示,正常边用实线表示。

2.8 Graph 调用

完成 Graph 的编译后,我们就可以调用 Graph 了。在调用 Graph 时,需要注意以下几点:

编译后的 Graph 在 LangChain 中实现了可运行协议,这使得我们能够像处理 LangChain 中的其他链一样处理 Graph。

调用 Graph 时,需要传入它的状态。

每个节点都将接受当前状态并覆盖它。

执行将持续进行,直到到达 graph 的终止点。

invoke 方法异步运行 Graph,在移动到下一个节点之前,会等待每个节点完成。

Graph 在所有节点处理完成后,会返回最终的状态。

我们可以通过以下代码调用 Graph:

以上就是使用 LangGraph 创建 AI 代理的关键代码和步骤。

恭喜你迈出了成为 AI Agent 构建者的第一步,希望你在后续的学习和实践中不断探索,创造出更强大、更智能的 AI 代理!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OQtkBQZtntayMISdqcdJOvSw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券