Google Cloud 最近发布了一段 30 分钟的官方教程视频,演示如何用 Claude + ADK + MCP + Agent Engine构建多Agent系统。

表面上看,这是在教你怎么用Google的Agent开发框架,但看完之后,你会意识到这其实是一份一人公司的技术蓝图。

这个视频的价值在于:它展示了一套从开发到部署的完整工程链路。

视频主讲人Ivan Nardini(Google Cloud 开发者布道师)一上来就指出了 Agent 落地的三个核心痛点:框架碎片化、跨框架协作难、运维治理复杂。

这正是大多数一人公司卡住的地方,Google 给出的解法是一个完整的 Agent 栈:

  • ADK(Agent Development Kit)

  • MCP(Model Context Protocol)

  • Agent Engine

  • A2A(Agent-to-Agent Protocol)

这四件套组合在一起,恰好是一人公司需要的基础设施。

以下为演示实录:

大家好,感谢大家参加本次会议。在本次会议中,我们将探讨如何利用Vertex AI的云服务来构建人工智能代理。

在开始之前,让我们先明确背景。正如您可能知道的,构建AI智能体非常强大——利用AI智能体可以开发出各种酷炫的应用程序。

但现实情况是:当你开始开发并原型测试智能体后(假设您对现有成果满意),要将这些智能体投入实际生产环境却异常困难,对吧?

主要原因有三点:首先,当前市面上存在大量提供各类工具和功能的框架,这些工具能帮助您增强智能体性能,但整个技术生态过于分散,您需要弄清楚如何整合不同框架和工具才能让系统正常运行;

其次,即使您能够用单一框架构建单个智能体或多智能体系统,但若同时需要整合多个框架,实现不同智能体之间的有效通信也并非易事。

打开网易新闻 查看精彩图片

再假设即使你能够开发智能代理,并构建一个能够相互通信的代理网络,但在生产环境中管理这些代理仍然极其困难——因为你需要负责代理相关的所有运维工作及相应的治理机制。

因此,需要在代理上实现的各种监控功能和日志记录功能,在这种情况下都极难有效管理。

让我们设想一下:您将拥有一个工具包,能够以极高的效率实现区域标准化与开发。

配合该工具包,您还将获得一套协议规范,使您的智能体能够无缝地与其他智能体共享工具和上下文信息。

第三,您将获得一个智能体平台,可用于部署和扩展该智能体系统,并管理与此新型应用相关的所有操作。

正是基于对这些挑战的深刻理解,我们决定在Google Cloud上构建自己的Argenti技术栈。

打开网易新闻 查看精彩图片

我们的Agen T技术栈由四个核心组件构成。

首先是代理开发套件——这是一款开源且开发者友好的框架,可帮助您大规模构建、测试和部署代理程序。

但要实现这一目标,您需要一套标准化代理方案,并能与各类工具实现无缝对接(正如前文所述)。为解决协议层面的这些挑战,我们在设计代理开发套件时特别将其与MCP协议兼容。

想必您已了解NCP协议,而通过MCP协议,您的代理程序可与多种工具无缝配合。在实际应用中,您可通过MCP上的Lens组件为应用程序提供通信接口。

此外,我们还推出了Vertex AI Engine引擎——这是一款专为部署、管理和扩展AI代理生产而设计的托管平台,它能全面解决生产环境中部署代理所需的各种运营挑战及功能需求。

打开网易新闻 查看精彩图片

最后,为解决不同框架构建的代理之间无法通信的问题,我们还引入了代理间协议。该协议本质上是一个开源协议,能够实现不同框架中的代理之间无缝通信与协作。基于此技术栈,我们将用于构建多代理系统。

但在开始之前,让我先介绍一下自己。我是Ivan Ardini,谷歌云的开发者倡导者。我常驻森尼韦尔,今天我想与大家分享这段旅程。

这段旅程将从使用Claude构建一个非常简单的 ADK 代理开始,随后我们将利用一些预构建工具和MCP来发布这些代理,最后将在一个引擎上部署它们。

打开网易新闻 查看精彩图片

作为额外福利,我们将详细讲解如何使用代理间协议连接多个代理,并演示具体操作方法。

如果未能实现这一目标,请放心——本月底我们将举办一场现场网络研讨会,届时会详细演示具体操作步骤。

话虽如此,我们确实需要开发一个智能代理,但要实现这一目标,首先需要一个LLM模型。下面我将向您展示如何在Vertex AI上获取云模型的访问权限。

因此,Vertex AI的模型可通过Vertex AI Model Garden进行调用。该平台本质上是一个集中式平台,您可以在其中发现、部署和管理各类基础及开源模型,包括Claude。在Model Garden上,您可以找到最新且最优秀的Claude模型。

打开网易新闻 查看精彩图片

今天上午,我们刚刚正式发布了Claud 4,现在就为大家演示。

完成注册并提供所需凭证后,您即可访问该模型,并可通过API或控制台进行操作。那么,不再多说,让我为您展示如何使用Claud。现在让我们打开界面。

对于还不熟悉Vertex AI的用户,以下是Vertex AI控制台的界面示意图。

因此,Vertex AI提供了一套服务,用于构建生成式AI和预测式AI应用程序。正如我所说,Application and Model Garden是一个集中式平台,可为您提供来自不同模型供应商(包括Claude和Anthropic)的多种模型。事实上,在合作伙伴会议环节中,您将看到Anthropic提供的模型。

在这里,您可以查看我们提供的所有熵模型,包括今天早上发布的最新版本。因此,您可以使用Model Garden来测试该模型。

这是Vertex AI的工作室界面——我们的提示式用户界面,可用于测试该模型。如您所见,我已提到Claude 3.7 Sonne是我们今天用于构建智能代理的模型。我们已将Claude集成到De中,敬请关注未来几周的更新。

通过此界面,您可以测试模型,并立即开始与其交互,同时利用此处提供的API将其集成到您的应用程序中。既然您已大致了解如何通过Vertex AI访问云端服务,让我们回到演示环节,开始使用该模型构建智能代理。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

在这次演示中,我们将构建一个非常简单的代理——生日策划代理。该代理的核心功能是帮助您组织生日派对,例如分组安排、获取宾客名单等。

在开始开发之前,您需要先了解一些与 ADK 相关的基本概念。需要说明的是,虽然本次会议本应是一场工作坊,但由于WiFi信号问题,我已提前提供了一些代码资源,并将代码仓库分享给大家。

因此,会后您就能在家自行运行我展示的代码。如有疑问,欢迎随时向我咨询。以上就是使用代理开发工具包构建代理所需掌握的 ADK 核心概念。

首先,代理开发工具包提供了多种可供使用的代理类型。您已经可以使用预先构建好的标准模式,包括顺序代理模式,这些模式可用于实现您的应用程序。

但最简单的模式就是我们与Llum代理配合使用的那种——该模式本质上仅需使用Llum组件来调用代理并构建代理。

因此,该类构成了代理的核心逻辑模块。它支持多种模型,包括Claud模型。使用时,您只需设置模型、为代理命名、编写相关指令,并定义所需的工具即可。

打开网易新闻 查看精彩图片

完成上述步骤后,您的智能代理即可使用相关工具正常运行。

所谓“工具”,本质上是指用于为代理分配特定技能的手段;ADK提供了现成的工具供您使用,同时您也可以自定义工具并与框架进行集成。

因此,您拥有这些智能体、Idk工具,以及那个能够整合所有组件并进行协调的“运行器”概念。

具体来说,我在会话过程中执行这些智能体,同时维护对话状态;该系统还与一个非常出色的Li(ADK)和Adks集成——您稍后会看到,它们支持通过编程方式或网页界面与智能体进行交互。

最后需要强调的是,会话机制的核心功能在于能够存储对话内容,并让智能体记住您之前与它的讨论记录,从而实现无缝衔接的交互体验。

打开网易新闻 查看精彩图片

那么,既然如此,我之前已经向你介绍了ADK支持——Claude:它实际上是一个Claude,你可以通过Lite LLUM集成以两种方式使用Claude和AdKS(这一点想必你已经熟悉);你也可以利用我们作为Vertex AI团队提供的Presbury集成,结合Claude和LLUM注册表——这正是我今天要向你展示的方法。

这是一种将模型与界面无缝集成的便捷方式。

接下来,让我演示如何使用 ADK 构建智能代理。

因此,这就是您从GitHub 调用仓库后即可下载的代码仓库。该仓库中包含三个代理程序,我们今天将逐一介绍。

第一个代理正如我所说,是生日计划器。使用 AWS AWS Cloud Infrastructure (AK) 构建代理时,您只需提供三个文件:`agent pi`(包含代理日志文件)、`environment variables`(包含代理所需的所有环境变量文件)以及一个初始化文件(您应该已经熟悉)。仅这三个文件即可运行该代理。

如您所见, ADK 的设计严格遵循软件工程最佳实践,因此您应该能够轻松完成其运行。

综上所述,这里展示了如何使用ADK 。首先需要导入llum代理类——该类将用于表示我们今天要使用的云模型;此外还可以引入与内存相关的其他类,以及之前介绍过的runner类。

导入该类后,您只需编写以下代码即可创建第一个代理:使用llum代理类,定义名称、目标模型(本例中为3.7版本)及其描述信息,明确代理的功能及需执行的操作指令即可。完成这些步骤后,即可立即投入使用。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

因此,您只需执行以下操作即可。如果您希望以编程方式与智能体交互,可以运行ADK命令——系统会在后台自动启动与您的智能体的会话。

哦抱歉,我漏提了一点:生日当天。随后系统会与您的区域建立交互式会话。通过这种方式,您就能开始与智能体互动,并逐步了解其工作原理。

这样一来,您可以根据具体任务需求迭代优化智能体性能。整个流程仅需三个文件(包括一个Cli文件),即可完成智能体的开发与改进工作。

打开网易新闻 查看精彩图片

那么让我们回到幻灯片内容。假设你已经克隆了仓库,并成功启动并运行了代理程序。

让我们把事情再复杂一点。我们需要对现有智能体进行扩展,使其成为支持多页面交互的系统。

比如,这个智能体可以为我们提供生日派对的建议;而在派对筹备完成后,我们还需要在日程中安排具体时间——比如购买派对礼物或设置生日提醒。实现这一功能的关键在于引入相应的工具。ADK的精妙之处在于:我们不想重复造轮子。

因此在项目启动初期(第0天),我们就实现了与MCP的集成。

这里我不会详细解释MCP是什么,也不会区分不同编程语言专用工具或API之间的差异。

核心理念在于:通过NCP,我们实现了对上下文访问方式的标准化——不仅适用于Llum自身,也适用于所有其他智能体。

通过ADK ,您可以采用两种方式使用MCP:

一是直接使用MCP或现有的MCP服务器,并将其作为工具与 ADK 集成——这正是我们今天要实现的功能;无论您使用的是哪种MCP服务器,都可以像现在使用 ADK 一样直接使用,无需重复开发相同的功能模块。

另一种方式是:如果您已有 ADK 系统,并在 NDK 中构建了某个工具,即可利用MCP来部署该工具并与其他代理进行交互。以上便是利用 ADK 实现NCP功能的两种途径。接下来,我将演示如何将 ADK 与MCP结合使用。

那么让我们回到这里。让我访问这个代理,然后转到第二个代理。正如我之前所说,我们现在需要引入一个日历服务代理,它能让我在日程中安排时间。

由于我们现在有两个代理——生日代理和日历代理——我们还需要引入一个协调器,根据我的需求将请求路由到合适的代理。在这个特定场景中,生日规划器与我们之前定义的代理完全相同,不同之处在于:现在我需要创建一个IBRIK系统;例如,在安排生日活动或获取生日创意时,我也可以使用Gemini等其他模型。而日历代理则会再次使用Claude 3.5配合NCP服务器来安排我的日程。为了使用NCP服务器,我们需要编写以下两行代码。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

因此,你需要访问已部署的MC服务器(无论是现有服务器还是自建服务器),或者将A部署为无服务器服务,然后建立连接。

当你运行该命令开始构建代理时,后台会发生什么?系统会收集运行MCP服务器所需的所有信息和配置要求,将这些MCP P服务器转化为代理的工具,而代理本身也直接使用这些MP服务器作为运行工具——仅此而已。

但真正让我坚信 ADK 强大之处在于:只需两行代码,就能轻松集成任何现有的NCP工具。

打开网易新闻 查看精彩图片

一旦您获得了这款MCP 工具,就可以将其作为工具集成到我们的代理中,然后就可以完成类似的操作。

现在我们已经拥有生日代理和日历代理,这就是活动组织器的界面样子。

打开网易新闻 查看精彩图片

由此可见,在这样的编排器中调度多个代理是多么简单。关键在于定义更完善的指令——因为在此场景下,该代理将负责协调多代理系统。您只需明确每个代理的功能职责,然后将所有代理作为工具导入编排器。系统会根据请求自动选择合适的代理。完成这些步骤后,即可顺利启动运行。

因此,我们可以这样做:运行程序后返回此处。实际上,让我先演示一下这个操作。在向您展示如何进行交互之前,我可以通过编程方式启动一个智能体交互程序。

不过由于该系统现在更为复杂,我们共有三个智能体,对吧?

打开网易新闻 查看精彩图片

我们需要一个更直观、更可靠的方式来理解幕后发生的情况。在ADK 中,我们使用了一个网页界面,可以用来与系统交互、与智能代理进行对话。

这个网页界面的界面如下所示:用户首先选择要运行的智能代理,随后即可进行操作——其界面设计与之前使用Septa时完全一致。

现在我们已经拥有了其他智能体,以及一个在后台运行的多智能体系统。

如图所示,该用户界面能清晰展示智能体后台的运行状态。因此,在对话进行过程中,您可以随时查看各个智能体的具体操作情况。

打开网易新闻 查看精彩图片

既然如此,现在您也了解了网页界面,让我们回到本次演示的内容。谢谢大家。

在本次演示的最后一部分,我还想向您展示如何轻松地在Agent Engine 上部署该代理。为此,请允许我先演示一下具体操作步骤。

为此,我先向您说明为何需要这样的引擎。本质上,当需要大规模部署智能代理时,就必须找到相应的解决方案——这其中涉及诸多复杂因素,对吧?

打开网易新闻 查看精彩图片

您需要获取代理代码,并将其封装到相应的服务中(例如Fast API 或 Jungle)。随后需构建容器,并配置运行环境(此处可采用 GCP 环境)。

此外,还需处理与代理架构相关的所有操作流程。同时,必须对代理进行持续监控——毕竟归根结底它是一个应用程序。

借助代理引擎,您只需通过“代理创建”等方法即可轻松部署代理,使其立即运行并具备完整的可观测性功能。

所有部署代理所需的可观测性功能及监控机制均由平台直接管理;您与代理的所有交互数据也会被我们的日志系统自动记录,您可直接利用这些数据进行性能评估,从而及时优化系统表现。

这让你明白了为何需要考虑使用Vertex AI引擎,同时也让你全面了解了该引擎的整体架构——正如你所见,该引擎能够整合任何类型的智能体框架(正如我刚才所说)。

如果你使用Land Graph或Land Chain构建智能体,同样可以实现这一目标;你也可以直接使用这些框架,并结合所需的工具和模型,而智能体引擎将负责部署智能体,并通过云工具实现所需的所有可观测功能。评估环节也由我们的服务之一——Vertex AI评估服务来完成。

总之,智能体引擎具备以下能力:你可以根据需求在任意框架中定义智能体,利用其管理运行时环境进行部署;

随后能够自动观察智能体行为并实现大规模调用;

此外,该引擎还与我们在Google Cloud上提供的其他服务(如Agent Space,此处不作详细说明)实现了集成——后者将成为智能体最终落地业务应用的关键入口。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

因此,实际上,你在企业环境中构建的智能体会产生实际影响。

话虽如此,让我来介绍今天我们将要讨论的最后一个实验环节。我之前已经向大家展示了如何构建这样的智能体。

因此,在本次最后的实验中,我想向大家展示如何仅用几行代码即可轻松部署代理。在代码仓库中,你们会找到这个模块,它能够让你迭代地部署代理。

要在Vertex Agent Engine上部署代理,您只需提供该代理运行所需的基本配置。正如我之前所说,我们已提供了一个现成的类,可用于在代理引擎上创建代理端点。在这个类中,您可以定义自己所需的代理。本次我们将部署首个代理——规划器代理。

以下是具体配置要求:您可根据需要添加额外的软件包,但整个部署过程仅需几行代码即可完成。该代理部署在托管服务环境中,具备可扩展性,并支持向多个用户开放使用。

接下来,请运行此脚本。首先,请关闭当前会话,然后进入代码仓库。

最后,这里是我的操作模块。在这个场景中,我使用的是Python部署代理。后台实际操作是启动代理的部署进程,因此您可以在Vertex AI的图标界面中直接监控部署状态。

正如您所料,这一步需要一定时间,因为需要构建镜像并部署代理。现在让我们直接进入用户界面:当代理部署成功完成后,Vertex AI代理引擎界面会显示对应条目。

通过该界面,您可以实时监控代理的各项指标——包括接收查询的响应时延、响应耗时,以及代理使用的CPU和内存资源。这样就能更清楚地判断是否已分配足够的资源来支持大规模代理服务。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

该引擎同样支持会话管理功能。

在此示例中,我们仅部署了一个实例,因此尚未启动会话;但此时您已可以看到该会话界面,其中提供了集成此代理应用程序所需的所有信息——无论是实时集成还是流式集成,均可根据所需方法进行选择。

您随时可以查看部署详情。好了,现在您应该已经了解了如何部署该代理程序。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

让我们回到幻灯片内容,谢谢。

正如我所说,这部分属于额外补充内容;我认为我们没有足够的时间来详细讲解。但我想告诉你们的是:假设你们已经开发好了自己的引擎,并成功将其部署上线,对吧?

目前,我们所有的智能体都是仅使用ADK进行构建的。但如果你希望使用Land Chain Crew AI或其他框架来部署或构建智能体,该怎么办呢?

正如我之前所说,智能体引擎确实支持这种操作。然而,主要问题在于:无法将基于不同框架构建的智能体相互连接起来,对吧?因此,这时就需要一种相应的协议来实现这一目标。

在当今这个由多个基于不同框架构建和部署的智能体共存的世界里,我们亟需找到一种通用语言来实现这些智能体之间的交互与协作,从而完成特定任务。

正因如此,谷歌云推出了智能体间协议。该协议采用开放式设计,通过一个非常简单的概念(我稍后会详细说明)来增强智能体间的协作能力。但我要特别强调的是,该协议已具备企业级适用性——它具备多项功能,可让您以安全可靠的方式管理智能体。

需要指出的是,我们并非从零开始创新,因为该协议直接基于现有的标准协议框架。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

HTTP协议由Jason RCP 提出,是该领域广泛采用的标准。

关于这一概念,你需要了解的是:Wing所描述的是代理技能的概念,这些技能本质上定义了代理的功能或能力。它就像代理在其他代理中的“名片”。

通过这些技能,代理能够明确展示自身的功能范围。你可以管理代理所具备的各项功能。而代理卡片本质上就是该代理的数字名片,能让其他代理或应用程序了解该代理的具体技能及其交互方式。

打开网易新闻 查看精彩图片

因此,第一个问题描述的是智能体本身;另一个问题则描述该智能体能够对其他智能体执行哪些操作。

与之前类似,系统中还包含一个智能体执行器,其主要负责管理智能体之间的通信、请求处理机制以及系统生成的响应。

因此,基于这三个概念,你可以构建这样的系统:系统中实际上会存在多个采用不同框架的智能体,它们相互之间进行通信,从而完成特定且更为复杂的任务——而非我们今天构建的仅用于安排日程或购买生日礼物的任务。

打开网易新闻 查看精彩图片

因此,我们今天不会讨论这个话题。不过正如我一开始所说,本月底我们将举办一场实时网络研讨会,届时我会向大家提供二维码。

简而言之,我们的出发点正是这三个核心问题,对吧。

构建功能强大的代理系统时,实际投入生产环境会面临诸多挑战:系统生态碎片化、集成复杂度需要妥善管理;即便能够解决这些问题,仍需应对部署代理所需的全部运营开销。

因此,我们需要一个集成工具包、协议集和引擎平台,最终实现构建代理系统的标准化流程,使其能够大规模投入生产。为此,我们基于ADK 构建了这套代理技术栈。

打开网易新闻 查看精彩图片

MCP代理引擎与Ent方式本质上可让您可靠地构建遗传系统,并根据需求将其规模化应用于生产环境。