在本集中,我和 StackOne 的创始 AI 工程师 Matt Carey、AI Demo Days 的创始人以及 OpenUK AI 咨询委员会成员进行了交谈。每个人都需要一位在 AI 领域工作的伙伴来帮助他们过滤 AI 新闻,从噪音中获取信号。Matt 就是我的那位伙伴!我们讨论了 AI 代理、MCP 以及 AI 基准测试的挑战,这些挑战有助于解释基准测试结果与包括我在内的 AI 用户的轶事经验之间的脱节。本集链接:谷歌关于 AI 代理的白皮书Anthropic 构建有效的 AI 代理Simon Willison 在 X 上Thorsten Ball 的《快乐与好奇》通讯AI Demo DaysMCP 存在提示注入问题主题曲:凯文·麦克劳德的《快乐星期一》链接:https://incompetech.filmmusic.io/song/3495-cheery-monday许可证:http://creativecommons.org/licenses/by/4.0</context> <raw_text>0 嗨,欢迎回到《真实世界服务》的节目结尾。今天我们邀请到了 Matt Carey,他是一位回归嘉宾。Matt 是 StackOne 的创始 AI 工程师。他也是 AI Demo Days 的联合创始人,你可能在社交媒体上看到过它,它一直在四处传播。我想旧金山,你最近在那里。他也是 Open UK AI 咨询委员会的顾问,该委员会就所有 AI 相关事宜向英国政府提供咨询。
嘿,伙计,欢迎回来。是的,谢谢你再次邀请我。非常高兴能再次来到这里。是的,自从我们上次交谈以来,你的很多事情都发生了变化。所以,你能不能让我们知道你最近一直在做什么?是的,我认为我们上次交谈可能是一年半以前?差不多吧,是的。是的,我当时正在做一堆关于 Quiver 的开源 AI 工作。我们主要讨论的是 Quiver。
是的,所以一切都变了。Quiver 去了 YC。我加入了 Stack One。是的,从那时起就有点疯狂了。仍然有很多 AWS 的东西,但现在又加入了一些 ML,这真的很有趣,让我大开眼界。所以关于 Stack One,我从来没有完全理解他们到底做什么,以及 AI 如何融入其中。所以也许你可以告诉我们一下。是的,我们来谈谈。所以……
我想理解它的最好方法是,它是面向企业的 B2B 业务。呃,我们为任何类型的应用程序进行集成。所以,呃,以前像大规模合规性一样,他们需要了解他们的用户在做什么,比如他们是,他们是,他们是客户,客户,比如什么,无论他们是管理员,比如,呃,他们的任何软件堆栈。所以我们,我们给他们提供相应的集成。呃,
你可以把它想象成一次性与整个行业集成。所以我们有 250 个 SaaS 集成,可能还有 100 个 HRIS,比如人力资源系统。所以,如果你想创建一个集成,比如从一个求职者追踪系统到一个人力资源系统的入职流程,
并且你想将其发布给你的客户,你的所有客户可能都使用了一堆不同的 HR 系统。因此,与其与所有这些系统集成,不如与一个 API 集成,你就可以免费获得所有这些系统。
这有点令人困惑,因为我们向客户销售,但实际上使用我们的人是客户的客户。所以它是完全白标的。最近,我们发现我们所做的一些统一工作对于代理来说实际上非常有趣,因为我们解决了上下文窗口以及使所有数据真正干净整洁的问题。我们并没有真正知道它会有用,但似乎对 AI 非常有用。
我大约在一年前加入的。如果你想的话,我可以多谈谈。是的,我加入了一年半。我加入时的前提是我将致力于帮助我们更快地构建集成。所以构建自动化,创建一个工作流程构建器,本质上是。这样我们的内部团队就可以更快地构建集成,我们的客户也可以在我们平台上更快地构建集成,所有这些有趣的事情。我们做得很好。我们做了一年多,
在三个月内成功完成了 90 多个集成,这简直令人难以置信。速度非常快,比我们的竞争对手快得多。很有趣。然后我现在更多地关注的是,我们如何,
我们有一个 API,你可以调用它来获取来自任何 HR 系统的人力资源系统中的员工,获取来自求职者追踪系统的最新职位发布,在消息系统中发送消息。我们的 API 做所有这些事情。但是我们如何使这个 API 对于构建 B2B 代理的人真正有用呢?我们如何将其用于 MCP?我们如何将其作为更多工具集来使用?诸如此类的事情。这就是我现在花很多时间做的事情。
好的,既然你提到了代理和 MCP,而且你戴着代理的帽子。所以也许我们来谈谈这个。显然,MCP 已经出现,并且无处不在。所以在社交媒体上,每个人都在谈论它。所以你想给我们一个大概的介绍吗?什么是 MCP,为什么我们需要它?因为之前已经有过通过函数调用或工具进行集成的尝试。那么 MCP 有什么不同之处,为什么我们需要它呢?
是的,MCP 非常有趣,因为这是你第一次拥有一个可以连接到许多应用程序的插件系统,甚至不是 AI 应用程序。我认为它就像……
就像 Chrome 扩展程序。Chrome 扩展程序扩展了浏览器的功能。许多基于 Chromium 的浏览器都支持 Chrome 扩展程序。因此,你拥有某种通用的插件系统来执行你想要对浏览器执行的任何操作,对其进行自定义,使其成为你自己的浏览器。
我认为 MCP 也类似,但它是针对 AI 客户端的。对于像 Cursor 这样的东西,我假设 Notion 很快就会推出一些东西。Raycast 也是。人们还会使用哪些应用程序?Canva、Figma,所有这些人们花费大量时间使用的应用程序都真正地拥抱了 AI。是的。
但他们只以一种方式拥抱 AI。他们想要允许……MCP 允许他们将用户放在首位,并让用户在他们想要添加时添加他们想要添加的功能。所以……
忘记 MCP 的技术规范,它实际上只是允许你使用任何你想要的工具、任何你想要的扩展来扩展任何支持 MCP 的应用程序。我认为 David,DSP(MCP 的创建者)向我解释说,它将 AI 从黑盒中取出。
他在我们的一次活动中进行了演示。真的很有趣。好的。但我认为这相当抽象,因为据我目前所见,MCP 是一种协议,你可以为其创建定义,一个 API 规范,例如,
你的一个 API,或者如果你想公开一些在 SQLite 或其他地方运行的数据库,并且你想以某种方式使其可供 AR 访问,以便你有一种正式或标准化的方式来描述你的 MCP 服务器上可用的资源和工具。因此,一旦它在 Cursor 或 CloudFly 等
云或你想要使用的任何 AI 模型中注册,你基本上是在告诉 AI 模型,这是我的资源。你可以使用它们来查询数据,通过工具写入数据。MCP 有三个 API。你有工具、资源和提示。几乎
没有客户端支持资源和提示。所以工具是每个人都熟悉的。所以这就是你的数据库工具。你的数据库工具是几行 JavaScript 或 Python 代码,它说,给定这些输入,用它们做一些事情。这可能是从数据库中获取数据并将其返回给客户端。
是的,你可以用它做很多疯狂的事情。所以我想有人制作了一个 Ableton 服务器,他们正在制作音乐。我看到了一些 Minecraft 的。我看到一个 Blender 的,这真的很酷。就像我说的,3D 模型。但真正的想法只是拥有某种通用的系统,允许你使用某人花费很长时间创建的代理以及你喜欢的代理 UX 和你喜欢的应用程序,但将其与你所有的外部工具一起使用。所以是的。
它为客户端构建者提供了很大的优势,可以启用外部集成访问,这真的很有趣。而且显然非常重要,因为我在做集成工作。所以是的。是的,这是一个,
一个有趣的领域。所以我想在这种情况下,在你的例子中,客户端基本上是构建 AI 驱动的应用程序的人。所以他们是客户端,他们使用 MCP 服务器来允许他们的应用程序访问资源。我认为你会使用 Blender 的例子来允许 LLM 通过
通过发送数据与 Blender 连接来创建 3D 渲染,以便 Blender 可以获取该数据并生成 3D 渲染。是的,完全正确。所以是的,我认为这真的很酷,因为我们没有,这样的标准实际上并不存在。所以本质上,如果你尝试考虑在没有 MCP 的情况下你会做什么,你就会受到客户端可以构建的内容的限制。
因此,例如,如果你在 Cursor 中,你就会受到 Cursor 正在构建的代理和 Cursor 可以进行的集成的限制,这很好,这很好。但是假设你想创建一个具有浏览器访问权限的编码代理,所以想要查看浏览器,如果我们使用编码示例。要做到这一点,你首先必须重新创建 Cursor,无论是在 CLI 中还是其他什么地方,你都必须重新创建 Cursor,然后你将为你的浏览器提供一堆工具。
所以它去除了你维护一个笨拙、有错误的 UX 的整个方面,这实际上会将价值降低到一定数量的资金。他们将投入大量精力到 UX 中,Figma 和 Canva 和 Notion 以及所有其他应用程序也是如此。他们将投入大量精力到 UX 中。你只需要玩一玩,并在你想要的时候提供你想要的工具。是的。
对。好的。我想与,比如说,工具或函数调用(无论他们称之为什麽)的区别在于,函数调用将是客户端专有或在其上实现的。
所以像 Cursor 这样的公司将为工具实现他们自己的函数调用,以与特定目标集成,而现在你谈论的是集成端或服务器端的协议,以便他们基本上说,这就是你如何与我们集成的方法。任何构建 AI 驱动应用程序的人都可以使用相同的 MCP 协议与这些客户端集成。
服务,而不是每个人都必须构建自己的版本来与这些不同的服务集成。是的,所以工具调用仍然有其位置,我们实际上刚刚发布了一套针对我们许多 API 端点的工具集。
但这个位置实际上是针对那些构建应用程序的人,而不是那些不想使用应用程序的人。因此,如果你正在构建你自己的自定义 UX 和你自己的应用程序,而这正是你作为一家公司的价值主张,那么你将想要使用工具,并且你将想要直接使用代码。工具调用只是模型执行操作的一种交互方式。因此,你将更接近模型。因此,你需要实现工具调用。
对于那些不一定在构建的人来说,MCP 允许他们只插入 MCP 服务器。我们将看到更多。在过去的几个月里,我们主要拥有本地服务器。对于本地服务器,你需要对 NPM 或 Python 的 UV 是什么有一定的了解才能运行它们,因为……
你必须在你的计算机上安装这些东西才能运行本地服务器。但我们将拥有更多远程服务器。而这实际上是我花费大量时间做的事情,就是构建远程 MCP 服务器。因此,例如,对于 Sentry,他们最近发布了一个。
你现在可以复制粘贴他们的 Sentry 远程 MCP 服务器配置。它可以在 Cursor 中工作。就像它会与你进行身份验证一样。它会打开并进行身份验证,然后你可以使用它,而无需安装任何东西。你不需要做任何事情。它可以直接插入。所以协议的真正强大之处在于这些远程功能。
这可能是一个意外的结果,但我认为它将非常非常酷。越来越多的公司将开始在其 API 旁边托管他们自己的远程服务器,我认为。好的。实际上,这也提出了一个有趣的问题,只是关于身份验证。身份验证是如何工作的?所以如果,比如说……
比如说,Canva 或任何拥有用户服务的人,他们有 MCP 服务器或允许 AI 客户端访问它们,他们如何,我想,针对我的帐户进行身份验证?所以我怎么……那是什么……
集成看起来像这样,规范中有一部分是关于身份验证的,它是 OAuth,目前它会发生一些变化,很长一段时间它都不在规范中,但我认为大约两周前的最新规范版本中,它已经更新为包含 OAuth,所以有一个完整的,你可以进入 MCP 规范,它在那里列出了,有一些很好的图表等等,本质上服务器将实现 OAuth
目前,就好像服务器本身就是一个 OAuth 服务器一样。所以服务器将与第三方进行身份验证,并将允许用户输入一些凭据等等。但这并不一定适用于拥有单独 OAuth 服务器的企业。所以他们将更新这一点。
是的,我认为这是一个正在进行的工作,他们正在非常努力地进行这项工作。有大约 14,500 家公司参与其中。所以他们会解决这个问题。他们会让这件事变得容易。
呃,在内部,我们已经对其进行了很多修改,我们有这个 API 密钥服务,然后因为它现在符合 OAuth 标准的 MCP,它有,规范中有一个使用承载令牌进行身份验证和授权的标头,所以我们只是通过将 API 密钥作为该承载令牌来修改它,这工作得很好,这意味着我们不必托管任何其他 OAuth 到,比如
网站或任何其他东西,但这仍然是一个正在进行的工作,仍然是一个正在进行的工作。好的,所以呃,在这种情况下,谷歌的代理到代理呢?因为它几乎是在 MCP 之后出现的,并且对像我这样的外部人士来说,它看起来像是解决了类似的问题。是的,你将获得许多围绕这些事情而发展的标准……
是的,我认为这将很有趣。这将很有趣。这将是长达一个夏季的狂野西部,然后我们将……
可能甚至不会坚持一个标准,但可能有三四五个。我不知道。你见过那个模因吗?它就像 14 个标准,一个通用标准。现在我们有 15 个标准了。是的。是的,旧的,是那个漫画吗?是的。是的。所以我们将,我认为我们将有很多很多不同的标准。它们都将针对略微不同的东西。所以是的,
以及堆栈的不同层。所以也许它们会分散开来。据我了解,代理到代理标准更多的是关于……好的。也许让我们来谈谈 MCP 的理念。所以 Anthropic 使用 MCP,其理念是他们的应用程序的用户,客户端的用户,始终处于控制之中。他们……
在他们的规范中,他们对客户端构建者说,他们应该真正允许、接受或拒绝所有工具等等。Anthropic 真的希望用户能够掌控,并且用户能够掌控。因此,他们在 MCP 规范中内置了许多真正规定这一点的内容。因此,你可以实际链接 MCP 服务器
当像,好吧,我会解释。所以有一件事叫做采样,这是一个非常糟糕的名字,但它基本上,它说 MCP 服务器需要进行一些 AI 推理。客户端已经请求了这个所谓的工具。该工具可能是给定此输入字符串,从此处获取文档。然后服务器说,哦,我的上帝,我有一个输入字符串。我需要获取文档,但我需要对这个输入字符串进行分类或其他什么操作。所以基本上,
以前我们会说,哦,这是一个子代理。但是 MCP,我们会添加一个 API 密钥,我们会调用 LLM 中的工具。但 MCP 说的是,实际上,不,不,不,不,不,不,不。我们赋予用户控制权。如果该工具使用 AI 在外部执行某些操作,那么用户就无法控制。因此,他们引入了这个叫做采样的东西,我认为还没有人使用它,但我认为它可能会消失。但目前,它只是一个非常有趣的想法,是的,
服务器实际上会回调客户端,说,你能帮我做这个推理吗?然后客户端可以决定是否想要这样做。例如,在分类任务中,它会回调客户端,并说,你能进行这个 AI 分类来定义可能要调用的外部文档吗?然后它返回,然后工具开始执行某些操作。这不是一个很好的例子,但希望你能明白我的意思。客户端……
客户端的用户保持控制。客户端可以调用服务器。如果服务器需要使用 AI,它可以回调客户端,这就是采样。Anthropic 对此非常重视。谷歌采取了略微不同的方法。这就是为什么他们说它们是互补的。呃,
你是否相信这一点,我不知道。但谷歌采取了略微不同的方法。谷歌的方法是,该工具将是一个子代理。这就是为什么他们称之为代理到代理,因为采样的想法,客户端保持控制的想法并不重要。
它根本不存在。它更多的是针对每个特定任务的一个代理。在我的例子中,在我的 HR 技术领域,我们将有一个了解求职者追踪系统的代理,我们将有一个了解 HR 系统的代理,我们将有一个了解消息系统的代理。如果你需要做某事,你将有一个协调代理,它只是连接并遍历所有这些不同的,只是调用这些单独的子流程。
或调用这些单独子处理器的用户。这就是它们的位置。它们只是不同的理念。但是是的,有很多标准。好的。
是的,整个 AI 代理,好吧,每个任务一个单独的代理,这有点类似。我想这更符合我在网上看到的代理理念。这似乎是人们正在做的事情。这实际上引出了一个不同的问题。他们发布了一篇关于此的完整白皮书。我真的很推荐任何收听的人阅读谷歌的白皮书,因为
它真的很好。我认为它就叫做《代理》。但是如果你阅读了这篇白皮书,然后你阅读了 Anthropic 的《构建有效的代理》,你就会看到同一枚硬币的两面以及人们正在走的不同道路。好的。是的,因为实际上……
实际上,我最近在 LinkedIn 上提出了一个问题,即某些东西在什么情况下会成为一个代理系统,因为我看到很多例子,特别是来自 AWS 方面。它是,好的,这是一个带有不同基岩提示调用的状态机工作流程,我想,他们称之为代理。但同样,没有
你有一个静态行为,你有一个静态流程。没有感觉,好的,AI 正在决定接下来会发生什么。以及与我尝试过的 Postman 的 AI 工作流程构建器相同。怎么样?这是一个非常好的直观的,我想,工作流程构建器。但与此同时,路径是相当静态的。
静态的,它是预先确定的。你使用 AI 来做出决策。然后你可以说,你有一些步骤,它们生成一些输出,然后它们成为下一步的输入,这是另一个 AI 提示。这可以决定说,好的,让我们做 X 或 Y。然后基于此,你可以进行一些分支。
但这与说,好的,AI 代理进来了不一样。我认为你使用了这样一个例子,你有一个协调代理来决定接下来做什么,然后任务将传递给其中一个,我想,专门的代理。
所以考虑到这一点,它仍然感觉非常像 DAG,像状态机,而不是我认为你指出的 Anthropic 论文中提到的那样,一个代理,一个工作流程有点像 DAG,而代理更像是当 AI 模型具有决定接下来发生什么、何时完成、接下来做什么的能动性时。如果它可以决定是否调用工具,并且……
我不知道是否有人编写了像整个过程来决定是否调用工具这样的代码。你基本上有一个循环,你有一个工具,然后你有一些执行工具的方法。所以如果它有这个循环,我会说它是一个代理。它是一个代理。好的。这是我个人的定义,但是,
所以即使你只有一个函数调用,比如说,一个 LLM 提示,因为你可以用基岩做同样的事情。这就是我们所做的,你用一个提示发出请求,响应说,哦,这是一个工具调用,你必须为工具调用实现这些函数。即使发生这种情况,你认为这算作一个代理吗?是的。
是的,如果它是一次性的,所以你只是得到输出,你使用它来构建输出,或者你使用它作为流程中的下一个阶段,那么不。但是如果在之后,如果在最后你回到模型并说,现在你想接下来做什么?那么对我来说,它就是一个代理,是的。
好的,对。在这种情况下,我想接下来的问题就变成了,我看到很多代理的例子,感觉像是过度工程。我的意思是,你会在什么情况下建议,好的,你应该构建一个代理,一个遗传系统,而不是仅仅是某些东西,也许你必须对 LLM 进行多次提示,多次调用,感觉很多问题都可以用它来解决,而不是必须实际
使用函数调用或其他什么,你会在什么情况下说,好的,这是你应该使用代理来实现的东西,而不是仅仅是 LLM 提示的序列?是的,我想你只需要尝试一下。好的。是的,你只需要玩一玩。所以,我的意思是,最简单的方法是从 ChatGPT 开始,然后当你在使用 LLM 构建时,这确实是直截了当的方法
然后就像,哦,我可以给定 ChatGPT 上的一些输入和输出来解决这个问题吗?如果你可以,那么它就是一个单一的 LLM 调用。
然后如果你可以进入下一阶段,如果你可以将其想象成一个状态机,那么尝试将其建模为一个状态机。但是如果你在某个时候到达一个点,有很多小的启发式方法来决定走哪条路,走哪条路,你会将其投入生产,甚至不是投入生产,你会
如果你得到 20 个输入和 20 个输出,你应该在你的系统中拥有这些,这就像,像构建任何类型的 AI 应用程序的基线一样,就像 20 个好的输入,20 个好的输出。然后你只需要编写一些测试,编写一些评估,基本上是 AI 领域的测试。它们实际上只是测试。你可以使用测试运行器来运行它们。呃,
但是是的,如果你编写一些评估,你很快就会发现你是否可以将其建模为状态机,作为 DAC,或者情况是如此不受限制,以至于你必须依赖 LLM。你可以通过构建非结构化文本的输出做一些惊人的事情,因为这就是 LLM 真正擅长的事情,对吧?你拿……
哦,一个家伙在我的窗外跑得很快。我不知道你能不能听到。LLM 真的擅长获取一些冗长、非结构化、非常嘈杂的文本或媒体,实际上。现在我们有了多模态。并将它们转换为某种结构化输出,无论是工具调用还是……
甚至是 JSON,你知道的,所以这本身就非常有用,所以也许这就是你的应用程序所需要的,但是我认为随着你越来越多的推动,并且越来越多地给予……
我不想称之为能动性,而是复杂性给这个模型,你会到达一个点,你会像,我无法在我的评估中走得更远了。有很多边缘情况。我们需要赋予模型能动性。我认为我们第一次看到这种情况可能是 GPT-3,对不起,Sonnet 3.5,以及更多的是 3.6,然后更多的是 3.7。
3.6 是他们称之为 3.5 新的版本。我认为它只是,我们只是口语上称之为 3.6。你可以在 3.7 中更多地看到……
是的,模型的整个命名是一个完全混乱的局面。我们也可以在某个时候谈谈这个。3.7 是我在代理上下文中使用的第一个真正有效的模型。然后你可以解锁更多体验。所以第一个是将非结构化内容转换为结构化内容。第二个是像我们获取非结构化内容,我们将其结构化,我们也可以使用这些数据。
所以它就像,是的,你想向模型交付多少?从简单开始。好的。我想当行为不太确定性时,我想这就是你开始考虑,我可以使用 AI 代理并将模型赋予更多控制权,我想,我们如何做事情,我们如何处理事情。我想这引出了第二个问题,好的,如果你不能,
一次性完成它并让模型一次性完成它,他们需要做一些其他事情,所以这就是你知道的,我想我可以看出好处在哪里,你可以使用更专业的模型来完成更专业的任务,但是然后我有点,我想我从来没有完全协调过的是,好吧,那里有所有这些模型,我该如何选择如何
如何轻松选择适合每项任务的模型?人们最终是否只是对每件事都使用功能最强大的模型,但他们有不同的提示,系统提示和用户提示,或者也许为每个任务都有不同的机架设置,或者有没有什么方法可以让你说,好吧,对于这一步,我将使用Cloud 3.5。下一步,我将使用……
Gemini 2.5 Pro,接下来我将使用DeepSeq。很好的模型,Gemini 2.5 Pro。非常好。你用它做过编码吗?
没有用于编码,但我用它来聊天,我看到了很多基准测试,它排名很高。我想稍后讨论的一个问题可能是关于具有大上下文窗口的推理性能,但我们可以多谈谈。我们稍后再谈。选择模型非常困难。我的意思是……
是的,有很多模型,而且它们变化很快,感觉你一直在追逐自己的尾巴。我想确保某些东西有效运作的唯一方法是测试它。好的。所以,很多人都会犯错,我也犯过很多次这样的错误。当你开始一个新的AI项目时,
看在上帝的份上,你需要对什么是好的有所了解。因此,你需要20个。我说过,我知道我五分钟前说过,但是,你需要创建20个黄金标准输入和20个黄金标准输出,并且
找到某种方法来评估你得到的输出与你作为黄金标准的输出。这真的很困难,尤其对于使用AI技术进行构建的开发人员来说,因为他们突然会说,哦,我的上帝,我正在法律科技领域进行构建。我不知道这意味着什么。好吧,你实际上必须去学习这意味着什么。你的输出意味着什么,它们喜欢什么,
某些东西是否良好,你必须学习,或者你必须找到一个了解情况的利益相关者,你必须追赶他们,或者你,并且你必须构建这个东西。我们做过很多事情,只是每天向真正了解情况的人发送一堆计划消息。然后得到,只是让他们标记答案,让他们纠正它,甚至只是说好或坏,然后尽快建立数据集。
关于什么是好的。因为一旦你有了这些测试,你就可以针对多个模型进行测试,并且你可以找到有效的模型。先贵后便宜,然后看看你达到你满意的成功水平。好的。
是的,我想这就是你将需要越来越多可能只是领域专家参与这个过程的原因,这样你甚至可以编写正确的提示或为你的模型提出正确的测试,也就是你过程中的正确评估。是的,这非常困难。例如,有些人非常擅长这些事情。所以我建议你去找Hamil Hussain,Jason Liu。他们有一些非常好的
呃,Hamil有一些关于这类事情的最好的博客文章,所以我只是要重复他所说的话,但是真的,像构建一个很好的方法是构建小的自定义UI,允许人们标记数据,所以你可以用Claude artifacts或v0或任何你想要的方式来做,但是
只是由Excel电子表格支持的东西。它不必很花哨,它只是允许人们看到另一个输入,然后是另一个输出,然后他们纠正输出。是的,
很快,你就会有一些数据,你需要至少20个问题。如果你不能提出20个问题,并且你无法做到这一点,你可能不应该构建非确定性事物。好的。而且,我想这是针对每个任务的。因此,根据你拥有的任务数量、代理数量,你需要越来越多的这些测试用例。这就是为什么更容易开始从代理的角度考虑它,因为你只需要……
完整的集成测试,就像你只需要开始和结束一样,如果将其分解为DAG,你确实需要过程中的每个步骤。是的。所以尝试从尽可能少的LLM调用开始,因为你确实需要每个20个问题。实际上你需要100个。将来,如果你考虑提高复杂性、降低成本,你将需要获得150、200、300个这些黄金标准问题
然后你可以打开更多的大门。你可以开始考虑微调一些东西,也许是你想要微调的嵌入模型。如果你正在执行某种检索任务,那么重新排序器也非常适合微调。嗯,
但是你需要了解你的系统是如何执行的。因此,跟踪这些指标,跟踪你在这些黄金标准输入和输出评估中的表现,这是你唯一可以做到的事情。否则,你只是在黑暗中射击。基准测试非常饱和,非常糟糕,而且保证它们都不像你的用例。即使是编码基准测试,你知道,像SweeBench?它只是Python。
只有Python?是的,它主要只是修复Python中的类型提示。它们根本不代表我日常编码中的问题。
是的,根本不是。这令人惊讶,因为人们将其几乎视为黄金标准,并基本上支持这样的论点,哦,AI的编码能力与开发人员一样好。是的,它只是Python。好的。它只是一种语言。好的。它就像研究人员的Python。就像,是的。你应该看看它。像这些基准测试,值得看看一些数据。
只是浏览一下,看看它是什么样的,看看他们实际评估的是什么。我保证你会感到震惊。我的意思是,这与我以及其他许多人关于使用AI进行编码有多好或有多糟糕的轶事经验是一致的。我的意思是,它在某种程度上是有用的,但是很快就会在比我认为在函数级别或模块级别更复杂的事情上崩溃。一旦你开始考虑,好的,整个系统级别,你就会不时做一些非常愚蠢的事情。是的,我认为这就像将模型用于它们擅长的事情一样。
我最近和一位同事一起编写代码,这是一个非常受约束的问题。我们正在为一个聊天应用程序构建一个解析器。因此,这个聊天应用程序输出长文本流,并以XML标签分隔。
标签定义了它应该在前端放置的位置。其中一些只是答案。因此,它应该只是流式传输到答案。但其中一些是引用。有一些思考部分。有一些工具调用部分。它们都是,它实际上只是一个字符串。就像模型只是输出一个由XML分隔的字符串一样。
这不是最好的方法,但我们很久以前就设置了这个,这就是它所做的事情。前端变得有点混乱,例如传递这些标签。所以我们只是说,哦,我们将把传递移到后端。我们将使其成为一个包。我们将使其非常漂亮整洁。所以我所做的只是编写了大约10个,或者甚至不是10个,也许是8个测试,非常描述性的测试,说明我认为传递的最终结果应该是什么样子。
然后我只是,然后我只是用Gemini 2.5一次性完成了它,它,
真正地,只要它通过了这8个测试,实际上我不太关心它做了什么,它就像粗略地看了一眼,它在过去的两周内运行良好,并且可能会继续运行,因为它通过了我的测试,你知道,这些测试是……它们正是我需要的,所以我认为很多人在使用模型、LLM时都会遇到困难,因为没有边界,没有边界区域,没有强制函数
因此,如果你的代码库中有非常好的类型,如果你有真正能……如果你有一个受约束的问题,模型真的非常好,尤其是这些新的代理模型。好的。我想你刚才提到了Gemini 2.5 Pro。所以让我们回到我们之前讨论的事情,即……
现在很多模型都有非常大的上下文窗口。让我看看,Llama 4出来了,有1000万个上下文窗口。但是我记得我们上次在Serverless London聚会上谈话时,你告诉我,是的,其中一些模型有100万个令牌上下文窗口,但它们无法进行推理。他们为提供商发布的所有模型,他们发布……
Haystack测试,基本上测试模型回忆信息的能力。但这并不意味着它们实际上可以使用上下文窗口中的那么多数据进行推理。从那时起,我一直关注其他基准测试和类似的东西。我看到有一个Fiction Live Bench
它基本上查看模型在不同有效负载大小下进行推理的能力。除了GemLight 2.5 Pro,当它达到上下文窗口中的120,000个令牌时,它仍然可以达到90%的准确率。但是如果你看看DeepSeq R1,它的准确率下降到33%。
因此,即使你可能有更大的上下文窗口,你也无法真正使用太多。大多数这些模型一旦达到大约40,000或50,000个令牌就会崩溃。就是这样。Llama 4、Skeleton、Maverick。当你达到大约60,000个令牌时,准确率约为30%。我的意思是,我认为这很好,就像
我们有很多内部基准测试,大多数情况下,你无法在任何模型上获得超过20,000个令牌。无论它是哪个模型,你都必须非常小心地填充上下文窗口。我实际上刚刚更新了我的CodaView GPT项目。我不知道我们上次是否讨论过它,但是
它已经过时很久了。我刚刚更新了它,因为当时我们说,哦,我的上帝,我们试图优化API调用的减少。所以我们尽可能多地用你的代码填充上下文窗口,说,审查这些代码片段,填充上下文窗口。所以我们可以减少调用次数,因为我们说,哦,我的上帝,那会更好。我们只需减少调用次数。我们并行执行它们。我们不太可能受到速率限制,所有这些东西。
这太天真了,因为实际上,我们填充了大约90%的上下文窗口。我知道它肯定会在大约10K个令牌后开始重复垃圾。好的。所以我在这里要非常小心。最近出现了一些非常好的基准测试。我看到了Fiction Live Bench。嗯,
但是,我会使用你自己的基准测试,并注意,如果基准测试是在上一代模型之前发布的,在上一代模型之后,100%是饱和的。有很多钱在风险中,这些基准测试会进入各种训练代码中。我会非常担心。
就像我记得关于某个模型的标题,我忘记了是哪个模型。我不想指责任何人,但是有一些关于哈利波特的事情,就像整个哈利波特,所有哈利波特书籍都被输入一个模型。它注意到他们更改了名称,更改了披萨的颜色,或者他们在中间添加了文本,例如披萨是蓝色的。然后他们问模型,这段文字有什么奇怪的地方?它就像所有哈利波特书籍一样,模型回答正确了。是的,
我会反驳说,当然它回答正确了。它是在这些书籍上训练的。所以,是的。
它会知道它所训练的书籍和你现在看到的书籍之间存在差异。好的。所以,是的,我会找到尽可能多的专有……你可以用基准测试做一些非常酷的事情。首先是找到尽可能多的你拥有的内部数据。长报告,任何从未见过互联网的东西。并且……
使用这些数据运行你的基准测试。因此,如果你有一堆报告,将它们堆叠在一起,然后询问模型中间的内容。这是一个非常好的长上下文基准测试,几乎任何在公司工作的人都能够做到,因为他们会在内部拥有大量随机数据。只需将你的Notion、Confluence、Jira票证堆叠在一起。这并不重要。只需将一些数据堆叠在一起,然后尝试推理中间的内容。
你可以做的一件事是这个。你还可以做另一件事,这更有趣,你可以利用实验室需要新的基准测试然后饱和基准测试的想法。如果你发布关于对你真正重要的事情的基准测试,保证下一个出现的模型会更好。因此,你基本上有一群博士生免费为你工作。所以我还会建议公司尝试这样做,因为这非常有趣。
好的,好的。是的,我过去尝试过这些实验,我尝试加载一个大型文档,然后看看我是否可以获得一些合理的答案,但它们从未奏效。我认为我尝试过ChatGPT,尝试过其他一些模型,它们完全崩溃了。
当然,当时我没有上下文,好的,上下文窗口在那里,但是如果你想从模型中获得合理的答案,你实际上无法使用太多。是的。
有些版本只是炒作,你知道,就像有一个中国实验室发布的版本。一些像,我们在内部使用这个提供商的许多模型。我们自己托管它们,非常好。我不会告诉你提供商是谁,但他们发布了其标准模型的100万个令牌版本,该版本是125,000个令牌。他们发布了一个100万个令牌的版本。是的,
我们说,哦,我的上帝,100万个令牌。是的,我们将能够用它看到更多的东西。它实际上在长上下文方面比标准令牌长度略差。它在大约15K时就死了。所以就像,这毫无意义。最后的数字,它只是,在那时它变成了营销。这可能是停止使用公司模型的卖出信号,因为他们实际上投入了资源,也许他们没有投入资源来真正变得更好。我不知道。谷歌是一个有趣的情况,因为谷歌有,
谷歌有不同的,就像他们的芯片架构风格,一切都非常适合长上下文。我相信有人可能会在评论中纠正我们,但是的,绝对去看看,就像值得做一些研究。我不想谈论它,因为我可能会把它搞砸,但是TPU的设计方式,它们,它们在长上下文推理方面具有一定的优势,至少如果不是训练的话,我不记得了。是的。
但是,谷歌有一些有趣的事情正在发生。我真的不能,但是,我很想买一个TPU,只是在我的房子里放一个,是的。这将非常有趣。——是的,这要花你10,000、20,000美元吗?——我不知道,我认为他们实际上并没有出售它们。我认为这实际上是更大的问题。——好的。——对于谷歌来说,出售TPU并不是一项商业业务。
或者至少不是像单个机架级别,例如10个TPU。是的,我不知道。好的。所以,Matt,非常感谢你再次加入我们。我想,最后,人们如何找到你,以及他们如何跟上围绕AI的所有这些变化?我的意思是,就我个人而言,我很难找到人
地方并获得对所有炒作的更受教育的看法,因为一切都具有变革意义。一切都是,哦,这将改变世界。这令人筋疲力尽。这是营销。那么,有人如何找到更少噪音的来源,或者至少具有更好的信噪比的来源呢?是的。
哦,这非常困难。是的,我大约一周前参加了Cloudflare Connect会议,他们问了同样的问题。就像,我们如何找出哪些不是噪音?对我来说更容易一些,因为我每天都在做这件事。所以对我来说,花一个小时尝试一个新模型,看看它是什么样的,尝试一种新技术,这没什么大不了的。但我真的认为……
这听起来很糟糕。最好的方法是有一些过滤器,例如一些做这类事情的朋友,他们可以为你过滤信息。这就像最好的方法。X就像Twitter,对于更当前的东西来说非常好。所以对于研究论文,但是你真的必须非常仔细地策划你的Feed。是的。
我关注的几个人似乎相当合理。有Simon,我忘记了他的姓氏了。我认为他通常会给出相当好的……Simon Willison?是的,他是英国人,不是吗?是的,他是。是的,我看过他的播客。所以播客也很棒。因此,任何有点进入门槛的地方,都很难做到。所以博客、长篇博客、播客……
在某种程度上,研究论文,它们非常好。什么真的很糟糕,你应该一直阻止的是像你从未听说过的MCP的五件令人惊奇的事情。就像,或者像,你永远也猜不到MCP会改变什么。像那些人,我倾向于屏蔽他们,因为它会伤害我的大脑。我没有足够的精力去做这件事。所有这些东西,忘记chargeivity。这是你应该使用的三个模型。确切地说。就像面对面,面对面的东西也非常好,因为像面对面的谈话,嗯,
它们非常好,因为这是一个进入门槛,对吧?有人在那里做了一些策划,无论是演讲组织者,甚至是演讲者或演讲者的公司。有一些你不需要做的策划。
所以,是的,尝试利用其他人的策划非常好,非常好。我非常喜欢的一个通讯是由Thorsten Ball撰写的。嗯,他,他写了一堆关于用Go构建解释器的书。他在Zed工作了一段时间。他现在在Sourcegraph工作。嗯,它叫什么?通讯?呃,
没关系。你可以稍后把它发给我。是的,它叫做Joy and Curiosity。好的。只是Thorsten Ball。他只有一个,所以你会找到它的。他只是发布了一些最……他链接了一些最有趣的博客。所以我主要从那里阅读博客,从朋友那里阅读Twitter,与我在Twitter上找到并想亲自见面的朋友面对面交流,我想。
是我运行AI Demo Days最好的事情,所以如果有人在伦敦,我们将在5月份的某个时候举办另一场活动,我们每隔几个月举办一次。
它们在LinkedIn和Twitter等平台上发布。如果你对这个领域感兴趣,你可能会找到它们。是的,AI Demo Days。所以它是demodays.ai。好的,好的。我会将这些链接放在下面的描述中,以便其他人也可以找到它。根据你的信息,你是我用来查找和过滤有关AI的信息以及应该注意什么信息的朋友。
但是,非常感谢你再次来到这里,并与我们分享AI的现状以及MCP的实际情况以及我们为什么应该关心它。但是,是的。是的,感谢你的邀请。这真的很有趣。是的,期待在伦敦再次见到你。也许下次我在伦敦,我会给你打电话,我们可以再次见面。是的,100%。好的,放松一下,伙计们。很高兴再次见到你。下次见。一会儿见。
这就是另一集Real World Serverless的全部内容。要访问节目笔记,请访问realworldserverless.com。如果你想学习如何构建可用于生产的环境的无服务器应用程序,请查看我在productionreadyserverless.com上的即将推出的课程。下次见。