真正的智能体具有以下特点和类型:
很明确,未来的完全自主智能体可能会拥有所有四个构建块,但今天的LLM应用程序和智能体还没有达到这个水平。例如,流行的RAG架构不是智能体式的,而是以推理和外部记忆作为其基础。一些设计,如[OpenAI的结构化输出](https://openai.com/index/introducing-structured-outputs-in-the-api/)甚至支持工具使用。但重要的区别在于,这些应用程序将LLM作为语义搜索、综合或生成的"工具",但它们采取的步骤(即逻辑流)仍由代码预先确定。对比来说,当您将LLM置于应用程序的控制流中并让它动态决定要采取的行动、要使用的工具以及如何解释和响应输入时,智能体就会出现。只要这是真的,有些智能体甚至不需要与外部工具交互或采取行动。在Menlo,我们确定了三种不同主要用例和应用程序进程控制自由度的智能体类型。受到最严格限制的是"决策智能体"设计,它们使用语言模型来遍历预定义的决策树。"轨道智能体"则提供了更大的自由度,为智能体配备了更高层次的目标,但同时限制了解决空间,要求遵循标准作业程序并使用预先设定的"工具"库。最后,在光谱的另一端是"通用人工智能体"——本质上是没有任何数据支架的for循环,完全依赖于语言模型的推理能力来进行所有的计划、反思和纠正。以下,我们将探讨五种参考架构和每种智能体类型的人工智能体示例。
那么,如果软件开发的某些部分变得更快、更容易、更便宜,会发生什么情况呢?4年前,OpenAI发布了GPT-3,这是第一个真正意义上的大型语言模型。从那时起,我们就踏上了一段不平凡的旅程。现在,当我说大型语言模型时......我谈论的是其他人所说的人工智能。但我认为这个术语太笼统了。我特指的是使用深度学习和神经网络创建的模型。这些主要是大型语言模型,但也包括视觉和动作模型。它们是基于人类训练数据来理解单词、代码语法、图像和界面操作的模型。我也在谈论所谓的智能体。当我们让大型语言模型表现得像一个智能体时,它可以制定计划和决策,以尝试实现我们设定的目标。我们允许这些代理访问外部工具,如网络搜索、计算器,以及编写和运行代码的能力。以及数据库中存储的长期记忆。我们让他们模仿逻辑思维模式,比如让他们观察他们所知道的东西,计划他们下一步要做的事情,批判他们自己的工作,并一步一步思考。智能体可以决定在任何时候使用什么工具来解决我们给出的问题。这种将工具和逻辑链接在一起的架构使得语言模型比其他模型功能更强大。他们最终能够在我们现有的编程环境中完成相当复杂的任务。除非这里有人一直生活在与世隔绝的地方,否则你们就会知道我们一直在将语言模型和智能体部署到旨在帮助专业开发人员的工具中,例如GitHub Copilot、Cursor和Replit。他们可以读写代码、调试、创建文档和编写测试。一项研究表明,使用Copilot的开发人员完成任务的速度提高了55%,所以我们至少知道这可以加快人们的速度。从个人经验来看,我可以说,使用这些工具后,我会成为一名更优秀的程序员,但我知道人们对这些工具有很多怀疑和争议。也许他们只是在创建更多的垃圾代码和错误,供大家以后处理。
"智能体"(Agent)在人工智能和计算机科学领域是一个非常重要的概念。它指的是一种能够感知环境并采取行动以实现特定目标的实体。智能体可以是软件程序,也可以是硬件设备。以下是对智能体的详细介绍:[heading3]智能体的定义[content]智能体是一种自主系统,它可以通过感知环境(通常通过传感器)并采取行动(通常通过执行器)来达到某种目标。在LLM支持的自主Agent系统中,LLM充当Agents的大脑,并辅以几个关键组成部分:规划子目标和分解:Agents将大型任务分解为更小的、可管理的子目标,从而能够有效处理复杂的任务。反思和完善:Agents可以对过去的行为进行自我批评和自我反思,从错误中吸取教训,并针对未来的步骤进行完善,从而提高最终结果的质量。记忆短期记忆:所有的上下文学习都是利用模型的短期记忆来学习。长期记忆:这为Agents提供了长时间保留和回忆(无限)信息的能力,通常是通过利用外部向量存储和快速检索来实现。工具使用Agents学习调用外部API来获取模型权重中缺失的额外信息(通常在预训练后很难更改),包括当前信息、代码执行能力、对专有信息源的访问等。