本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
代理基础知识
在讨论架构细节之前,我们应该概述代理所扮演的不同角色,因为 “代理” 是一个超负荷的术语,可以应用于许多用例。让我们从一些可以帮助对它们进行分类的宽泛术语开始。
在最外层面,我们需要首先对代理的角色和性质进行分类。这具有挑战性,因为在各种各样的场景中,代理可以应用于任意数量的问题。不过,在本次讨论中,我们将重点介绍在应用程序或系统中引入代理意味着什么。在此模型中,我们强调代理如何以及在何处最好地丰富您的系统体验。您选择的选项会影响代理的构建、集成以及应用于不同域和用例的方式。下图显示了生成器使用的两种代理模式。
图的左侧是基于交互的代理。在此模式下,代理创建现有系统的视图,以协调与底层服务的交互以实现目标或结果。关键是要将代理添加到系统中,作为驱动系统特性和功能的替代方法。例如,想象一下,独立软件供应商 (ISV) 的会计系统带有用于执行操作的用户体验。基于交互的代理简化了与这些现有功能的交互。与其说是学习如何实现定义宽松的目标,不如说是提供一种编排已知途径的方法。
相比之下,图右侧的基于任务的系统代表了一种不同的方法。该系统中的代理利用他们的知识和能力来学习完成任务并推动业务成果。你可能会争辩说,这两种模式都能实现业务成果,但是基于任务的模型依赖代理本身来决定如何实现结果。这些代理人的确定性较低,而是依赖于他们的学习和进化能力。相比之下,基于交互的代理主要是为了协调一组已知功能而设计的。这些差异会影响您如何构建、确定范围和集成代理以支持您的业务。
我们还需要能够描述我们部署代理的方式和地点的术语。代理在系统占地面积内的位置会影响其构建、范围和保护方式。下图概述了两个可以应用于代理的不同模型。
图的左侧是一个包含三个不同代理的部署系统。这些代理会暴露给外部客户端,这些客户机可能是其他代理或应用程序。在此模型中,代理被称为公共代理。
相比之下,右侧的图表显示了解决方案实施中的代理。在这种情况下,有一系列应用程序服务由用户或系统使用。这些用户在与应用程序交互时没有意识到代理是体验的一部分。然后,底层系统的服务会调用和编排代理。以这种方式部署的代理称为私有代理。
代理商的大部分价值都集中在公共模式上,在这种模式下,提供商可能会发布其代理商,目的是将其与其他第三方代理整合。然后,这些代理将成为互联服务网格或网络的一部分,这些服务共同能够解决许多用例。虽然这些代理可以用于许多领域,但 business-to-business用例却是自然而然的。下图提供了组装解决特定问题的收集代理的概念化视图。
该图显示了四个共同努力实现一系列目标的业务代理。当代理以这种方式组成时,它们代表一个代理系统,这样的系统有很多种类型。它们可能是一组预先打包的协作代理,通常作为一个单元使用。或者,系统可以由想要挑选最能满足其需求的代理组合的客户动态组装。
这两种方法都为代理集成提供了可行的途径。一些代理商的构建期望是,它们将被集成到特定的系统中,从而最大限度地提高其价值、覆盖范围和影响力。这种代理系统的概念也引发了人们对如何获取代理的疑问,可能有很多方法可以解决这个问题。下图提供了如何通过交易体验创建这些代理和系统的示例。
显示了两个市场体验示例。在左边,市场用于购买预打包的系统。在这种情况下,市场发现并启用了能够实现更广泛目标的系统,这些目标需要集成和协调多个代理。
右侧的示例显示了一个市场,在这个市场中,代理被发现并组成代理系统。在这种情况下,客户可以构建任何由兼容的集成代理组成的系统来满足他们的需求。以这种方式组装代理的能力取决于各个代理的兼容性模型和集成要求。