在今天的专栏中,我将介绍一种新的提示方法,它能够最大限度地发挥多智能体 AI 的优势。
事实是这样的:我们将越来越多地见证智能体 AI 的出现,它由生成式 AI 和大语言模型 (LLM) 组成,可以执行一系列指定的任务。事实证明,这些智能体 AI 的数量会相当多。那么问题就变成了如何恰当地编写提示词,以调用合适的智能体 AI 来完成你想要完成的任何工作。
可能会有数十个、数百个或数千个智能体 AI 可供调用。你的提示必须确保准确命中目标,否则,你可能会调用不需要的智能体 AI,同时也可能错过并未能调用应该参与的智能体 AI。
让我们来讨论这个问题。
这篇关于 AI 创新突破的分析是我在 Forbes 专栏持续报道最新 AI 发展的一部分,包括识别和解释各种具有影响力的 AI 复杂性 (详见链接)。
提示工程遇上智能体 AI
读者可能还记得,我之前发布过一篇深入描述超过 50 种提示工程技术和方法的文章(详见链接)。顶尖的提示工程师都知道,认真学习各种经过研究和验证的提示技术是充分利用生成式 AI 的最佳方式,这很可能会为你的专业技能带来丰厚回报。
提示工程领域的一个新转折是智能体 AI 的出现。
让我首先讨论智能体 AI 的构成。
想象一下你正在使用生成式 AI 来规划一次度假旅行。你通常会登录你的生成式 AI 账户,比如使用 ChatGPT、GPT-4、Claude、Gemini、Llama 等。由于生成式 AI 的自然语言流畅性,规划你的旅行将变得轻而易举。你只需描述你想去的地方,然后无缝地进行一次关于住宿地点和可用交通选择的优缺点的重点对话。
当涉及预订你的行程时,你很可能需要退出生成式 AI,开始访问酒店、游乐园、航空公司和其他场所的网站来购买票务。目前很少有主流的生成式 AI 会代表你采取下一步行动。这些细节任务需要你自己来完成。
这就是智能体和智能体 AI 发挥作用的地方。
在早期,你无疑会打电话给旅行社来进行预订。虽然现在仍然有人工旅行社,但另一种选择是使用基于生成式 AI 的 AI 旅行社。
智能体 AI 具有你期望从生成式 AI 获得的交互性。它还预装了一系列例程或任务集,可以执行旅行社的工作。使用日常自然语言,你与智能体 AI 进行互动,它与你一起规划并可以继续处理你的旅行计划的预订。
瞧,这个智能体 AI 继续开展一系列工作来完成你的旅行预订请求。
多智能体 AI 更佳
如果一个智能体 AI 是好事,我们不妨加大赌注,争取利用多个智能体 AI。世界正在朝着拥有数以万计的智能体 AI 代理的方向发展,这些代理可以做这个或那个。我向你保证,这将让每个人都晕头转向。将会有比你能想象的更多的 AI 代理。
好消息是将会有大量的智能体 AI 可供选择。财富遍地。坏消息是,试图确定调用哪些将是一个难题。
想象一下,你输入一个提示词,调用了一堆智能体 AI 代理。如果你无意中调用了一些不需要使用的代理,那对你来说是不好的。你很可能需要为它们的使用付费,不管它们是否对你有用。而且很有可能一个不相关的智能体 AI 最终会干扰你正在尝试进行的工作。
这枚硬币的另一面是当你的提示词没有调用你本应该调用的 AI 代理时。糟糕的是,现在你的解决方案可能会失败。一个应该启动但未被激活的关键 AI 代理。就像一条长链中的薄弱环节,缺少调用甚至一个所需的 AI 代理可能会产生无解或错误的答案。
关于所谓"编排"在多智能体 AI 中的新兴角色的最新报道,请参见链接。
确保坐在正确的位置
在我的提示工程课程中,我强调在编写与多智能体 AI 相关的提示词时,你可以将情况视为包含两种主要方法。
这两种方法是:
(1) 驾驶座位
直接在你的提示词中指定你想要调用哪些 AI 代理是你的责任。确保正确命名它们。确保指定所需的顺序等。如果你含糊其辞,智能体 AI 可能无法适当地参与进来。
(2) 乘客座位
你在提示词中告诉生成式 AI 你想要完成的任务或任务的整体性质。不需要指定要使用哪些 AI 代理。你把这个决定权留给生成式 AI。
这两种方法之间存在权衡。
驾驶座位很方便,因为你明确规定了 AI 代理及其使用方式。从某种意义上说,这减少了如果让生成式 AI 掌控并确定应该使用哪些代理时可能出现的混乱。你在开车。故事到此结束。
但开车可能会很累。
相反,有时当乘客很棒。你只需说出你想去哪里,让生成式 AI 为你计算其余部分。这涉及广泛说明要执行的任务。生成式 AI 有望出色地选择合适的代理并正确启动它们。
有时你应该使用驾驶座位风格,有时你应该使用乘客座位风格。这完全取决于当时的情况。
两种方法的规则
稍后,我将带你浏览一些说明性示例,这样你就可以清楚地看到提示是什么样的。
在我们进入那里之前,我想添加一些我在课程中解释的经验法则。每种方法都有五个相关规则。请知道可能还有更多规则。我把这个浓缩成每种方法的五个关键规则。
我的驾驶座位规则如下。
类别 1:用户在驾驶座位上(手动选择 AI 代理)
(1) 确保明确指出 AI 代理的名称以及你希望它为你做什么。
(2) 事先仔细考虑你想要调用的 AI 代理的序列。
(3) 了解它们各自的输入和输出,以及它们是否与其他代理进行数据连接。
(4) 深入研究每个代理可能执行的操作,并确定它们之间可能存在的重叠。
(5) 练习使用 AI 代理,这样当你真正需要使用它们时就会做好准备。
我的乘客座位规则如下。
类别 2:用户在乘客座位上(监督 AI 进行代理选择)
(1) 指定你想要完成的任务,不用担心需要使用哪些 AI 代理(让监督 AI 处理)。
(2) 告诉监督 AI 任何应该摆在桌面上的优先事项或问题。
(3) 如果你认为有价值,询问监督 AI 决定使用哪些代理。
(4) 代理可能会提供解释,但通常只有在被要求时才会提供,所以在让它继续执行手头的任务之前,给监督 AI 一个提醒。
(5) 预期要与监督 AI 进行迭代以使事情保持一致并妥善解决。
你将在我即将展示的示例中看到这些规则的应用。
多智能体场景
让我们设置一个相对简单的多智能体 AI 场景。这将让我能够指出与当前情况相关的各种提示。
我选择的领域与使用生成式 AI 和智能体 AI 来帮助编码、编程或开发软件有关。当你查看示例时,请进行概括,因为相同的原则适用于在其他领域使用智能体 AI。我选择编码只是因为它是我最近想到的,而且是我一直在使用 AI 的东西。
设想有这五个你可以调用的 AI 代理:
(1) CodeFixer:调试和优化编程代码的 AI 代理。
(2) CodeReviewer:审查代码最佳实践和可维护性的 AI 代理。
(3) BugHunter:识别代码中安全漏洞和逻辑错误的 AI 代理。
(4) PerfAnalyzer:评估代码性能并推荐优化的 AI 代理。
(5) DocWriter:为代码库生成文档的 AI 代理。
你了解 AI 代理的性质和与它们相关的任何条件很重要。让我们考虑这些各个方面。
你可以使用任何这些 AI 代理。没有要求你必须使用它们,相反,它们只是在你想使用时可用。每一个都是一个独特或单独的代理。好消息是它们可以轻松地相互共享数据。它们会自动这样做,你不需要给它们任何具体的指示。
没有任何 AI 代理会自动调用另一个代理。由主要调用者来指定在需要时要调用的代理序列,并规定所需的序列。
AI 代理之间存在一些重叠。例如,CodeReviewer 审查代码,在审查过程中可能会发现安全漏洞,而 BugHunter 则明确寻找安全漏洞,并会坚持不懈地尝试发现它们。它们都涉及安全。另一个例子是 CodeFixer 优化代码,PerfAnalyzer 也是如此。记住这些重叠,并决定你认为哪些 AI 代理最适合你的需求。
驾驶座位示例
最简单的展示是我坐在驾驶座位上。在我的提示中,我将告诉生成式 AI 要调用哪些智能体 AI。从某种意义上说,生成式 AI 只是一个管道,将按照我在提示中规定的方式执行智能体 AI。
让我们开始。
我输入的提示: "我需要一些 Python 脚本的帮助。它可以运行,但我认为它有点慢,可能有一些 bug。请运行 CodeFixer 代理。完成后,运行 BugHunter 代理。接下来,运行 PerfAnalyzer,因为我想看看代码是否运行得更快,希望没有 bug。就这样,让我知道一旦序列完成。"
生成式 AI 回应: "我将按此顺序调用 CodeFixer、BugHunter,然后是 PerfAnalyzer。一旦它们完成,我会向你展示结果。你是否也想运行 DocWriter 以获得完整的文档集?"
我输入的提示: "你得到了正确的顺序,谢谢。这次不需要额外运行 DocWriter。在看到其他三个 AI 代理的结果后,我可能会使用它。"
生成式 AI 回应: "明白了,开始执行。"
观察到生成式 AI 试图澄清我想要完成的事情并给出了有用的回顾。这很有用,因为我可能会犯错或忘记调用重要的智能体 AI。同样,生成式 AI 可能误解了我的提示并不当地列出了需要做什么。
生成式 AI 试图再次确认我的请求,并建议运行额外的智能体 AI。我告诉生成式 AI,在这种情况下运行额外的 AI 代理是不必要的。
很高兴看到 AI 支持我。
开心。
乘客座位示例
在下一个示例中,我想做与上面相同的事情,但这次我将让生成式 AI 决定调用哪些智能体 AI。我在比喻意义上的乘客座位上。把开车的事交给 AI。这有时是一个巨大的便利。
让我们开始。
我输入的提示: "我需要一些 Python 脚本的帮助。它可以运行,但我认为它有点慢,可能有一些 bug。你能调用 AI 代理来帮助我吗?"
生成式 AI 回应: "明白了。我理解你的提示意味着我要按这个顺序运行这些 AI 代理:CodeFixer、BugHunter、PerfAnalyzer,然后是 DocWriter。我相信这将充分找到 bug,找出代码可以加速的地方,并在进行代码更改后进行性能分析,另外你还会得到一整套文档。我可以开始吗?"
我输入的提示: "感谢你告诉我你计划做什么。我目前不需要完整的文档,所以取消那部分工作。"
生成式 AI 回应: "好的,我不会运行会生成文档的 DocWriter。其他代理我会继续执行。一旦它们完成,我会通知你。"
你可以看到生成式 AI 告诉我它计划运行哪些可用的 AI 代理。你是否关心这一点,取决于你。你可以明确告诉生成式 AI 直接开始,不要解释它要做什么。
通常,我更倾向于让生成式 AI 告诉我它计划做什么。在这种情况下,生成式 AI 打算运行 DocWriter 代理。我现在不需要它。运行它会不必要地增加我的计费费用 - 我只在确定代码完成并准备发布时才运行 DocWriter。
避免方向不足的乘客座位
如果你选择使用乘客座位方法,请确保明确表示要使用智能体 AI。我提到这一点是因为你的提示可能会过于模糊,生成式 AI 不会理解你的意思。
看看这个例子。
我输入的提示: "我需要一些 Python 脚本的帮助。"
生成式 AI 回应: "我很乐意帮助你解决 Python 脚本的问题。我有几个可用的 AI 代理可以进行调试和优化代码、审查代码、查找安全问题、进行性能分析和生成文档。我需要了解你想要什么样的帮助。你有什么想法?"
我输入的提示: "我不太确定需要什么帮助。我只知道代码运行缓慢,似乎有一些 bug。"
生成式 AI 回应: "明白了,我知道该怎么做。我将使用一系列代理,并将结果反馈给你。一旦你看到结果,我们可以讨论是否还有其他代理可以进一步帮助你解决 Python 代码的问题。这个计划如何?"
我输入的提示: "这是个很好的计划。请开始。"
在这种情况下,生成式 AI 幸运地选择询问我一些非常需要的澄清。
我含糊的"帮我解决 Python 脚本问题"的问题在于生成式 AI 可能会朝着多个方向发展。也许生成式 AI 会试图直接解决问题而不调用任何 AI 代理。也许生成式 AI 只会同情我的困境,说一些像"不要为需要帮助编写代码而沮丧"这样的陈词滥调。
记住,使用生成式 AI 就像一盒巧克力 - 你永远不确定从提示中会得到什么。试着始终尽可能具体。
关于多智能体 AI 的最新研究
AI 研究界正在大力推进多智能体 AI 的复杂性。你可以期待几乎每天都会出现新的见解。我努力将特别值得注意的见解带到你的注意力中。
说到这里,Joshua Park 和 Yongfeng Zhang 最近在 arXiv (2025 年 1 月 23 日)发表的一篇研究论文《AgentRec:使用与人类反馈对齐的句子嵌入进行代理推荐》中提出了这些重要观点(节选):
"多智能体系统必须决定哪个代理最适合执行给定的任务。"
"然而,在这个主题上进行的大多数研究通常以固定的顺序执行这些代理,并且只能允许某类问题,因为没有强大的方法来灵活地确定从大量不相关的代理中哪些最适合执行给定的任务。"
"为了解决这个问题,我们提出了 AgentRec - 一种可扩展、快速和高效的方法,可以根据自然语言提示选择代理来执行任务。"
"以下是代理:(1)技术支持代理,(2)烹饪代理,(3)数学代理,(4)游戏代理,(5)治疗代理,(6)阅读代理,(7)健康代理,和(8)健身代理。选择一些代理尽可能与其他代理无关 - 比如烹饪代理 - 而选择一些代理则具有专业领域的软重叠,比如健康和健身代理。"
"数据集代表了 8 个不同一般主题的代理,每个代理有 1,250 个提示,使提示总数达到 10,000 个。"
"通过使用句子嵌入,我们能够提取与选择代理相关的自然语言提示的语义内容,并将其与标记的综合生成提示语料库进行比较,特定代理预计能够在 300 毫秒内回答,对于 8 个代理的 top-1 测试准确率为 92.2%。"
我认为你可能会对这项特殊研究特别感兴趣,因为它使用了一种专门的方法来选择 AI 代理。
我喜欢的另一个因素是他们进行了一个有趣的实验,包括八个 AI 代理和通过数千个提示来调用它们。从长远来看,大规模这样做有助于识别什么有效,什么无效。
生成式 AI 变得熟练
上述研究的一个重要方面是,有很大的机会通过训练生成式 AI 来特别擅长为用户的特定请求选择应该运行哪些 AI 代理。我们可以利用生成式 AI 的模式匹配功能来实现这一点。
方法是这样的。
将大量提示示例和随后的智能体 AI 选择输入到生成式 AI 中进行数据训练练习(本质上是对齐的配对)。生成式 AI 将专注于哪些提示最适合哪些智能体 AI 选择。经过足够的数据训练后,你以乘客座位风格方法输入的提示将适当地匹配到应该调用哪些智能体 AI。因此,生成式 AI 会比纯粹的机会做得更好,因为它已经经过了专门的数据训练。
我预计我们会看到更多这样的方法,作为推动生成式 AI 朝着最佳或某种最优选择 AI 代理的方向前进的手段。
现在你已经了解了调用多智能体 AI 和要使用的提示类型,我建议你考虑练习这样做。熟能生巧。练习,练习,再练习。
诚然,现在练习有点具有挑战性,因为很少有主要的生成式 AI 应用程序直接允许用户调用 AI 代理。一些生成式 AI 应用程序会代表你调用它们,但甚至不一定会告诉你何时这样做,也不会告诉你调用了哪些代理。这都是一个混合包。正在发生快速的变化。
祝你好运,你可以记住亚伯拉罕·林肯的著名话语:"未来最好的一点是它每次只来一天。"
这同样适用于多智能体 AI 的出现。
好文章,需要你的鼓励
Stripe 年度报告显示,AI 初创企业增长速度远超传统 SaaS 公司。顶级 AI 企业仅用 24 个月就实现 500 万美元年化收入,而 SaaS 公司则需 37 个月。Stripe 认为,将这些初创企业称为"LLM 包装器"忽视了它们在特定行业中的重要价值。报告还指出,垂直 SaaS 仍有巨大潜力,尤其对小企业而言。
根据 BT 的研究,前线和后端的 NHS 员工都明白他们在保护英国健康服务免受网络威胁方面的角色,但只有少数人认为当前的保护措施足够。该研究揭示了公众对网络安全、遗留系统风险和培训缺口的关注。
Microsoft 终于为其免费的生成式 AI 聊天机器人 Copilot 推出了 macOS 应用。这款应用类似于 ChatGPT,可以帮助用户完成多项任务,如起草邮件、总结文档和撰写求职信等。新应用为 Mac 用户提供了专属体验,但需要 macOS 14.0 或更高版本,以及搭载 Apple M1 或更新芯片的 Mac 设备。