了解 Agentic AI 的架构师指南

了解 Agentic AI 的架构师指南

这篇文章于 2025 年 1 月 16 日首次出现在 The New Stack 上。通常,在了解一项受到大量炒作的新技术的合法性时,研究现有的核心能力和历史是有帮助的。如果所讨论的新技术不是基于现有或即将到来的功能,我们可以将其贴上“炒作”的标签并继续前进。历史可以帮助我们应用的另一个试金石只需要常识。新技术是否符合现有趋势?这是朝着进步方向迈出的下一个合乎逻辑的步骤吗?它是否解决了以前难以解决或无法解决的问题?在这份了解代理 AI 的架构师指南中,我希望表明代理 AI 是基于现有能力和触手可及的能力的 AI 的下一个合乎逻辑的进化进步。让我们先看看 AI 多年来的发展情况。许多人认为 AI 已经分三波发展,因此我将在下一节中介绍每一波 AI。为了好玩,我还将指出企业需要获得的额外资源才能在每一波 AI 浪潮中取得成功。

AI 的三大浪潮

第一波 AI 是传统 AI,有时也称为预测性 AI,这非常简单。给定模型的输入,进行预测。预测可以是唯一值(回归)、输入的分类或输入的分类。这些功能对于图像分类、电子邮件排序 (分类) 和预测销售 (回归) 等任务非常有用。第一波浪潮为我们带来了神经网络,这是一个由互连节点(神经元)组成的复杂系统,可以从数据中学习并根据训练数据中识别的模式进行预测。(以前,模型是使用预构建的算法创建的,具有实现特定结果的明确步骤。神经网络可以在数百甚至数千个值的输入中找到模式。为了在传统 AI 上取得成功,组织必须添加一个数据湖来存储训练集、验证集、测试集和模型本身。此外,通常需要通过向数据中心添加 GPU 来提高计算能力,因为这允许工程师在模型开发过程中运行更多实验。

unnamed20250210T165215038.png

AI 的三大浪潮

第二波 AI 为我们带来了生成式 AI,它可以生成新内容。这可以采取回答问题、总结冗长而复杂的文档,甚至是能够通过图灵测试的流利程度的完整对话。生成式 AI 为我们带来了大型语言模型 (LLMs),这些神经网络比第 1 波中引入的神经网络还要复杂。这些神经网络基于 2017 年论文“Attention is All You Need”中概述的编码器/解码器架构。今天,尖端LLMs的参数在数十亿,很快我们将有一个万亿参数LLM。为了成功使用 LLMs,组织必须向其数据中心添加一些额外的资源和工作负载,例如数据湖仓一体、检索增强生成 (RAG)、LLM微调、矢量数据库和自定义语料库(通常使用对象存储构建)。

现在,我们正在进入第三波浪潮,即代理 AI。代理 AI 系统可以计划、采取行动,甚至修改原始计划以改善结果。虽然前两波 AI 专注于预测和生成内容,但我们现在正在见证更复杂的东西的出现:AI 代理,它们可以独立计划、执行任务并在产生不良结果时修改原始计划。第三次 AI 浪潮代表了使用人工智能解决问题的方式的转变。与前几波相比,代理 AI 的成功需要更多的计算能力,并且可能需要编排工具来帮助LLMs管理规划。诚然,这最后一波听起来有点像科幻小说。这听起来与上一波相比太大了。毕竟,我们如何才能从可以回答问题、总结和交谈的生成式 AI 转变为可以规划、采取行动和修改的代理式 AI?为了解决这个问题,我们需要看看我们今天是如何使用的LLMs,看看只要多一点工程设计就可以做什么。我们还需要研究业务流程的剖析,并寻找代理 AI 可以增加价值的领域。

我们如何使用 LLMs Today

LLM今天使用所谓的“零镜头提示”。换句话说,要求 the LLM 仅使用 “首要” 信息或易于从参数存储器中访问的信息来尽快创建响应。例如,假设您有一个问题 “X” 要发送到 LLM.从本质上讲,您是在要求 执行以下作LLM:“请一次性回答我的问题 X 从头到尾,而无需使用退格按钮、删除按钮或箭头键返回并重做您答案的任何部分。不要将我的问题分解成更小的任务,也不要审查你的回答是否准确。这有时被称为要求 快速LLM思考。

令人惊讶的是,LLMs可以使用零镜头提示将连贯且有条理的响应放在一起,因为它们是机器。如果人类的大脑试图以这种方式进行交流,结果将是一连串毫无意义的文字。如果你在回答问题时考虑一下你的思考过程,你会注意到自己把原来的问题分解成更容易回答的小问题——把你所有的答案放在一起,形成对原来问题的答案,然后在你说话之前,你会回顾答案并可能修改它。所有人类都是这样想的 _ 没有人如此聪明,以至于他们的大脑可以以零镜头的方式运作并产生与计划和修改的反应一样好的结果。就连威廉·福克纳(William Faulkner)在写本吉·康普森(Benjy Compson)的“零镜头思想”时,也策划并修改了他的文本,本吉·康普森(Benjy Compson)在《声音与愤怒》(The Sound and the Fury)中是一个认知障碍者,感知支离破碎。

上面的两个例子引出了一个问题,“如果我们允许他们计划和修改,该怎么办LLMs?这就是代理 AI 的承诺:LLMs超越一次性响应,允许它们计划、审查和修改响应。但在我们讨论如何LLMs规划和修改之前,我们需要了解当今实施的业务流程的剖析。

业务流程剖析

所有业务流程都可以分解为两个平面:控制平面和工具平面。请参阅下图。工具平面是 API、存储过程和对业务合作伙伴的外部 Web 调用的集合。但是,对于已经开始 AI 之旅的组织,它还可能包括调用以“一次性”模式运行的传统机器学习模型(第 1 波)和LLMs(第 2 波)。

unnamed20250210T165223627.png

业务流程的控制平面和工具平面

控制平面包含业务流程的逻辑。在这里,条件分支、循环和对组织工具平面的调用被编排起来,以解决问题或实现自动化。要了解代理 AI 的价值和前景,您必须了解有关控制平面及其当今构建方式的两件事:

1 . 它在设计时是硬编码的。在运行时,它无法更改。

2 . 它是由可能不完全了解组织运营的领域的工程师构建的。此外,他们可能不熟悉工具平面中的所有功能。在金融服务等复杂行业运营的大型组织中尤其如此。

即使是独立的服务也可以被视为具有控制平面和工具平面,其中控制平面是使用程序语言的条件语句和循环结构构建的。工具平面是内置库和引用的第三方库的集合。最重要的是,您使用软件构建的任何内容都有一个控制平面和一个工具平面。

代理 AI 的承诺

代理 AI 的承诺是在充分了解组织工具平面的情况下使用LLMs,并允许他们构建和执行控制平面所需的逻辑。这可以通过向LLM已在组织工具平面上微调的 “few-shot” 提示来完成。下面是一个 “few-shot” 提示示例,它回答了前面提出的相同假设问题。这也被称为让LLM思考缓慢。

Few-shot 提示示例:

1 . 将我的问题 “X” 分解成更小的问题。

2 . 为每个较小的问题写一份草稿回答。

3 . 考虑需要修改或更多研究的小问题。

4 . 您需要任何其他研究吗?

5 . 修改您的答案。

6 . 把所有东西放在一起。

7 . 查看您的最终回复。

上述任务的假设是,较小的问题可以与用户LLM知道的内部工具配对,并且响应(或答案)伴随着确定性等级,表明该工具对答案的置信度。修改任务和审查最终答案等护栏是上述流程中最重要的步骤。如果代理 AI 似乎仍然由太多的魔法组成,那么请考虑下面的简单示例。每个必须每天编写代码的开发人员都可能会问一个LLM类似于下面的问题。

编写一个函数,用于创建连接到 MinIO 的可迭代样式数据集。

from minio import Minio
from minio.error import S3Error

class MinIOIterableDataset:
    def __init__(self, endpoint, access_key, secret_key, bucket_name, prefix='', secure=True):
        """
        Initialize the MinIOIterableDataset.

        :param endpoint: The endpoint of the MinIO server (e.g., 'localhost:9000').
        :param access_key: Access key for MinIO.
        :param secret_key: Secret key for MinIO.
        :param bucket_name: The bucket name to fetch objects from.
        :param prefix: Prefix to filter objects by (optional).
        :param secure: Use HTTPS if True, otherwise HTTP.
        """
        self.client = Minio(endpoint, access_key, secret_key, secure=secure)
        self.bucket_name = bucket_name
        self.prefix = prefix

        # Check if the bucket exists
        if not self.client.bucket_exists(bucket_name):
            raise ValueError(f"Bucket '{bucket_name}' does not exist.")

    def __iter__(self):
        """
        Iterator to fetch objects from the bucket.
        Yields:
            A dictionary containing object metadata and data content.
        """
        try:
            for obj in self.client.list_objects(self.bucket_name, prefix=self.prefix, recursive=True):
                data = self.client.get_object(self.bucket_name, obj.object_name)
                yield {
                    "object_name": obj.object_name,
                    "size": obj.size,
                    "etag": obj.etag,
                    "last_modified": obj.last_modified,
                    "content": data.read()
                }
                data.close()
                data.release_conn()
        except S3Error as e:
            raise RuntimeError(f"Error accessing MinIO bucket: {str(e)}") from e

# Example usage
if __name__ == "__main__":
    # Configuration
    endpoint = "localhost:9000"
    access_key = "your-access-key"
    secret_key = "your-secret-key"
    bucket_name = "my-bucket"
    prefix = "data/"  # Optional: Specify a prefix to filter objects

    dataset = MinIOIterableDataset(endpoint, access_key, secret_key, bucket_name, prefix)

    # Iterate over the dataset
    for item in dataset:
        print(f"Object Name: {item['object_name']}, Size: {item['size']} bytes")
        # Access the content with item['content'], e.g., item['content'].decode('utf-8')

ChatGPT 用于生成上述响应。我们在响应中看到的是,使用 Python 作为控制平面,用于编排对 MinIO SDK 和 PyTorch 中的函数的调用,它们是工具平面的示例。响应还告诉我们,ChatGPT 已经接受了 Python、MinIO 和 PyTorch 文档的训练。通过从 LLM的知识以及这些知识是如何获得的的角度分析这些结果,我们可以得出结论,训练LLM他们使用编排工具和组织的内部工具来动态生成业务流程的控制平面不会是一个太大的飞跃。

结论

代理 AI 是 AI 的下一个逻辑演变。它基于在 AI 的第一波和第二波中具有坚实基础的能力。承诺是使用 AI 来解决更复杂的问题,允许他们计划、执行任务和修改——换句话说,允许他们慢慢思考。这也有望产生更准确的响应。Agentic AI 没有捷径可走。代理 AI 可能是第三波 AI,但它并不能取代前两波。它建立在他们之上。因此,最好的开始方式是使用对象存储构建 AI 数据基础设施。对象存储还可用于云遣返和构建数据湖仓一体。从那里,通过添加 MLOps 工具和工作负载来支持LLMs堆栈,例如微调、检索增强生成 (RAG)、分布式计算和 MLOps。Agentic AI 没有捷径可走。代理 AI 可能是第三波 AI,但它并不能取代前两波。它建立在他们之上。因此,最好的开始方式是使用对象存储构建 AI 数据基础设施。对象存储还可用于云遣返和构建数据湖仓一体。从那里,通过添加 MLOps 工具和工作负载来支持LLMs堆栈,例如微调、检索增强生成 (RAG)、分布式计算和 MLOps。

上一篇 下一篇