虽然人工智能领域一直在以惊人的速度发展,但人们很容易被最新流行语和技术的炒作所迷惑。特别是如果你不愿意深入研究所有具体的技术方面。
更糟糕的是,某些公司过分承诺模型、工具、应用程序的功能……我们不需要走很远就能找到一些众所周知的例子,例如Humane Pin、Rabbit R1或非硬件领域的Devin,据称它可以从最初的问题和范围定义自主构建整个应用程序。
基本上,很多公司都推出了我认为(非常接近)AGI 的产品——作为拥有 15 年经验的 AI 专家和开发人员,我知道这还不可能实现!
能够部署大量 AI 代理或拥有完美的个人数字助理的想法无疑吸引了开发人员和企业的想象力,有望彻底改变 我们构建智能系统的方式,以及我们组建员工团队、开发软件和服务客户的方式。但它们真的是我们一直在等待的一站式解决方案吗?让我们退一步思考一下与设计和开发 Agentic AI 管道、功能、应用程序、多代理系统以及您能想到的任何其他事物相关的一些现实情况。
不可否认的是,人工智能代理是人工智能发展的一个令人兴奋的范式转变。人工智能代理的核心是它们是自主实体,能够感知环境并做出决策以实现某些目标。这为创建更具动态性和适应性的人工智能开辟了新的可能性。
诱惑是显而易见的——我们将构建灵活的、能够学习和适应的代理,而不是僵化的、基于规则的程序。需要一个系统来管理你的客户服务吗?部署一个人工智能代理,它可以处理查询、解决问题,甚至通过更新某种持久上下文来从过去的互动中学习,以便随着时间的推移不断改进。想要优化你的供应链吗?组建一个协调代理团队,他们可以监控库存、预测需求并实时调整订单。
这是一个诱人的愿景,它推动了LangChain、Autogen、CrewAI等框架的快速发展,试图“民主化”人工智能代理系统的开发。能够定义一些关键参数并让某个代理或多代理系统自动处理复杂任务,毫无疑问是非常有吸引力的。
另一方面,像Cognition这样的公司成功地说服投资者,他们可以提供完全由人工智能驱动的软件工程师,并且已经或正在构建许多无代码平台,以提供千篇一律的 RAG 聊天机器人,这些聊天机器人的灵活性更低,实际扩展性为零。
风险投资和投资者向这些类型的公司投入了大量资金。无知的泡沫现在似乎至少已经破灭了。
然而,与任何(过度?)炒作的技术一样,将潜力与实际情况区分开来非常重要。虽然人工智能代理无疑在人工智能生态系统中占有一席之地,而且是非常重要的地位,但它们并不是解决所有问题的灵丹妙药。然而,最重要的是,我们实现它们的方式至关重要,但有 100 种方法可以实现它。
许多 AI 代理框架的主要问题之一是倾向于引入层层抽象。虽然抽象有助于隐藏复杂性,但过多的抽象实际上会使系统变得更加不透明和难以推理。
以LangChain为例。虽然它提供了大量用于处理语言模型的预构建组件,但许多开发人员发现自己迷失在类、链和实用程序的迷宫中。本来应该简单的操作通常需要经过多个间接层级,这使得理解幕后实际发生的事情变得具有挑战性。
这种复杂性不仅使开发变得更加困难,还可能导致生产中出现意外行为和难以调试的问题。当您的 AI 代理做出关键决策时,您希望绝对确定它是如何做出这些选择的。
另一个常见的陷阱是高估人工智能代理的真正自主性。虽然像 GPT-4 这样的现代语言模型令人印象深刻,但它们仍然从根本上基于模式匹配和统计推断进行操作。它们没有真正的理解或常识推理能力。
换句话说,基于此类模型的人工智能做出的决策有时乍一看很合理,但仔细检查就会发现是错误的。换句话说,缺乏周密的防护措施和人类监督,导致自主代理无法采取在现实世界中实际上毫无意义或有害的行动。
YouTube 上有没有很酷的演示,其中 AI 模型从头开始创建整个 HTML 页面甚至全栈应用程序?甚至整个贪吃蛇游戏,只需一个提示,完全自主地完成?
当然可以!但这些演示的问题是:
这些演示展示了如何构建已有数千个示例可用的东西;除了构建 Pong 之外,构建贪吃蛇游戏可能是最常见的入门游戏开发示例之一。同样,还有大量关于使用可以想象到的所有技术构建全栈登录系统的示例、存储库和文章。
这些演示通常是经过精心挑选的,创作者必须以不同的方式和略有不同的要求尝试 10 次,直到出现值得在 YouTube 上发布的内容。
AI 代理(尤其是那些基于大型语言模型构建的代理)的运行成本(从计算角度而言)可能非常高昂。在多代理系统中,这种情况会变得更加明显,因为您可能会有数十或数百个代理进行交互。在生产环境中,这可能导致巨大的基础设施成本和潜在的延迟问题。
虽然这对于某些用例来说可能是可以接受的,但对于需要实时响应或需要大规模运行的应用程序来说,这可能是一个主要障碍。
人工智能代理经常被吹捧的优势之一是它们能够与各种工具和 API 交互以完成任务。然而,将代理集成到现有系统和工作流程中的实际情况往往比乍一看要复杂得多。
许多企业都拥有复杂的定制系统,这些系统无法完全适应某些代理框架所假定的即插即用模式。确保 AI 代理能够可靠且安全地与这些系统交互通常需要大量的定制开发工作。
那么,如果人工智能代理不是通用解决方案,我们应该如何设计和开发人工智能管道、功能和应用程序呢?关键是采取更细致入微、以问题为中心的方法:
不要问“我们如何使用人工智能代理?”,而是先明确定义您要解决的问题。您当前流程中的具体痛点或低效之处是什么? 您想要实现什么结果?
这种问题优先的方法有助于确保您以真正增加价值的方式应用人工智能,而不仅仅是追逐最新趋势。
AI 代理只是 AI 工具箱中的一种工具。根据您的具体需求,其他方法可能更合适:
对于简单的分类或预测任务,传统的机器学习模型可能就足够了。
如果您需要从文本中提取结构化信息,经过精心设计的提示的微调语言模型可能比复杂的代理系统更可靠。
对于优化问题,遗传算法或模拟退火等技术可能更有效。
关键是要将技术与问题相匹配,而不是试图强行采用特定的方法。
模块化是代理范式提供的最宝贵的经验。这意味着将人工智能系统分解为更小、可重复使用的模块,从而提高灵活性和可维护性。对于经验丰富的软件开发人员来说,这当然不是什么新鲜事,因为我们已经这样做了很长时间。
然而,这并不意味着你需要采用一个成熟的代理框架。相反,你可以考虑构建一个以 Razor 为中心、文档齐全的 AI 函数库,这些函数可以轻松组合起来解决特定问题。这将带来模块化,而不会产生不必要的抽象。
这是许多现有框架中最大的问题之一,因此,现在我想邀请您看看我自己的开源 Agentic AI 框架“ Atomic Agents”。它的目标是尽可能轻量、可组合和模块化,同时轻轻地推动您对所有与 AI 代理相关的代码进行同样的操作。但当然,它适用于任何范例。
github.com
随着人工智能系统在业务运营中变得越来越不可或缺,理解和控制其决策过程的能力变得至关重要。虽然完全自主的代理看起来很有吸引力,但在许多情况下,更可控的方法更可取。
考虑设计能够增强人类决策能力而不是完全取代人类决策能力的人工智能功能。这可能涉及:
对人工智能驱动的行动实施清晰的审计跟踪
为人类提供直观的界面来审查和覆盖人工智能的建议
结合反馈回路不断完善和改进人工智能模型
当你确实需要一个(多)代理系统时,请确保尽可能使用传统代码,并不断问自己“我为什么在这里需要人工智能?”
一个简单的例子是,代理必须在 3 个可能的操作之间进行选择,“使用网络搜索回答问题”、“查找电影”或“预约”。你真的需要代理能够协调这些操作,并能够自己选择吗?
在我看来,引入诸如“/searchweb” “/findmovie” “/appointment”之类的命令通常会是一个更好的主意(或者当然,两者的混合)。
在设计 AI 管道和功能时,重要的是要考虑它们在大规模情况下的性能。这对于需要实时运行或处理大量数据的应用程序尤其重要。
需要考虑的一些策略:
利用高效的模型架构和量化技术来减少计算要求
实现缓存和批处理以优化对语言模型的 API 调用
设计系统在高负载下可以优雅地降级为更简单的模型或启发式方法
为了使 AI 功能发挥真正的价值,它们需要与现有系统和工作流程无缝集成。这通常需要仔细规划和定制开发工作。一些关键注意事项:
为您的 AI 组件设计清晰、有据可查的 API
实施强大的错误处理和回退机制
确保您的 AI 系统能够处理组织中使用的特定数据格式和协议
虽然我们重点关注了人工智能代理的局限性,但值得注意的是,多代理系统在人工智能生态系统中确实占有一席之地,正如我之前所说,这是一个非常重要的位置。如果经过深思熟虑的设计,它们可以成为解决复杂分布式问题的有力工具。
关键在于要清晰地了解问题领域以及基于代理的方法可以提供的具体优势,然后进行多代理设计。
当我们反思开发 AI 管道、功能和应用程序所面临的挑战时,显然我们仍然需要更好的工具和框架。虽然像 LangChain 这样的现有选项有其优点,但在可用性、灵活性和性能方面仍有改进空间。
这就是Atomic Agents等项目的用武之地。通过关注模块化、清晰的抽象和易用性,我们可以创建开发工具,使开发人员能够构建强大的 AI 系统,而不会陷入不必要的复杂性。
强调可组合性而非单一框架
提供清晰、一致且易于理解的 API
优先考虑性能和可扩展性
投资全面、最新的文档和示例
确保切换模型或输入/输出合同时一切正常
随着我们继续前进,保持平衡的视角至关重要。人工智能代理和多代理系统是具有真正潜力的强大概念,但它们并不是解决所有人工智能挑战的灵丹妙药。
最成功的人工智能实现很可能是那些精心结合各种方法的实现——从传统的机器学习到尖端的语言模型和精心设计的代理系统。通过专注于解决实际问题、优先考虑可解释性和控制性,并投资于强大而灵活的开发工具,我们可以创建提供有形价值的人工智能系统,同时避免炒作驱动的开发陷阱。
作为开发人员和架构师,我们的职责是批判性地评估新技术,了解其优势和局限性,并明智地应用它们来创造真正改善我们工作和生活方式的解决方案。人工智能的未来无疑是令人兴奋的,但我们必须负责任地、有效地塑造它。
因此,虽然 AI 代理可能不是您所需要的全部,但它们在更广泛的 AI 技术生态系统中肯定发挥着作用。关键是要清楚了解您的特定需求,并愿意结合不同的方法来创建真正有效的解决方案,才能使用它们(以及所有 AI 工具) 。
请记住,归根结底,我们的目标不是使用最炫的新技术,而是解决实际问题并创造价值。牢记这一点,您将有能力驾驭令人兴奋但有时令人不知所措的 AI 开发世界。