Type something to search...
完整指南:构建高效的多智能体系统与langflow的最佳实践!

完整指南:构建高效的多智能体系统与langflow的最佳实践!

AI代理概述

AI代理在生成式AI的领域并不新鲜,但在企业层面上,它们真正开始起飞仅仅是在过去的两个月里。

什么是AI代理?

Image 2

我们可以将AI代理定义为一个超专业化、目标导向和自主的AI实体,其特征由以下组件构成:

  • 一个作为代理大脑的大型语言模型
  • 一条设定代理使命的系统消息
  • 一个使管理代理组件更容易的编排层(LangChain、语义内核、自动生成等都是编排器的例子)
  • 提供对话上下文的记忆
  • 提供相关信息以供检索的知识库
  • 允许代理在周围生态系统中执行操作的工具。

例如,假设我们想为学生构建一个AI辅导助手。

Image 3

AI代理最显著的特征之一——标志着应用开发领域的范式转变——是它们可以被视为一组模块化、可共享和可重复使用的组件。

Image 4

但这并不是全部。遵循相同的逻辑,一个代理本身可以被视为一个可重复和可共享的组件,可以以不同的方式使用:

  • 作为独立代理
  • 作为另一个代理的工具
  • 作为多代理工作流的一部分

在多代理系统中,我们需要定义的一个关键元素是工作流设计——换句话说,就是我们的代理将如何协同工作。有三种主要类型的工作流:

  • 协作 → 代理可以自由地进行点对点的交流。
  • 层级 → 代理由一个管理代理调用和编排,该代理将始终是用户查询的第一个接触点。
  • 顺序 → 代理以“硬编码”的方式按顺序排列,使得一个代理的输出成为下一个代理的输入。

Image 5

请注意,在设计工作流时,我们可以添加任何我们需要的额外逻辑,包括循环、条件分支、回退等。

在下面的例子中,我们将保持简单,采用层级工作流,利用LangFlow作为图形界面。

LangFlow

LangFlow 是一个开源图形界面,旨在使使用LangChain变得简单直观。您可以直观地设计AI工作流,快速测试想法,并在几分钟内使您的项目变为现实。

此外,当涉及到AI代理时,LangFlow变得非常方便:正如我们上面提到的,AI代理具有模块化和可重复性,这与LangFlow的设计完美契合。实际上,LangFlow配备了一组组件(可以包括工具、LLM、记忆、vectorDB,以及您可以从头编写的自定义组件),这些组件最终可以发布在商店中(您还可以在这里找到其他贡献者的组件)。

要开始使用LangFlow,您需要通过

pip install langflow

安装它,然后运行以下命令在本地主机上启动它:

## Command to run LangFlow
langflow

为了更熟悉该工具,我建议您查看官方文档 here

构建您的电子商务多代理体验

商业场景:我们是一家攀岩电子商店的老板,我们希望通过创建一个多代理AI助手来提升客户体验。这个助手利用Azure OpenAI服务为我们的客户提供实时的智能支持,帮助他们:

  • 确定完美的攀岩装备
  • 获取美丽的徒步旅行灵感
  • 将商品添加到购物车

我们拥有以下资产:

  • 一个电子商务网站:

Image 6

  • 用户购物车的后端数据库:
  • 产品数据库:

Image 7

从用户界面,用户可以通过点击“添加到购物车”按钮将商品添加到购物车。然而,我们希望提供一个对话式用户界面,最终能够代表用户完成此操作。

当您初始化LangFlow时,您可以选择从商店中选择一个预构建的工作流开始,或者从空白画布草拟您的工作流,这正是我们要做的:

Image 8

如您所见,左侧有一个可以利用的组件完整列表。在这个场景中,我们将使用预构建组件和自定义组件的混合。让我们开始吧!

步骤 1:攀岩装备代理

我们要初始化的第一个代理是我们的销售代表。该代理将能够:

  • 从SQL数据库中检索产品信息
  • 将商品添加到我们的电子商务网站购物车中

我们需要的第一个组件是一个代理,我们可以用我们选择的大型语言模型进行配置。然后我们需要一个SQL工具,我将使用左侧菜单中可用的LangChain预构建组件:

Image 9

注意:由于我们将使用此SQL代理作为多代理系统的一部分,我们需要将其配置为“工具”,以便最终可以被我们的攀岩装备代理使用(我们也会对后者进行相同的操作,以便可以被经理代理调用)。您可以通过点击工具模式切换按钮将代理(以及许多其他组件)转换为工具:

Image 10

由于SQL组件需要它,我还添加了一个Azure OpenAI大型语言模型来启用该工具。

我们需要的第二个工具将是添加到购物车工具,这将是一个自定义工具。您可以通过点击左下角的“新建自定义组件”来添加自定义工具。这是我配置我的组件的方式:

from langflow.field_typing import Data
from langflow.custom import Component
from langflow.io import MessageTextInput, Output
from langflow.schema import Data
import requests

class AddToCart(Component):
    display_name = "AddToCart"
    description = "Use as a template to add an item to the cart."
    documentation: str = "http://docs.langflow.org/components/custom"
    icon = "code"
    name = "AddToCart"

inputs = [
        MessageTextInput(
            name="item_name",
            display_name="Item Name",
            info="Name of the item to add",
            value="Example Item",
            tool_mode=True,
        ),
        MessageTextInput(
            name="item_price",
            display_name="Item Price",
            info="Price of the item to add",
            value="10.00",
            tool_mode=True,
        ),
    ]

outputs = [
        Output(display_name="Output", name="output", method="build_output"),
    ]

def build_output(self) -> Data:
        """Add an item to the cart."""
        url = "http://localhost:3000/cart"
        cart_item = {
            "name": self.item_name,
            "price": float(self.item_price),
        }
        response = requests.post(url, json=cart_item)

        if response.status_code == 201:
            result = f"Item '{self.item_name}' added to cart successfully."
        else:
            result = f"Failed to add item to cart: {response.status_code} {response.text}"

        data = Data(value=result)
        self.status = data
        return data

这是我们第一个代理的整体配置:

Image 11

步骤 2:徒步旅行专家代理

对于这个代理,我们将保持简单,仅用作徒步旅行的超专业顾问。您可能会想——如果它甚至没有工具,为什么我们还需要一个代理?有时这可能是一个可以避免的额外层,然而超专业化和对特定主题的关注(即使没有工具)仍然是对整体多代理系统的好处,使最终用户体验更加准确。

因此在这种情况下,我们只需要另一个代理组件,并用适当的系统消息进行配置。

步骤 3:经理代理

第三个代理将是经理。在这种情况下,我们只需要一个代理组件,我用以下系统消息进行了配置:

您是一位熟练的客户服务经理和信息路由器。您的主要职责是使用可用的工具准确地解决用户询问并提供详细、有帮助的响应。您可以:

  • 从您的攀岩目录中检索装备名称
  • 提供关于徒步旅行的清晰指导
  • 将商品添加到购物车

如有必要,请使用多个工具来回答问题。

就这样!我们现在的团队准备好进行测试。

请注意,所有代理都有两个主要特性:名称和描述。这对于经理调用适当的代理至关重要(同样的推理适用于工具)。您可以通过点击代理组件中的“编辑工具”提供描述:

Image 12

这是最终配置(我添加了聊天输入和输出组件以完成工作流):

Image 13

请注意,您还可以将聊天记录添加到工作流中。为此,您可以利用外部记忆存储或LangFlow的表。您可以创建一个将记忆作为变量的提示,并将其连接到经理代理的系统消息中。

您是一个有帮助的助手,能够回答问题。

每当您被问及关于攀岩装备或徒步旅行的问题时,请利用您的工具。

历史:

{memory}

Image 14

要测试我们的助手,我们可以使用LangFlow在右上角提供的游乐场:

Image 15

如您所见,经理代理能够无缝地协调专家代理,最终,攀岩装备代理成功将我的装备添加到购物车中:

Image 16

您还可以在命令行中看到代理的思考:

Image 17

最后,您可以通过API消费您的工作流,并将其嵌入到任何应用程序中(在我们的案例中,即我们的电子商务网站)。

Image 18

结论

多代理系统无疑是生成式AI领域的一次飞跃,它们开始在企业中找到具体应用。决定您的工作流策略,以及您的代理的“专业化”(一个代理拥有许多工具与多个代理拥有少量或没有工具)是您规划策略的关键组成部分。

尽管没有黄金配方,但开始实验和理解不同工作流配置对业务的影响是非常重要的,以充分拥抱这一范式转变。

参考文献

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

阅读更多
使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...