自主 AI 来了?一文详解火爆全网的 AutoGPT

最近,开源 AI 项目 AutoGPT 在开发者圈中掀起了不小的热潮,“无需人类插手,自主完成任务

”的特点吸引来了很多人的关注,为此本文作者将就 AutoGPT 的工作原理进行深入解析。原文链

接:https://sudoapps.substack.com/p/technical-dive-into-autogpt未经授权,禁止转载!

作者 SAMIR KHOJA

译者 弯月 责编 郑丽媛

出品 CSDN(ID:CSDNnews)

你是否曾听说过开源项目 Auto-GPT?该项目使用各种技巧打造的 GPT 可以围绕某个特定的目标自主完成任务,还为 GPT 提供了一个可执行命令列表,帮助它朝着总体目标持续迈进。

我尝试使用 Auto-GPT 获得了一些有趣的结果,我还深入查看了项目的整体架构,GitHub 上 10 万 的 Star 数表明了其巨大的发展潜力。

为了更好地理解 Auto-GPT 的概念及其工作原理,我们将深入探讨以下核心领域:

▶ 该项目使用了哪些模型?

▶ 如何让 GPT 具备记忆力?

▶ 如何提高 GPT 的响应可靠性?

▶ 如何解析 GPT 的响应?

▶ 如何指定 GPT 可以执行的命令?

给出提示以获得可靠的响应在对话刚开始的时候,Auto-GPT 使用“系统”角色来配置约束,并进行自我绩效评估。Auto-GPT 有一个提示生成器,其中一些约束是硬编码的:

解读响应这可能是理解 Auto-GPT 内部工作原理最重要的方面。如果不能有效地解释响应,就不应该让 GPT 执行命令(即允许它访问外部世界)。Auto-GPT 使用了一种非常简单但很强大的提示技术来确保 GPT 以固定的 JSON 格式响应,然后通过代码进行解析:

图片来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/stable/autogpt/prompt.py

这是 GPT 引用命令的格式,可以使用参数执行命令。以下代码可以将最终提示格式化为 GPT 的字符串:

图片来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/app.py

BabyAGIBabyAGI 也使用了类似的概念,但大大简化了实现(整体功能较少)。它支持 LLaMA 和 OpenAI 作为模型输入,在提供目标和初始任务后,创建三个代理来执行目标:任务执行代理、任务创建代理和任务优先级代理。每个代理都有自己的提示和约束,包括来自每个相关任务执行的上下文。这个过程将循环执行,直到没有剩余的任务并且目标完成。

Auto-GPT 和 BabyAGI 都获得了大量关注,并且正在不断改进。

总结毋庸置疑,很多人为这些项目做出了努力,并在不断改进它们。这些项目是 AI 领域向前迈出的激动人心的一步,我们距离 AI 自主完成任务并在生活方方面面协助我们的未来更近了一步。我要强调的不仅仅是一些核心概念,这些概念可以帮助我们了解其内部运作方式,并为自主代理的新世界做出贡献。