
Auto-GPT、AgentGPT 和 BabyAGI 等 AI 代理,是 AI 飞速发展进程中的下一步演进。虽然 ChatGPT 在 2022 年底将生成式 AI 带入主流,但它仍需要人类输入提示。AI 代理背后的理念,是让 AI 在最少甚至零人工干预的情况下,围绕一个目标自主开展工作。
许多开发者已经意识到这项新技术的潜力。如果以 GitHub star 数量(相当于“收藏”一个软件项目)来衡量,Auto-GPT 是历史上增长最快的开源项目。自开发启动的六周内,它获得了 107,000 个 star。作为对比,数据科学领域最受欢迎的 Python 包 pandas 的 star 数量为 38,000 个。
本教程将解释什么是 AI 代理、它们与 GPT 等大型语言模型之间的关系,以及它们可以如何使用。在阅读本教程之前,了解什么是大型语言模型会有所帮助。GPT-3 新手指南是不错的入门材料。我也推荐我们的新课程AI 代理简介,系统学习 AI 代理及其真实应用。
AI 代理与 ChatGPT 有何关系?
解释 AI 代理需要掌握一些术语。请查看以下定义:
- 大型语言模型(LLM)是一类用于生成文本的机器学习模型。
- OpenAI 的 GPT是当前最流行的 LLM。最新版本是 GPT-4,但之前的 GPT-3.5-turbo 仍在使用中。
- 聊天(chatting)是一种工作流程:您向 AI 发送文本提示,AI 返回文本响应。
- 嵌入(embedding)是一种工作流程:您向 AI 发送文本提示,AI 返回该文本的数值表示。将文本表示为数字有助于搜索、推荐和分类等任务。
- OpenAI 的 ChatGPT是一个网页应用,为与 GPT 聊天提供便捷的用户界面。
正如 ChatGPT 是由 GPT LLM 驱动的网页应用,本教程涵盖的三种 AI 代理也都是由 GPT 驱动的应用程序。
这些 AI 代理试图解决的主要问题,是尽量减少 AI 完成任务所需的人机交互量。
AgentGPT 和 BabyAGI 本质上是“循环调用的 GPT”,即反复调用 GPT,将用户请求拆解为可求解的问题,并对每一步的输出不断打磨,直到成功完成各个子任务。
Auto-GPT 更进一步,为 AI 代理提供了互联网访问能力和运行代码的能力,使其能够解决更广泛的问题。
以下创新值得讨论。
长期记忆
LLM 会基于对话中的前文(包括用户提示和 AI 响应)来生成词语。然而,LLM 的记忆相当短:许多模型只能记住几百个词,最先进的 GPT-4 默认也只能记住约 6000 个词。当对话长度超过 LLM 的记忆上限时,回复之间可能会出现前后不一致。
对于大多数用例,这不是问题。但在某些情况下,确保完整对话——甚至先前的对话——被记住至关重要。聊天机器人以及其更高级的“亲戚”AI 代理,正是这种例子。
为 AI 代理提供记忆,是通过嵌入工作流程将对话文本以数字形式存储来实现的。每个用户提示或 AI 响应都会以一个表示其含义的数组形式存储。
这些数值数组存储在向量数据库中。目前,Auto-GPT 和 BabyAGI 使用 Pinecone(该领域的领军者),AgentGPT 团队也在开发对此功能的支持。
网页浏览能力
如果您向 ChatGPT 询问近期事件的问题,它会告诉您无法回答,因为它只在 2021 年 9 月之前的数据上训练。再次强调,这一限制对很多应用并不构成问题,但如果您的任务涉及最新事件或信息,就会带来麻烦。
该问题的一个解决方案,是赋予 AI 网页浏览能力,以访问互联网并自行查找答案。
Auto-GPT 可以通过 Google 搜索 API 自行开展研究。
这一功能略具争议:AgentGPT 和 BabyAGI 的开发者目前没有加入该功能,更倾向于将 AI 的知识限制在 GPT 的已知范围内。
运行代码
尽管 GPT 等 LLM 能从零生成代码、调试或改进现有代码,但它们无法真正运行代码。
Auto-GPT 可以执行 shell 与 Python 代码。这意味着它既能写代码又能运行代码。
这带来的一项强大能力是:它可以编写与其他软件交互的代码,然后运行它。这意味着它可以借助其他软件来完成任务。
AI 代理有哪些应用场景?
关于如何使用 AI 代理,目前仍处于非常早期的探索阶段。许多示例都是自动化个人助理的变体,比如新一代的 IBM Watson Assistant。
FirstSales.io 的 CEO Udit Goenka 在Twitter 上发文称,他使用 Auto-GPT 构建了一个潜在客户挖掘引擎。推文截图显示,AI 代理制定了一个搜索计划,查找过去一年内获得种子轮融资的公司(也就是应该有可用资金的潜在客户),并描述了创建列表的细节(提取公司名称和网址)。

谷歌软件工程师 Yew Jin Lim 发文称,他使用 Auto-GPT 创建了一个邮件助理(Github 仓库)。推文中的视频展示了 Yew Jin 如何向 AI 代理发送包含任务细节的电子邮件,以及该代理如何执行将事件添加到日历等任务。
AI 代理的风险与局限有哪些?
关于使用 AI 的共识性建议是:大多数任务在引入人工审查环节以校验 AI 行为时,效果更佳。请记住,AI 的定位应是助理而非专家(而且这个助理有时还会“幻觉”)。以下几点提醒应予以重视。
让 AI 持续运行可能很昂贵
通过 OpenAI API 调用一次 GPT 的成本相当低(以 GPT-3.5 为例,通常不到 1 美分,具体取决于输出量;GPT-4 更贵),但使用本文讨论的任一 AI 代理来执行复杂任务,可能涉及数百甚至上千次 API 调用。
建议在流程中设置断点,要求人工授权后再允许 AI 继续运行。
给予 Auto-GPT 访问软件的权限可能很危险
虽然可以为 Auto-GPT 提供访问任何 API 的权限,但如果您让它代表您自动买入股票,您需要做好亏光账户中所有资金的准备。同样,给它对公司数据库的写入权限也是个坏主意。
超越个人或企业损失层面,一些 AI 研究人员认为,先进的 AI 可能带来更大的,甚至是生存层面的威胁。尽管最初尝试利用 Auto-GPT 摧毁人类并未成功,但仍值得铭记机器智能研究院高级研究员 Eliezer Yudkowsky 发出的警告。
要想象一个充满敌意的超人类 AI,不要把它想成是潜伏在互联网上、只会发送恶意邮件的“书呆子”。请把它想象成一个完整的外星文明,以人类百万倍的速度思考,最初被限制在计算机中——身处一个在它看来“非常愚笨且非常缓慢”的生物世界。足够聪明的 AI 不会长久被困在计算机里。在当今世界,您可以把 DNA 序列通过电子邮件发送到实验室,那些实验室会按需合成蛋白质,从而使得最初被限制在互联网中的 AI 能够构建人造生命体,或直接跨越到后生物的分子级制造。
如果在当前条件下有人构建了过于强大的 AI,我预计地球上每一位人类以及所有生物生命,都会在不久之后全部死亡。
尽管这显然是最糟糕的情形,但值得思考不受约束的 AI 可能带来的危险。
如何使用 AI 代理?
若您想亲自试用这些 AI 代理,有一些网站可供体验。如果要更严肃地使用,您需要在自己选择的开发平台上安装它们。
无论您使用哪种代理、以及如何使用,您都需要获取一个 OpenAI API 密钥。相关说明见教程在 Python 中通过 OpenAI API 使用 GPT-3.5 和 GPT-4。
如果您想安装这些 AI 代理,请注意它们都是命令行应用程序,在当前阶段都需要花一些精力进行配置。
网页界面
AI 平台 Hugging Face 提供了Auto-GPT 的托管版本。您只需提供 OpenAI API 密钥,然后为 AI 指定角色和若干目标即可。
God Mode(以电子游戏中的上帝模式命名)同样允许您输入 OpenAI API 密钥,并直接给 Auto-GPT 指定要完成的任务。
对于 Replit 用户,您也可以fork 这个 repl,并提供您的 OpenAI API 密钥。
AgentGPT 团队提供了演示版本的 AI 代理,但作为免费版本,它大约运行两分钟后会终止。
目前我尚未找到 BabyAGI 的托管版本。
安装 Auto-GPT
Auto-GPT 是一个命令行应用程序,在当前阶段需要花一些精力来设置。您可以查阅详细的安装文档以便上手。
本指南假定您可以访问一个 shell(如 bash 或 zsh),并已安装 git 和 Python。
克隆 Auto-GPT 仓库
在终端中,克隆 Auto-GPT 仓库。
git clone https://github.com/Significant-Gravitas/Auto-GPT.git
进入刚创建的 Auto-GPT 目录,并检出 stable 分支
cd Auto-GPT
git checkout stable
获取 API 密钥
Auto-GPT 要求您拥有 OpenAI API 密钥(用于访问 GPT)。免费账户每分钟仅允许进行 3 次 API 调用,这不足以与 Auto-GPT 搭配使用,因此您需要开通付费账户。相关说明见我们的教程在 Python 中通过 OpenAI API 使用 GPT-3.5 和 GPT-4。
您还可以选择使用 Pinecone API(用于存储)、ElevenLabs API(用于语音接口)、Google API(用于搜索)以及 Twitter API(用于推广您刚刚构建的内容)。
配置 Auto-GPT
Auto-GPT 会将所有 API 密钥存储在名为 .env 的配置文件中。
请注意,以这种方式将 API 密钥存储在纯文本文件中并非良好的安全实践,因此您应只在安全环境中运行 Auto-GPT,例如本地机器;或者在使用后使您的 API 密钥失效。
复制 .env.template 文件,并命名为 .env。
在文本编辑器中,找到以 OPENAI_API_KEY= 开头的行,在其后添加您的 OpenAI API 密钥,且不要包含空格或引号。
以同样的 key=value 格式添加任何其他 API 密钥。
运行 Auto-GPT
可通过 run.sh shell 脚本(Windows 上为 run.bat)运行 Auto-GPT。
如需获取脚本的使用帮助,请使用 --help 参数。
sh run.sh --help
请注意,脚本在显示用法详情前,会进行大量 Python 包版本检查。
要启动一个 Auto-GPT 助理,只需在不带 help 参数的情况下运行同一命令即可。
sh run.sh
在完成包检查后,Auto-GPT 会询问您三件事:
- 为您的 AI 助理命名。
- 描述您的 AI 的角色。
- 为 AI 助理提供最多五个要尝试达成的目标。
安装 AgentGPT
AgentGPT 在其 GitHub 仓库的README 中提供了简要的上手说明。
克隆 AgentGPT 仓库
在终端中,克隆 AgentGPT 仓库。
git clone https://github.com/reworkd/AgentGPT.git
进入刚创建的 AgentGPT 目录。
cd AgentGPT
运行安装脚本
有一个 bash 脚本可用于设置该 AI 代理。
bash setup.sh --local
首先系统会要求您输入 OpenAI API 密钥,然后按 ENTER。
系统可能会请求访问您的桌面文件以及接受传入的网络连接。请接受。
几秒钟后,您应会收到类似如下的消息:
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
复制该 URL 并将其粘贴到浏览器地址栏。AgentGPT 将打开,并显示欢迎信息。

部署您的 Agent
为您的代理命名并设定目标,然后点击“Deploy Agent”。

安装 BabyAGI
BabyAGI 在其 GitHub 仓库的README 中提供了一些(非常简略的)文档。
克隆 BabyAGI 仓库
在终端中,克隆 BabyAGI 仓库。
git clone https://github.com/yoheinakajima/babyagi.git
进入刚创建的 BabyAGI 目录。
cd BabyAGI
安装所需 Python 包
使用 pip 安装运行 BabyAGI 所需的包。
pip install -r requirements.txt
配置 BabyAGI
创建一个名为 .env 的配置文件。
cp .env.example .env
编辑该配置文件。您可以使用任意终端文本编辑器;此处我们使用 vim。
vim .env
按 i 进入插入模式。
- 在以
OPENAI_API_KEY=开头的行后,追加您的 OpenAI API 密钥。 - 在以
INSTANCE_NAME=开头的行中,可选地为您的 AI 代理指定一个名称。 - 在以
OBJECTIVE=开头的行中,为您的 AI 代理设定要达成的目标。
运行 BabyAGI
运行 BabyAGI 脚本。
python3 babyagi.py
Auto-GPT 示例
作为测试,我将 AI 助理命名为“Jeff”,将其描述为“撰写 AI 教程的数据科学专家”,并给它的目标是“编写一篇关于 Auto-GPT 的教程”。

Auto-GPT 会定期提示您授权其执行下一步任务,无论是上网搜索更多信息,还是写入文件。按 “y” 允许其继续,或提供文字反馈。
在 Auto-GPT 尝试撰写教程几分钟后,它生成了这份教程文件。

它并不是一篇优秀、甚至不是事实准确的教程。因此,一如既往,在使用 AI 时,您需要在提示中非常明确地提出需求,并密切关注 AI 的行为。
更进一步
Auto-GPT、AgentGPT 和 BabyAGI 等 AI 代理代表着 AI 领域的重要飞跃,使我们更接近真正自主 AI 系统的愿景。随着这些代理以最少的人为干预朝着目标推进,它们为个人助理、问题求解器等广泛应用打开了大门。
为在瞬息万变的环境中保持领先,我们鼓励您拓展在数据科学、机器学习与 AI 方面的知识与技能。查看以下资源了解更多:

Richie 帮助个人与组织更好地运用数据与人工智能。他在“数据科学”这一称谓流行之前就从事相关工作,并在该领域撰写了两本书,创作了多门 DataCamp 课程。他主持 DataFramed 播客,并负责 DataCamp 的网络研讨会项目。
与 AI 版 Richie 对话,畅聊每一期 DataFramed——欢迎所有数据高手加入!
FAQs
ChatGPT 与 Auto-GPT 等 AI 代理有什么区别?
ChatGPT 旨在用于“人机在环”的交互场景:人输入提示,获得回复。另一方面,像 Auto-GPT 这样的 AI 代理被设计为围绕既定目标自主工作,常借助循环机制、记忆,以及网页浏览或代码执行等外部工具,在几乎无需进一步人工输入的情况下完成任务。
使用 AI 代理需要会编程吗?
通常需要对命令行工具、Python 和 API 密钥有基本了解,才能安装并运行像 Auto-GPT 或 BabyAGI 这样的 AI 代理。一些平台(如 Hugging Face 或 God Mode)提供更友好的界面,但要充分发挥这些工具的能力,往往需要亲自进行配置与设置。
AI 代理能浏览网页并访问实时数据吗?
是的,某些 AI 代理(如 Auto-GPT)可以通过 Google Search 等 API 访问互联网,从而获取实时数据。不过,出于安全、成本或可靠性方面的考量,这一功能有时会被省略(例如在 AgentGPT 和 BabyAGI 中)。
