스크립트
00:00:00Alex Hancock:大家好,我是 Alex Hancock。今天我将要谈一谈 AI 的通用
00:00:17遥控器。而在开始之前,我想先说一下,前一位演讲者说过
00:00:21MCP 客户端维护者之所以没有实现对任务的支持是因为他们很聪明。而我
00:00:26是一名 MCP 客户端维护者。我可以告诉你,我没做只是因为我懒。好了,
00:00:33在开始之前先简单介绍一下我自己。我是 Block 的一名软件工程师,也就是
00:00:37Cash App、Square 和 Tidal 的母公司。我们现在有几个不同的业务在进行。
00:00:43我在那里工作了很长时间。我做过 Square 的产品开发和 Cash App 的相关工作。
00:00:47但在过去几年里,我一直在从事开源 AI 的工作。具体来说,我负责一个
00:00:51名叫 Goose 的开源 harness 项目,它最初是 Block 内部的一个项目。
00:00:56是的,在座有一些 Goose 的粉丝。然后,对,我们把它开源了,并把它捐赠给了
00:01:02Linux 基金会。所以现在的知识产权归那里所有。但我们依然有很多人从 Block 继续参与开发。
00:01:07我也是 MCP(模型上下文协议)的维护者之一。我负责该项目的 Rust SDK。
00:01:14最近,我也开始参与 ACP(智能体客户端协议)的工作,这也是我今天
00:01:20要讲的内容。所以我想,目前我们的 harness 存在一个问题,我想在今天向大家
00:01:27提出、作为问题抛给各位,然后推荐一个解决方案。所以,我最近注意到的是
00:01:35我们有很多非常优秀的 harness,对吧?有来自各大实验室的,
00:01:40有来自不同公司的,还有很多基于开放标准的。
00:01:46但我注意到,与它们的交互接口通常是自定义的或定制化的。在最糟糕的情况下,比如说,
00:01:52你可能会遇到某些 harness,字面上看只有唯一的一个客户端应用程序可以用来控制
00:01:57那个 harness,对吧?我认为这带来了几个问题。我可以用网络(Web)来做个类比,
00:02:03这就好比你必须使用某个特定的浏览器或某个特定的协议去连接每一个
00:02:11网站,对吧?那根本行不通。如果浏览器现实中是那样的话,就不会有开放的网络了。
00:02:16所以我觉得我们可以做得更好。关于标准,通过寻找一个标准,
00:02:22标准的好处在于它们能够创造生态系统和市场。我想说的是,
00:02:28在智能体 AI(agentic AI)领域,我们已经拥有了一个优秀的标准,供智能体去执行任务、
00:02:35调用工具、在其他系统中采取行动、读取资源以及读取数据。作为整个社区,我们都
00:02:41从拥有了 MCP 中获益良多,对吧?而 MCP 最强大的地方
00:02:47并非 MCP 本身的什么特性,而是所有人都使用 MCP。这就是为什么我们拥有,你知道的,
00:02:53分布在世界各地的成千上万个服务器,并且所有的智能体都可以连接到它们
00:02:58并在那些其他系统中去执行各种操作。我想说的是,我们目前还没有一个好的解决方案
00:03:05或标准,来让客户端软件告诉智能体该做什么、给它分配任务、告诉它应该处理什么工作,
00:03:13以及获取更新。因此,我今天想提出一个选项,我认为这是一个不错的选项,
00:03:20我们团队一直在致力于此,并且我们认为在开放标准领域中它是一个很好的解决方案。
00:03:26这就是 ACP。因此,智能体客户端协议(Agent Client Protocol)就是这个项目的名称。它源于
00:03:32编辑器厂商。它源于,如果你使用过 Zed 文本编辑器,或者你使用过任何 JetBrains
00:03:39的产品,Zed 的团队和 JetBrains 的团队联合起来,并提出了一个标准,
00:03:45以便客户端能够控制 harness。如果你设身处地为他们想想,这就说得通了,
00:03:49对吧?他们希望能够在编辑器中编写一个高质量的单一客户端实现,
00:03:54也许是在 Zed 中,或者在 IntelliJ 等工具中,并能够通过这个单一的客户端实现来控制任何 harness,
00:04:00发送任务、获取返回的结果、
00:04:06查看哪些文件正在被编辑等。如果你站在他们的角度考虑,这非常有意义,
00:04:10对吧?但我们在 Goose 团队也看到了这一点。我们认为它的实用性远不止于编辑器,
00:04:17对吧?所以它是相对中立的,并没有太多特定于编辑器的功能。因此,
00:04:22我们认为这可以推广到更广泛的客户端软件中。为了更深入地了解
00:04:30ACP 的设计以及你能用它做什么,它允许你在客户端和智能体 harness 之间建立连接,
00:04:37这些 harness 具有与连接相关的一组给定功能。然后你可以创建
00:04:45会话。在会话中,你可以发送用户消息——用户可能正在输入到应用中的内容,
00:04:51或者客户端软件想要发送的内容。然后智能体可以用文本、更多图像或音频、
00:04:59文本等来响应这些内容,或者提供关于正在发生的事情的更新。因此,如果调用了某个工具,它可以发送工具调用
00:05:04通知,并解释调用了哪个工具以及元数据是什么。它还可以发送诸如
00:05:10权限请求之类的内容,这样如果客户端软件需要向用户展示,你知道的,“我应该执行这个
00:05:16工具调用吗,是或否?”,它可以通过这个协议来进行。它的设计非常简单,使用的是 JSON-RPC
00:05:24消息。我们最喜欢它的地方在于它也是可扩展的。所以你不仅限于
00:05:29我们认为这可以推广到更广泛的客户端软件。为了更深入地了解
00:05:37ACP的设计以及你能用它做什么,它允许你在客户端和
00:05:41智能体框架之间建立连接,这些连接关联了一组特定的功能。然后你可以
00:05:46创建会话。在会话中,你可以发送用户消息,也就是用户可能在应用中键入的内容,或者
00:05:52客户端软件想要发送的内容,无论是谁,我们都能看出生态系统中涌现出了什么,
00:05:58以及走上标准化轨道并引入协议本身是否合理,从而使这能够根据使用情况和社区需求来塑造。
00:06:03我将演示该协议的标准 I/O 版本。
00:06:12所以我将打开 Zed,这里我有一个非常简单的项目,我会在其中说“告诉我关于
00:06:18这个项目的信息”。这是一个单文件 HTML。你可以看到我能够将查询输入到 Zed 中,
00:06:25这里起作用的智能体是 Goose。它使用的是 Goose 的 ACP 接口。你可以看到,
00:06:31它正在发回文本。它发回了关于它读取了什么以及它做了什么的
00:06:36工具调用信息。然后它发现这是一个单文件 HTML 并进行了说明。我还将做另一个,
00:06:42我将做另一个演示。这个来自一家名为 Poolside AI 的公司。我会说,在同一个项目中
00:06:50告诉我关于这个项目的信息。这是一个基于终端的客户端,从同一个智能体获得了完全相同的体验,
00:06:55框架端只需一种实现,你现在就可以使用任何客户端了,对吧?所以
00:07:01你可以看到它做了同样的事情。它向我返回了一些文本结果,显示了一次工具调用,然后
00:07:06它显示了正在流式传输的摘要。这就是一个基础演示,展示了两个客户端通过本地标准 I/O 与同一个智能体通信。
00:07:13但显然,本地运行是不够的,对吧?如果你想让它腾飞,你也必须能够进行远程操作。
00:07:21智能体将在云端运行。因此,当我们来到这个项目时,我们发现它尚不支持远程。
00:07:25因此我们指定了 HTTP 传输,其中有一个 HTTP 版本和一个 WebSocket 升级版。
00:07:31所以现在消息是相同的,协议语义是相同的,但有一个刚刚推出的新传输层,它实现了
00:07:37远程功能。在 Goose 团队看来,智能体技术栈有这样
00:07:42四个重要的组成部分,对吧?你有客户端,也就是用户正在使用的应用,
00:07:49或者在机器某处运行的无头应用。还有框架,也就是实现
00:07:54工具调用循环的程序。工具有本身,通常是 MCP。然后是
00:07:59模型,对吧?如果你为智能体客户端协议实现远程传输,并且 MCP 拥有用于工具调用的远程
00:08:04传输,并且模型一直都有远程端点(例如响应 API),那么现在你就可以灵活地移动这四个组件了。
00:08:13而模型长期以来一直都有远程端点,比如响应 API,
00:08:18现在你就可以灵活地移动这四个组件了。它们
00:08:24可以全部在同一台机器上。 harness 也可以与客户端不在同一台机器上。
00:08:29模型可以是唯一远程的东西。工具也可以是唯一远程的东西。
00:08:34统一标准并确保它们具有良好的传输支持,正是让我们能够
00:08:39移动这个智能体技术栈中所有组件的原因。我也能快速演示一下这一点。
00:08:46所以这是一个客户端,只是为了展示为它创建客户端有多么容易。我昨天刚用
00:08:53直觉编程(vibe coded)写好了,然后我说,写首诗。所以这再次连接到了我机器上的同一个进程。
00:09:01在这种情况下,我是通过网络运行它,但它在我的机器上。
00:09:03它在连接并向 goose 发送关于如何远程执行的指令。所以这可以是在容器中,
00:09:09也可以在云端,但消息是相同的,你使用的库也是相同的。
00:09:15所以你可以非常非常轻松地在本地和远程之间切换。
00:09:21因此,如果你想接入这个生态系统,开始尝试支持,
00:09:25无论是制作你自己的客户端还是向 harness 添加内容。
00:09:29这将为你提供智能体客户端协议网站的链接,教你如何开始。有许多客户端
00:09:34和智能体服务器已经存在。这涵盖了编辑器、桌面应用程序、移动应用程序、
00:09:41终端基的东西。呈现出激增的态势。而且我认为用例潜力巨大,
00:09:49对吧?如果我们在这里实现一些互操作性,因为你可以让人们制作个人
00:09:54客户端。这正是你希望它编排你的智能体的方式。你可以为某些业务领域
00:10:00或单个公司或公司的一组客户端创建客户端。你可以定制
00:10:06白标客户端并让它与所有的 harness 配合工作。我也认为如果我们在这里开创一个新类别,
00:10:12我们将看到客户端的质量上升,对吧?因为任何时候,只要你建立起一个生态系统
00:10:17或市场并且有许多选择,如果客户端无法满足他们的需求,用户就可以用脚投票。
00:10:22因此人们将开始在用户体验的质量上展开竞争。
00:10:26而且,总体而言,我认为这应该会提升使用人工智能的用户体验。
00:10:33这就是我今天的分享。非常感谢。如果你想和我交流,请在会后
00:10:37找我或者给我发电子邮件。我很高兴能让你参与到这项工作中。谢谢。
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기