什么是AI智能体?
本文探讨了AI智能体的定义,提出智能体是一个使用LLM决定应用控制流的系统。作者赞同Andrew Ng的观点,认为智能体能力是一个频谱,并介绍了“智能体化”的概念及其在开发、运行、评估和监控中的意义。
什么是AI智能体?
“什么是智能体?”这是我几乎每天都会遇到的问题。在LangChain,我们构建工具帮助开发者开发LLM应用,尤其是那些作为推理引擎并与外部数据和计算交互的应用。这包括通常称为“智能体”的系统。
每个人对AI智能体的定义都略有不同。我的定义可能比大多数更技术性:AI智能体是一个使用LLM决定应用控制流的系统。
即使如此,我承认我的定义并不完美。人们通常认为智能体是先进的、自主的、像人一样的——但一个简单的系统,其中LLM在两条不同路径之间进行路由,又该如何看待?这符合我的技术定义,但不符合人们对智能体能力的普遍认知。准确定义智能体很难!
这就是为什么我喜欢Andrew Ng上周的推文。他建议“与其争论哪些工作应该被包括或排除为真正的AI智能体,不如承认系统可以有不同程度的智能体化。”就像自动驾驶汽车有不同级别的自动驾驶能力一样,我们也可以将AI智能体的能力视为一个频谱。我非常赞同这个观点,并认为Andrew表达得很好。未来,当被问及什么是智能体时,我会转而讨论“智能体化”的含义。
智能体化意味着什么?
去年我做了一个关于LLM系统的TED演讲,使用了下面的幻灯片来讨论LLM应用中不同级别的自主性。
一个系统越“智能体化”,LLM决定系统行为的程度就越高。
使用LLM将输入路由到特定下游工作流具有少量的“智能体化”行为。这属于上图中的“路由器”类别。
如果你使用多个LLM进行多个路由步骤呢?这介于“路由器”和“状态机”之间。
如果其中一个步骤是决定继续还是结束——实际上允许系统循环运行直到完成?这属于“状态机”。
如果系统正在构建工具、记住这些工具并在后续步骤中使用?这类似于Voyager论文的实现,具有极高的智能体化程度,属于更高级的“自主智能体”类别。
这些“智能体化”的定义仍然相当技术性。我更喜欢更技术性的定义,因为我认为它在设计和描述LLM系统时很有用。
为什么“智能体化”是一个有用的概念?
与所有概念一样,值得问为什么我们需要“智能体化”这个概念。它有什么帮助?
了解系统的智能体化程度可以指导你在开发过程中的决策——包括构建、运行、交互、评估甚至监控。
系统的智能体化程度越高,编排框架的帮助就越大。如果你正在设计复杂的智能体系统,拥有一个具有正确抽象概念(用于思考这些概念)的框架可以实现更快的开发。这个框架应该对分支逻辑和循环提供一流支持。
系统的智能体化程度越高,运行起来就越困难。它将越来越复杂,有些任务需要很长时间才能完成。这意味着你会希望将作业作为后台运行来执行。这也意味着你需要持久执行来处理中途发生的任何错误。
系统的智能体化程度越高,你就越希望在运行时与之交互。你需要能够观察内部发生的事情,因为确切的步骤可能事先未知。你还需要能够在特定时间点修改智能体的状态或指令,以便在其偏离预期路径时将其拉回正轨。
系统的智能体化程度越高,你就越需要为这类应用构建的评估框架。你会希望多次运行评估,因为存在累积的随机性。你还需要能够不仅测试最终输出,还测试中间步骤,以测试智能体行为的效率。
系统的智能体化程度越高,你就越需要一种新型的监控框架。你需要能够深入查看智能体采取的所有步骤。还需要能够基于智能体采取的步骤查询运行记录。
理解和利用系统中智能体能力的频谱可以提高开发过程的效率和健壮性。
智能体化是新事物
我经常思考的是,在这场热潮中,什么是真正的新事物?我们需要为人们正在构建的LLM应用提供新的工具和基础设施吗?还是LLM之前的通用工具和基础设施就足够了?
在我看来,你的应用越智能体化,拥有新工具和基础设施就越关键。这正是推动我们构建LangGraph(智能体编排器,帮助构建、运行和与智能体交互)和LangSmith(LLM应用的测试和可观测性平台)的动机。随着我们在智能体频谱上走得更远,整个支持性工具生态系统都需要重新构想。
看看你的智能体到底在做什么
LangSmith,我们的智能体工程平台,帮助开发者调试每个智能体决策、评估变更并一键部署。
尝试LangSmith 获取演示