什么是AI Agents?深入了解未来的 AI 界面
type
status
summary
date
slug
tags
category
password
icon
原文链接:What are GPT Agents? A deep dive into the AI interface of the future 作者:Logan Kilpatrick,OpenAI 开发者关系负责人发表时间:2023年7月26日
上周,我在Twitter上发推并询问有哪些人正在围绕GPT agents的概念开发酷炫的产品,我对收到的回应感到非常震惊。我也很惊讶,许多人似乎并不理解agents是什么,也不知道它们为什么会如此受欢迎。
这篇文章旨在让您从「我不知道AI Agent是什么,别瞎造词了」到「知其然且知其所以然地自信讨论 AI Agent」。
我们将介绍agents是什么,这个领域的发展趋势,以及大量这种早期技术在实践中的精彩示例。如同往常,这篇文章反映了我对这个话题的个人观点和想法,这就是你在我个人博客上阅读它的原因。让我们深入研究吧!
什么是GPT Agents(基础知识)?😎
首先,我们需要定义一些术语,然后我们会深入到更多的细节中。虽然没人喜欢背单词,但在AI领域中,为了理解一些奇特的术语,确立正确的概念是至关重要的。
GPT = generative pre-trained transformer,也就是生成式预训练转换器,这是驱动大型语言模型(LLM)如ChatGPT的核心机器学习模型架构。GPT是一个非常专业的术语,但通过ChatGPT被广大群众所熟知。
接下来,我们来看看什么是Agent:
Agent(智能体) = 一个设置了一些目标或任务,可以迭代运行的大型语言模型。这与大型语言模型(LLM)在像ChatGPT这样的工具中“通常”的使用方式不同。在ChatGPT中,你提出一个问题并获得一个答案作为回应。而Agent拥有复杂的工作流程,模型本质上可以自我对话,而无需人类驱动每一部分的交互。
上述定义有助于我们理解ChatGPT和Agent的关系,以及它们为用户提供的不同体验。ChatGPT接收单一查询的输入并返回输出,它一次不能完成超过一个任务。但是,随着ChatGPT中插件的推出,这种情况有所改变,模型可以利用外部工具一步执行多达10个请求。有人可能会争辩说,这是在ChatGPT内部“Agent”思想的第一次体现,因为模型正在决定该做什么以及是否发送额外的请求。
对于那些可能还没有尝试过插件的人来说,基本的概念是你可以告诉ChatGPT某个外部工具的API是如何工作的,然后它就可以编写并执行代码,根据用户查询向该API发送请求。比如,如果你有一个天气插件,当用户问“NYC(纽约缩写)的温度是多少?”,模型就会知道它无法回答这个问题,并查看用户安装的可用插件。假设它发送请求,API返回了一个错误信息,说“NYC不是一个有效的地点,请使用详细的城市名称,不要使用缩写”,模型实际上可以读取这个错误并发送新的请求来修复它。这是现今生产流程中Agent如何工作的最简单示例。
最后一个细节,我将agents称为GPT agents,仅仅是因为“agents”是一个非常常见的词,上下文经常不明确。GPT agents强化了这个概念与ChatGPT和AI有些相关,所以你应该从不同的角度来看待它。但是你可能会听到人们说智能体(agents)、自主智能体(autonomous agents)或GPT智能体(GPT agents),这些都是指同一种东西。
超越基础知识
一些使GPT agents如AutoGPT和BabyAGI大受欢迎的项目是有史以来最受欢迎的开源项目之一。agents的想法真正激发了开发者的想象力,人们正在争相围绕这个想法创建工具和公司。
在此,我要快速提示一下,如果你是一名开发者并且想要构建 Agents 体验,Langchain提供了一套非常好的库和工具集,这些工具可以帮助开发者做到这一点,而无需从头开始构建所有东西。
这是全球发展最快的语言模型应用框架,配备了LLM工具和agent支持。
如果你必须将agents的概念简化为一句话,一个选项可能是:“给大型语言模型设定目标的能力,以及让模型在循环中自我提示的能力”。这就是真正发生的所有事情。交互不再是线性的,而是可以并行(同时进行多个提示以解决同一个目标)和单人的(对话中不需要人类参与)。
以下是BabyAGI的工作方式,请花一些时间理解一下,我知道这个图解可能有些令人生畏,但当我们逐步讲解时,它会变得更加清晰:
来自 https://github.com/yoheinakajima/babyagi 的图片
这个过程在为智能体创建一个目标或主任务后,主要分为以下三个步骤:
- 获取第一个未完成的任务
- 丰富结果并存储在向量数据库中(如果你不清楚这意味着什么,没关系)
- 创建新的任务并重新设置任务列表的优先级
让我们一起来看一个具体的例子。我们可以从一个任务开始,例如"编写一篇关于ChatGPT以及功能的1500字博客文章"。作为控制agent的用户,你可以写出这个目标,尽可能详细地提供要求,然后你就完成了。
模型接收这些要求,并执行如下操作:
在这个例子中,我们使用OpenAI API来驱动agent。系统消息允许你在一定程度上定义你的agent,但在这个例子中,我们并没有真正使用它。然后,我们添加用户查询和关键的下一步,即在其上添加一个任务,该任务是将查询分解成子任务。
然后,你可以将子任务放入一个循环中,并进行额外的调用以执行这些子任务,所有这些都带有不同的系统消息(想想不同的agents,可能是一个写作agent,一个研究agent等)。你可能会想要“将这个任务分解成更简单的子任务,直到你100%清楚需要做什么并且可以高精度地执行任务”,这样模型就不会陷入添加更多任务的无限循环中(如果你没有正确地进行提示工程,今天的agents就会常常出现这个问题)。
另外,你可能在想,实现这些功能需要大量的OpenAI API请求。你想得对,agent的工作流确实消耗了大量的使用量,因此在操作时要小心。以现在的限制,你可能无法在ChatGPT中使用agents,因为有消息次数的限制,即使最近增加到每3小时50条消息。(在下面的帖子中查看更多详细信息)
ChatGPT-4的新消息限制已经提高到50条。
回顾一下我们的进展,我们已经看到了构建一个agent的第一步,将初始任务分解成子任务,然后让模型执行列表中的任务。babyAGI流程中值得一提的一些部分如下:“丰富结果”过程,这可能仅仅意味着像要求模型使任务更具体和详细这样简单的事情,这是一种自动提示工程。他们还将结果存储在向量数据库中,这对于确保你在整个过程中跟踪模型为你完成的所有步骤是有用的。基本上看到模型根据你的初始目标达到某个最终状态所做的“工作”是有帮助的,这样你就有一些关于如何完成的直觉。
babyAGI工作流中最后一个有趣的点是优先级列表的概念,这是我们所有人在执行任务时,有意识或无意识地都会做的事情。模型默认情况下会按照询问的顺序执行任务,所以有这个步骤可以确保模型按照有利于真正完成任务的顺序完成相关任务。
Agents 的实战应用 👀
到目前为止,我们已经从高层次和低层次讨论了很多关于agents的内容。但只要你看到这些 agents 在实际运作,这一切都会变得更加令人兴奋。在我们深入各种例子之前,先看看我制作的这个信息图,里面有一些在这个领域正在构建的公司和项目(抱歉,图片很长,因为正在构建的项目实在太多):
我认为基础 Agents 具有通用性,设计用来将任何任务分解成适合 Agents 工作流的形式。这类项目包括像babyAGI和AutoGPT这样的项目。从历史上看,AutoGPT是最常用的项目,但他们最近撤掉了他们的网络应用,现在你必须在本地进行操作。
要查看 Agents 的实战应用,我们可以使用这个很棒的Hugging Face空间,这是一个在线运行代码的环境:
发现社区制作的令人惊叹的机器学习应用
请注意,你在外部网站上粘贴API密钥时应非常小心。值得为实验创建一个新的密钥,然后在完成后立即删除,以防止泄露。
让我们从帮助我学习编程的目标开始:
你可以看到babyAGI的第一步是根据我的目标制定一个任务列表,它将“教我编程Python”分解成以下任务:
- 安装Python并熟悉Python解释器
- 学习基本的Python语法和数据类型
- 理解控制流和决策制定
- 学习有关函数和类的知识
- 学习有关模块和包的知识
……
下一步是,模型会编写一些文本来帮助我学习第一项。如果你自己试试这个,你可能会发现结果有点奇怪。例如,babyAGI忽略了第一步,而是做了一个"Hello World"程序。我也认为空间中的 UI 层可能正在抽象一些正在发生的事情。我建议在这里试验一下,看看还有什么其他可能。今天运行你的第一个 Agent 是一种接触这项技术前沿的好方法。
Agents 的未来 🔮
Agent的想法将会长久存在,它们是首批由通用AI驱动、能解决任务的实体。随着时间的推移,随着更强大的模型和工具的支持,它们将变得越来越复杂。例如,你可以想象一个简单的客户服务agent,它可以接手某人的问题,迭代地将其分解、解决,并验证答案。为了实现这个目标,需要几个关键条件:
- 更强大的模型:GPT-4工作得很好,但今天的使用场景仍然有限
- 更好的工具:我们查看的空间是一个超级简单且有用的例子,但对于真正的生产使用场景来说,还有所欠缺
- 不同的架构:随着模型的演化,将目标分解成子任务可能不再是正确的设计决策,有许多方法,比如从最终状态开始并向后工作,这可能同样有效
在工具方面,像 LangChain 这样的组织正在推出像 LangSmith 这样的产品,帮助开发者将这些工作流程投入生产。
深入研究LangChain创作者的最新产品🦜
事实是,为了使这一代智能体得以实现,将会诞生全新的框架。想到这一切真的是从插件和 AutoGPT 开始的,令人惊讶。我对未来深感激动,特别是对于利用世界级的 Agents 来帮助我完成我关心的工作的能力,这让我充满期待!