[ { "speaker": "Host", "text": "我觉得现在消费者的代理已经 相当多了,嗯, 想让代理帮 你预订假期几乎和 自己去预订一样难, 今天我们就来聊聊 我们最近的一篇博客文章《打造 高效代理》的幕后故事。" }, { "speaker": "Guest", "text": "我是 Alex,我 在 anthropic 负责 Claude 关系。" }, { "speaker": "Guest", "text": "我是 Eric,我 在 anthropic 的研究团队。" }, { "speaker": "Guest", "text": "我是 Barry,我在应用人工智能团队。" }, { "speaker": "Guest", "text": "我 先从这里开始,让观众先 了解一下代理的简要 定义。" }, { "speaker": "Guest", "text": "我的 意思是,代理有上百万种定义, 为什么开发人员或 实际使用人工智能构建的人要关心 这些事情。" }, { "speaker": "Host", "text": "嗯,Eric,我们可以从 你开始,好的,是的," }, { "speaker": "Guest", "text": "所以我认为 我们在博客文章中探讨的一件事 是,首先,很多人 说一切都是代理, 指的几乎任何东西都 不仅仅是一个 LLM 电话。" }, { "speaker": "Guest", "text": "嗯, 我们在博客文章中尝试做的一件事 就是将其与工作流程区分开来,工作 流程就是 你 有几个LLM调用链 在一起,实际上我们认为 代理就是让LLM 决定运行多少次,让它 不断循环 直到找到解决方案,呃, 这可能是你知道的,与 客户沟通以获得客户支持,客户支持可能 会迭代代码更改,但 你不知道需要 多少步骤才能 完成,这才是我们 认为代理有趣的地方,所以在 代理的定义中,我们让 LLM选择自己的命运, 决定它想做什么、采取什么行动,而 不是我们为它预先定义一个路径, 它更加自主,而 工作流你可以把它 想象成嗯,嗯,你知道,是的,一个 工作流,或者有点像在Rails上 通过固定数量的步骤," }, { "speaker": "Host", "text": "我明白了,所以 这种区别我认为这是 与客户进行多次交谈、 与不同 团队合作甚至我们自己尝试的结果, Barry,你能详细谈谈这是什么 样子吗。" }, { "speaker": "Host", "text": "我们必须在 工作流和工作流之间建立这种区分。" }, { "speaker": "Host", "text": "在 您经历这些的过程中,哪种模式最让您感到惊讶。" }, { "speaker": "Guest", "text": "嗯,说 实话,我认为所有这些都是在不断 发展的,就像模型变得越来越完善, 团队变得越来越复杂一样。" }, { "speaker": "Guest", "text": "我们 都与大量 非常复杂的客户合作,我们从 拥有一个 LM 发展到拥有很多 L, 最终让 LM 自行协调,嗯,所以您知道我们 决定创建 这种区别的原因之一是因为我们开始 看到这两种不同的模式, 您拥有 由代码预先编排的工作流,然后您拥有 代理,它更简单, 但在其他意义上也更复杂,就像 不同的形状一样, 我们开始看到嗯,我认为随着 模型和所有工具 开始变得越来越好,嗯,您知道代理 变得越来越普遍, 功能越来越强大,那时我们 决定,嘿,这可能是 我们给出正式 定义的好时机," }, { "speaker": "Host", "text": "所以在实践中,如果您是 实现其中一项功能的开发人员,那么在您的 代码中它实际上会是什么样子 开始构建它,就像 两者之间的区别,呃,也许我们 实际上深入到提示 级别,这里的代理 提示是什么样的,或者流程是什么样的,工作 流程是什么样的," }, { "speaker": "Guest", "text": "是的,所以我 认为工作流程提示看起来像你 有一个提示,呃,你把 它的输出输入到提示B中,把 它的输出输入到提示C中, 然后你就完成了,有点像是 直线固定数量的步骤,你 确切地知道会发生什么, 也许你有一些额外的代码来 检查这些中间结果, 并确保你 确切地知道在 这些路径之一中会发生什么,嗯,每个 提示都是非常 具体的提示,只是接受一个 输入并将其转换为另一个 输出,例如,呃,也许其中一个 提示是接受用户的 问题,然后呃,将其分为 五个类别之一,这样下一个 提示就可以更具体了," }, { "speaker": "Guest", "text": "好吧,相比之下,代理提示会 更加开放, 通常会为模型提供工具或 多个要检查和说的事情 嘿, 这是个问题,你可以进行网络 搜索,也可以编辑这些代码 文件或运行代码,并一直这样做, 直到你得到答案," }, { "speaker": "Host", "text": "我明白了,这 里面有几个不同的用例, 嗯,这很有意义,因为我们开始 得出不同的 结论,我很好奇,因为我们现在已经 大致介绍了 我们如何思考这些 工作流程和代理,并谈到 博客文章, 我想进一步深入了解幕后情况, Barry,你 从客户那里看到了什么有趣的故事,或者说是一些 离奇的事情,就 人们如何开始 在生产中实际使用这些东西而言," }, { "speaker": "Guest", "text": "是的,嗯,这实际上是从我自己的 经验中得出的,比如购买代理,我 加入的时候大约在 Sona V2 更新前一个月, 我的入职任务之一是运行 OS World,这是一个计算机基准测试, 大约一整周,我和 另一位工程师只是盯着这些 代理轨迹,这些轨迹 对我们来说是违反直觉的,然后 嗯, 你知道,我们不确定 模型为什么会做出决定,你 知道,这是 我们给出的指令,所以我们决定像 云一样行动,你 知道,把自己放在那个环境中,我们 会做一件非常愚蠢的事情, 闭上眼睛一 分钟,然后对着 屏幕眨眼一秒钟, 再闭上眼睛,想想我必须 编写 python 代码才能在这种环境下运行, 我该怎么做,突然间 它变得更有意义了,我觉得 很多代理设计都归结为 模型可能没有的很多背景和知识,我们必须对 模型有同理心,我们必须在 两个描述的提示和 我看到的环境中清楚地说明这一点,所以这里 给开发人员的一个提示几乎就像 你正在通过 模型本身的镜头来观察,比如,好吧, 这里最适用的指令是什么,模型是如何看待世界的,这与模型如何 看待世界截然不同 我们像人类一样运作,我 想还有额外的背景," }, { "speaker": "Host", "text": "嗯,埃里克, 我很好奇你是否还 看过其他故事," }, { "speaker": "Guest", "text": "是的,我认为 实际上我的想法非常类似, 我觉得很多人真的 忘了呃,忘了做这件事,我 认为我看到的最有趣的事情是, 人们会投入大量的精力 来创建这些非常漂亮 详细的提示,嗯,然后 他们为模型制作的工具就 非常简单了,嗯, 就像你知道没有文档一样, 参数被命名为 A 和 B, 这有点像工程师 无法像使用 函数那样使用它,因为没有文档, 比如克劳德怎么能指望你,你怎么能 指望爪子也能用这个,所以这有点像没有把 自己放在模型的角度,我 想很多人在开始 尝试使用工具和函数 调用时,他们有点忘记了他们 也必须提示,他们 想象一下这个模型,就像 一个更经典的编程 系统,但它仍然是一个模型,你 需要在工具本身的描述中迅速进行工程设计," }, { "speaker": "Guest", "text": "是的,是的,我注意到 人们好像忘记了它们都是同 一个提示的一部分,就像它们都被 输入到上下文窗口中的同一个提示中一样, 编写一个好的工具 描述也会影响提示的其他部分, 所以这是一个需要 考虑的方面," }, { "speaker": "Host", "text": "嗯,代理是 现在所有炒作的术语,很多 人都在谈论它,并且已经有 很多关于 这个主题的文章和视频,是什么让你们 觉得现在是我们 自己写一些东西的正确时机,呃, 再多谈一点关于 代理的细节," }, { "speaker": "Guest", "text": "是的,呃,我认为 对我们来说最重要的事情之一 就是能够很好地解释事情, 我认为这就像我们动力的重要组成部分, 就像我们 走进客户会议,所有东西都被 称为不同的术语, 即使它们具有相同的形状,所以 我们认为你知道它会是 如果我们能 有一套定义、一套 图表和代码来 向客户解释这些事情,那就真的很有用了,嗯,你知道, 我们已经到了这样的地步, 这个模型能够完成很多 代理工作流程, 我们看到的,现在 似乎是我们给出一些定义的正确时机, 这样就可以让这些对话 更容易一些。" }, { "speaker": "Guest", "text": "MH,是的,我认为对我来说,我看到人们 对代理有很多兴奋之处, 但也有 很多人真的不知道 它在实践中意味着什么,所以他们 试图把代理带到 他们遇到的任何问题上,即使更简单的 系统也可以工作,所以我认为 我们 应该写这篇文章的原因之一是指导人们 如何使用代理,同时也指导人们在 哪里使用代理, 你不应该用 火箭筒去追苍蝇," }, { "speaker": "Host", "text": "我明白了,这是一个 完美的部分。" }, { "speaker": "Host", "text": "L,我的下一个问题,这里 有很多关于 代理潜力的讨论,每个开发人员和 每个初创企业都 在尝试 思考如何 为 他们的公司或产品构建自己的代理版本,嗯,但你们 开始看到 在生产中真正起作用的东西,所以我们要在这里玩一个 小游戏,我想知道现在 关于代理的一个被过度炒作的东西, 以及一个 在 实施或实际 生产用途方面被低估的东西,或者像这里的潜力, 所以埃里克,让我们先从你开始," }, { "speaker": "Guest", "text": "我觉得被低估的东西就像是那些可以 节省人们时间的东西,即使 只是很少的时间, 嗯,我想很多时候,如果你只从 表面上看,就像哦, 这需要我一分钟的时间, 即使你可以完全自动化,也 只需要一分钟,就像有什么帮助一样, 但实际上这改变了 现在的动态,你可以做比 以前多一百倍的事情, 所以我认为我最兴奋的是, 如果它们更容易,就 可以真正扩大规模," }, { "speaker": "Guest", "text": "是的,我不 知道这是否一定 与炒作有关,但我认为这真的 很难 现在进行校准,就像 真正需要代理的地方一样,我认为 有一个交集,这是 使用代理的最佳点, 就像一组有价值且 复杂的任务,但也可能像 错误成本或监控错误的成本 相对较低一样,嗯,这组任务 就像不是不是非常清晰 和明显,除非你知道我们 实际上喜欢研究 现有的流程,我认为编码 和搜索就像两个非常典型的 例子,其中代理非常 有用,比如以搜索为例, 你知道,嗯,这是一项 非常有价值的任务,很难 像深度迭代搜索那样进行,但你 总是可以用一些像精确度和 召回率这样的权衡,然后只获得比所需多一点的 文档或多一点的 信息,然后将 其过滤掉,就像我们已经看到 代理搜索在那里取得了很多成功一样," }, { "speaker": "Host", "text": "现在的编码代理是什么样的," }, { "speaker": "Guest", "text": "我认为编码代理非常 令人兴奋,因为它们至少部分是可验证的, 嗯,你知道代码有 一个很棒的属性,你可以 为它编写测试,然后 你编辑代码, 测试要么通过,要么不 通过,嗯,现在假设你有 良好的单元测试,我想你知道 世界上每个工程师都可以说 我们没有," }, { "speaker": "Guest", "text": "是的,嗯,但至少它比 很多事情都要好,你 知道在许多其他领域没有等效的方法可以做到这一点, 嗯,所以这 至少为编码代理提供了 一种方法,它可以在 每次循环时获取更多信号,所以你 知道如果每次它 再次运行测试时它都会看到 输出的错误是什么,这让我认为 你知道模型可以 通过获得这种反馈来收敛到正确的答案, 如果你在迭代时没有某种 机制来获得反馈, 你就不会注入更多的 信号,你只会有噪音, 嗯,所以 没有这样的机制, 代理就没有理由收敛到正确的答案," }, { "speaker": "Host", "text": "我明白了,那么在 提高 代理在编码方面的表现方面, 目前最大的障碍是什么," }, { "speaker": "Guest", "text": "是的,所以我认为对于 编码嗯,你知道,在过去的一年里,我们看到 在 S 基准测试中,结果 真的从非常低上升到了 现在超过 50%, 这真的令人难以置信,所以这些模型 在编写代码来 解决这些问题方面做得非常好嗯,我觉得我的观点有点 争议, 我认为下一个限制因素 将回到验证上,这 对于 我们拥有完美单元 测试并且开始起作用的情况来说非常棒,但 对于现实世界的情况,我们通常 没有完美的单元测试, 所以我现在正在考虑 寻找可以验证的方法,我们 可以为你真正关心的事情添加测试, 以便模型 本身可以测试它,并在 它回到人类之前知道它是对还是错, 我看到确保我们 可以在过程中嵌入某种反馈循环, 它是完全 正确或 错误的," }, { "speaker": "Host", "text": "好吧,2025 年代理的未来 会是什么样子,巴里,我们将从 你开始," }, { "speaker": "Guest", "text": "是的,我认为 这是一个 这个问题真的很难,嗯, 这可能不是一件 实用的事情,嗯,但有一件事我 一直很感兴趣,比如 多智能体环境会是什么样子, 我想我已经给Eric展示过了, 我构建了一个环境, 很多云可以旋转 其他云,一起玩狼人杀, 这完全 是一个社交 推理游戏,所有的 玩家都在试图弄清楚 彼此的排位,嗯,这 和黑手党非常相似,完全是科技领域,非常适合 云游戏,我看到 我们有多个不同的云, 在这个游戏中扮演不同的角色,它们 都相互交流," }, { "speaker": "Guest", "text": "是的, 没错,然后你会看到 很多有趣的互动, 你以前从未见过,这 是我非常 兴奋的事情,就像你知道的,嗯,这非常 类似于我们从单 智能体到多智能体的过程,我认为到 今年年底,我们可能会看到我们 从智能体到多智能体的发展, 还有一些 我认为 在这个领域中,有一些有趣的研究问题需要解决, 比如代理之间如何 相互作用。当你协调 代理执行不同的任务时,这种突发行为是什么样的。这是否真的 会有用。或者说,比能够 访问更多资源的单个代理更好。我们现在是否看到任何 在生产中实际工作的多代理方法。我 觉得在 生产中,我们甚至还没有看到 很多成功的单代理," }, { "speaker": "Host", "text": "好的, 有趣的是,嗯,但你知道,这有点像成功代理的 潜在延伸," }, { "speaker": "Guest", "text": "嗯,我 想,呃,下一代模型的功能有所改进。" }, { "speaker": "Host", "text": "嗯,是的,所以这并不是建议 每个人都去探索多代理 环境,嗯,我认为,了解 模型的行为, 这为我们提供了一种更好的方式 来理解模型行为。" }, { "speaker": "Host", "text": "我明白了,好的, Eric,2025 年代理的未来是什么。" }, { "speaker": "Guest", "text": "我觉得在 2025 年,我们会 看到很多企业采用 代理 嗯,开始自动化很多 重复性的任务,并且真正 扩大很多以前人们想做 但成本太高的事情的规模, 你现在可以做 10 倍或 100 倍的 事情,嗯,我在想象, 你知道每一个拉取 请求都会触发一个编码代理来 更新你所有的 文档, 以前这样做成本高昂,但一旦 你想到代理几乎是 免费的,你就可以开始做这些,你知道在 任何地方添加这些花哨的东西,我想这可能是一些 暂时不会发生的事情," }, { "speaker": "Host", "text": "回到像被过度炒作的事情," }, { "speaker": "Guest", "text": "是的,我 觉得消费者的代理 现在被过度炒作了,我们 Goot 嗯, 因为我认为就像我们谈到的 可验证性一样,我认为 对于很多消费者任务来说, 几乎和 你 自己做一样需要大量工作,而且 验证的成本非常高,所以就像让 一个代理为你预订一个完整的 假期,准确地描述你 你想要的假期和你的 偏好几乎和 自己去预订一样难, 而且 风险很高,你肯定不希望代理商在你 没有事先了解的情况下就去预订机票。" }, { "speaker": "Guest", "text": "是不是也 缺少了背景信息,比如模型 能够推断出 某人的信息,而不必 随着时间的推移明确询问和了解偏好。" }, { "speaker": "Guest", "text": "是的,所以我认为 这些事情会实现的,但 首先你需要建立这个背景, 这样模型就已经知道你的 偏好和其他事情了。" }, { "speaker": "Guest", "text": "我认为这 需要时间,我们需要一些 垫脚石来完成更大的任务, 比如规划整个假期。" }, { "speaker": "Host", "text": "我觉得 很 有意思,最后一个问题, 你对正在 探索这个问题的开发人员有什么建议,比如 开始构建这个,或者只是 从一般的未来验证 角度来思考这个问题," }, { "speaker": "Guest", "text": "我觉得 我最好的建议是确保你 有一种方法来衡量你的 结果,因为我见过很多 人会去构建,并且在 没有任何方式获得反馈的情况下进行构建。他们的建筑是否 正常运转,嗯,你可能会建造 很多东西而没有意识到它 要么不起作用,要么就是一些 更简单的东西,实际上它们 做得一样好," }, { "speaker": "Guest", "text": "是的,我认为 非常相似,你知道,从 尽可能简单的开始,嗯,就像拥有可 衡量的结果一样,你 知道,就像在其中构建更多的复杂性, 嗯,有一件事让我印象 深刻,就像我和 一些资源非常丰富的初创公司合作,他们 可以 在一个 LM 调用中完成所有事情,并且 围绕代码的编排会 持续存在,即使模型变得更好,嗯, 就像他们的利基,嗯, 当我 看到其中一个时,我总是很高兴,因为我认为 他们可以 从未来的 能力改进中获益,对吧,嗯," }, { "speaker": "Guest", "text": "是的,我认为,实际上,您 知道,呃,我们不知道什么样的用例 对代理来说是最好的,而且 情况会发生变化,但是,嗯, 现在可能是一个好时机,开始 增强一些能力,比如 在代理领域思考,嗯,只是为了 更好地理解这种能力," }, { "speaker": "Guest", "text": "是的,我想我要 双击您所说的内容,比如对 模型变得更好感到兴奋, 我认为,如果您看看 您的初创公司或您的产品,然后 想,哦,伙计,如果模型变得更智能, 我们所有的 Mo 都会消失,那就 意味着您在构建错误的东西, 相反,您应该构建一些东西, 这样随着模型变得更智能,您的 产品就会越来越好,对吧," }, { "speaker": "Host", "text": "这是很好的建议,嗯,埃里克·巴里,谢谢 你们,嗯,这是在培养有效的 代理,谢谢,谢谢" }, { "speaker": "Host", "text": "[音乐]" } ]