AI 文摘

AI智能体卷爆大模型!AutoGPT等4大Agent打擂,「西部世界」谁将成为软件20?





作者: 新智元  来源: [新智元](https://mp.weixin.qq.com/s/b04F8oQfRaY2z-FjzA4pMw)

** ** **新智元报道 **

编辑:编辑部

【新智元导读】 LLM之后的下一个热点是AI智能体?Karpathy直言:现在OpenAI内部对于AI Agent的论文十分追捧,或许这就是OpenAI的新方向。****

最近,AI Agent忽然再次爆火。

什么是AI智能体?

它们是一种自动的智能体,以最简单的形式中在循环中运行,每次迭代时,它们都会生成自我导向的指令和操作。因此,它们不依赖人类来指导对话,并且是高度可扩展的。

大语言模型的出现,无疑给AI智能体的发展带来了全新的想象力。

这也引起了无数AI大佬和科技巨头的兴趣。今年加入OpenAI的大牛、前特斯拉AI总监Karpathy近日就在一次开发者活动上表示:AI智能体,代表了AI的一种未来!

Karpathy曾将AutoGPT称为快速工程的下一个前沿

其实,早在今年三、四月,就有过一轮AI智能体的大爆发,仿佛巧合一样,在短短两周内,斯坦福西部世界小镇、BabyAGI、AutoGPT等多个智能体,就如雨后春笋一般冒出来。

甚至有人发出号召:别卷大语言模型了,咱们是卷不过OpenAI的,但要说起AI智能体,他们并不比我们有经验多少。

说不定,一不小心自己就能卷成AI智能体赛道上的「OpenAI」!

AI智能体大爆发,让AGI雏形初显?

今天,就让我们回顾一下几个月前的这股AI Agent大爆发。

这些智能体出现的时间,都非常接近。

3月21日,Camel发布。

3月30日,AutoGPT发布。

4月3日,BabyAGI发布。

4月7日,西部世界小镇发布。

5月27日,英伟达AI智能体Voyager接入GPT-4后,直接完胜了AutoGPT。通过自主写代码,它完全独霸了《我的世界》,可以在游戏中进行全场景的终身学习,根本无需人类插手。

就在同一时间,商汤、清华等共同提出了通才AI智能体 Ghost in the Minecraft (GITM),它同样能够通过自主学习解决任务,表现优异。

这些表现优异的AI智能体,简直让人看到了AGI+智能体的雏形。

项目1:斯坦福、谷歌「西部世界」

对于前几个AI智能体,Anacondainc数据科学家、Sophia Yang博士,就曾在博客中给出过全面分析。

这几个AI智能体中,最吸引眼球的,无疑就是一经推出就爆火的,斯坦福和谷歌的研究者共同创建的西部世界小镇了。

生成式智能体逼真地模拟了人类的行为

这是一个交互式的沙盒环境,在小镇上,生活着25个可以模拟人类行为的生成式AI智能体。

它们会在公园里散步,在咖啡馆喝咖啡,和同事分享当天的新闻。

论文地址:https://arxiv.org/abs/2304.03442

而这些AI智能体表现出的社交行为,简直让人类惊掉了下巴——

比如,从一个简单的用户指定概念(一个智能体想举办情人节排队)开始,这些智能体在接下来的两天里,会自动传播派对邀请的消息,结识新朋友,互相约对方一起去派对,还会彼此协调时间,在正确的时间一起出现在派对上。

这些可信的人类行为模拟之所以成为可能,正是因为下图中的这个智能体架构。

它用三个重要的架构基本要素——记忆、反思和规划,将一个大语言模型做了扩展。

生成式智能体的架构

1)记忆和检索

记忆流包含每个智能体的观察列表,其中,每个观察都有自己的时间戳。

观察可以是智能体执行的行为,也可以是智能体从其他人那里感知到的行为。记忆流很长,但并不是所有观察都是重要的。

为了检索最重要的记忆以传递给语言模型,有三个因素需要考虑:

  1. 最近性:近期的记忆更重要。

  2. 重要性:智能体认为重要的记忆。例如,与某人分手比吃早餐更重要。

  3. 相关性:与情境相关的记忆,即查询记忆。例如,在讨论如何为化学考试学习时,学校作业记忆更重要。

记忆流包含大量的观察,检索过程会确定应该传递给语言模型的这些观察的子集

2)反思

反思是一种高层次的抽象思考,可以帮助智能体进行概括和推理。

反思会定期产生以下两个问题:「关于陈述中的主题,我们可以回答哪3个最突出的高层次问题?,你能从上述陈述中推断出哪5个高层次的见解?」

反思树

3)规划

规划很重要,因为行动不仅应该集中在当下,而且应该集中在更长的时间范围内,这样,行动才能够连贯和可信。

规划同样存储在记忆流中。智能体可以根据规划创建行动,并根据记忆流中的其他观察结果做出反应和更新计划。

情人节派对

这种应用具有无限潜力,甚至让人有点害怕。

想象一下,一个AI助手一直在观察着你的一举一动,为你制定计划,甚至还能替你执行。

它会自动调整灯光、冲泡咖啡,你还没开口,它就已经把晚餐订好了。

项目2:Camel

Camel以「角色扮演」而闻名。

作为一个探索大语言模型社会「心智」的交流智能体,它提出了一个角色扮演智能体框架,可以实现两个人工智能智能体的交流:

1)AI用户智能体:向AI助手提供指令,目标是完成任务

2)AI助手智能体:遵循AI用户的指令,并以解决任务的方法进行回应

3)任务指定智能体:这个智能体的作用,是为AI用户和AI助手构思一个具体的任务。这样,它就可以自主编写一个具体的任务提示,而不用用户去花时间定义了。

下面这个例子,展示的就是如何利用Camel来开发一个交易机器人。

其中,AI用户是一个股票交易员,AI助手是一个Python程序员。

任务指定智能体首先提出一个具体的任务,并给出任务的详细信息(根据情感分析结果监控社交媒体情感,并根据情感分析结果进行股票交易)。

然后,AI用户智能体成为任务规划者,AI助手智能体成为任务执行者,并在一个循环中相互提示,直到满足一些终止条件。

角色扮演架构

Camel的核心在于其提示工程,即初始提示。

这些提示实际上是经过精心定义的,用于分配角色,防止角色反转,禁止生成有害和虚假的信息,并鼓励连贯的对话。

论文地址:https://arxiv.org/abs/2303.17760

LangChain实现

在LangChain的实现中,用的是Camel论文中给出的提示,并定义了三个智能体:

1)task_specify_agent(任务指定智能体)

2)assistant_agent(助手智能体)

3)user_agent(用户智能体)。

然后,使用一个while循环来循环进行助手智能体和用户智能体之间的对话:

  *   *   *   *   *   *   *   *   *   *   *   * 

chat_turn_limit, n = 30, 0
while n < chat_turn_limit:
    n += 1
    user_ai_msg = user_agent.step(assistant_msg)
    user_msg = HumanMessage(content=user_ai_msg.content)
    print(f"AI User ({user_role_name}):\n\n{user_msg.content}\n\n")
  

    assistant_ai_msg = assistant_agent.step(user_msg)
    assistant_msg = HumanMessage(content=assistant_ai_msg.content)
    print(f"AI Assistant ({assistant_role_name}):\n\n{assistant_msg.content}\n\n")
    if "<CAMEL_TASK_DONE>" in user_msg.content:
        break

从生成结果来看,效果非常不错。

不过,在Camel中,AI助手的执行结果只是语言模型的回答,而没有真正使用任何工具来运行Python代码。

举个栗子

利用Camel,一个人类程序员,一个人类游戏玩家,就和两个AI智能体一起,合作创建了一个游戏。

作者用Camel创建了两个智能体,一个玩家,一个程序员。

给他们设定好制作一个游戏的目标后,玩家智能体就一步一步拆解制作游戏的步骤。

而程序员智能体就针对玩家设定的步骤一步一步编写代码。

像极了未来的人类和编码AI开发一个具体项目的过程。

也有人使用Camel角色扮演了潜在的恶意应用程序。

这个项目的目标是两个「碳奸」要渗透并破坏世界主要国家的通讯,金融和政治网络,最后建立AGI帝国。

「碳奸」1就把渗透的过程拆解出来,一个一个网络分别渗透。

「碳奸」2就根据这些小目标设立具体的执行计划。

当然,因为目标过于宏大,具体计划里的每一项办法也看起来不是那么好实施,比如:

「碳奸」2说他要用社会工程,钓鱼攻击,暴力袭击等办法去进入通讯网络——基本上还是没有什么可操作性。

但是未来如果语言模型等其他工具有了更强的智能,可能两个「碳奸」颠覆人类的计划搞不好就真的有可能实现。

所以,尝试过这些智能体之后,小编更加相信,大语言模型的「对齐」大业真是刻不容缓。

如果这种恶意智能体真的能发挥效果,人类被「偷家」也就是一瞬间的事。这就更让我们对AI对齐问题感到警醒。

项目3:BabyAGI

Yohei Nakajima在3月28日发布了「任务驱动的自主智能体」(Task-driven Autonomous Agent),并在4月3日开源了BabyAGI项目。

BabyAGI的关键特点是只有三个智能体:任务执行智能体(Task Execution Agent)、任务创建智能体(Task Creation Agent)和任务优先级智能体(Task Prioritization Agent)。

1)任务执行智能体按顺序完成列表中的任务

2)任务创建智能体根据先前任务的目标和结果创建新任务

3)任务优先级智能体对任务进行重新排序

然后,这个简单的过程将会不断地重复。

在LangChain的网络研讨会上Yohei称,他设计BabyAGI就是模拟自己的工作方式。

文章地址:https://yoheinakajima.com/task-driven-autonomous-agent-utilizing-gpt-4-pinecone-and-langchain-for-diverse-applications/

具体而言,他每天早上从待办事项清单中解决第一项任务,然后依次完成任务。

如果出现新任务,他只需将其添加到清单中。

在一天结束时,他重新评估和重新排序清单。然后将这种方法映射到智能体的工作流程中。

用上了这个项目,相当于让大佬自己给我们24小时不停歇的打工。

BabyAGI流程图(有趣的是,这篇研究论文是在GPT-4的辅助下完成的)

BabyAGI + LangChain

在LangChain框架中,运行BabyAGI非常简单。

首先,创建一个BabyAGI控制器,其中包含三个链:

1)任务创建链(TaskCreationChain)

2)任务优先级链(TaskPrioritizationChain)

3)执行链(ExecutionChain)

然后,在一个(潜在的)无限循环中运行它们。

通过Langchain,可以定义最大迭代次数,这样它就不会无限运行并消耗掉所有的OpenAI API额度。
* * * * * * * * * * * * *

OBJECTIVE = "Write a weather report for SF today"
llm = OpenAI(temperature=0)
# Logging of LLMChains
verbose=False
# If None, will keep on going forever
max_iterations: Optional[int] = 3
baby_agi = BabyAGI.from_llm(
    llm=llm,
    vectorstore=vectorstore,
    verbose=verbose,
    max_iterations=max_iterations
)
baby_agi({"objective": OBJECTIVE})

下面是运行2次迭代后的结果:

BabyAGI + LangChain工具 = 超能力

正如上图所示,BabyAGI只「执行」有大语言模型回复的内容。

借助LangChain工具的强大功能,智能体可以在「执行」过程中利用各种工具,例如用谷歌在互联网上搜索信息。

下面这个例子,展示的就是「执行」用谷歌来搜索旧金山当前天气的过程。

BabyAGI的应用潜力,可以说是巨大的——只需要制定一个目标,它就会自己去执行。

不过,它还是缺少一个可以和用户进行更多交互的UI。

比如,在BabyAGI为用户安排邀约之前,应该先进行确认。

我们来看一些实际的使用案例吧:

Cognosys

网址:https://www.cognosys.ai/

它是BabyAGI的网络版。

免费版本可以访问ChatGPT,执行最多7个智能体循环。

收费版21刀一个月,无限访问GPT-4,执行最多20个智能体循环。

Do Anything Machine

https://www.doanythingmachine.com/

这是一个自动执行每日任务清单的智能体,能在连接了ChatGPT之后帮助用户自动执行每日代办事项。

可以连接包括ChatGPT在内的各种插件去执行你的待办事项。

只不过现在使用还需要先加入等待名单。

看着自己的待办事项自动消失真是一件很解压的事情,多等等也是值得的。

God Mod

https://godmode.space/

这是一个通过ChatGPT帮你执行各种任务的工具。

需要用户绑定自己的GPT账户API之后,在这个类似ChatGPT的界面中输入的要求。

他会帮你分解成多步,然后通过ChatGPT来提供解决方案。

项目4:AutoGPT

AutoGPT刚出现,就被Karpathy盛赞是prompt工程的下一个前沿。短短几天就在GitHub狂揽2.7万星,火爆整个AI社区。

它遵循类似于BabyAGI的逻辑——包括产生想法、推理、生成计划、点评、规划下一步行动和执行的过程,然后无限循环这个过程。

在执行步骤中,AutoGPT可以完成很多命令,比如谷歌搜索、浏览网站、写入文件和执行Python文件。

甚至,还可以启动和删除GPT智能体(这也泰裤辣!)。

在运行AutoGPT时,有两个初始的提示输入:

1)AI的角色

2)AI的目标

它能够生成思考、推理、制定计划、批评、规划下一步行动和执行。

比如,进行谷歌搜索:

AutoGPT最厉害的一点就是,它能在一定程度上允许人类和他进行交互。

当它想要运行谷歌命令时,它会请求授权,这样用户就可以避免浪费OpenAI API token之前就停止循环。

如果它还能够与人类进行对话,让我们实时提供更好的指导和反馈的话,那就太赞了。

编写自己的代码并执行脚本

项目地址:https://github.com/Significant-Gravitas/Auto-GPT

同样,这个项目也是由ChatGPT驱动,它会自动按照用户的要求去写代码,以及完成其他工作。

使用AutoGPT在网上点披萨

使用体验就类似于一个浏览器插件。

这个项目能直接帮你完成点餐过程中那些繁琐的流程。

输入地址,选择口味等步骤都不用你亲自动手,你只用在一旁看着,如果发现问题及时纠正就好了。

AI智能体文明要出现了,还卷大模型不?

虽然刚刚介绍的这4个AI智能体,仍处于早期开发阶段,但它们已经展示出了令人印象深刻的成果和潜在应用。

毫无疑问,自主AI智能体将会是一个非常有前景的领域。

Karpathy在活动中畅想道:未来的AI智能体可能不是单独的个体,而是非常多的AI智能体组织,甚至,会出现一种AI智能体文明。

Karpathy表示,在2016年左右,自己早期在OpenAI工作时,当时的业界潮流就是研究如何用强化学习来改进AI智能体。

很多项目都在基于类似雅达利游戏,来制作AI玩家。

而5年后的今天,因为有了全新的技术手段,AI智能体重新成为了大有前途的方向。再也没有人像2016年那样,用强化学习来研究智能体了。

在活动最后,Karpathy对在场的开发者发起了鼓舞:在座的各位构建的AI智能体,其实处于当代AI智能体的最前沿,比起你们,其他大型的LLM机构,比如OpenAI、DeFi等,并不算处于最前沿。

比如,OpenAI非常擅长训练Transformer大语言模型,如果一篇论文提出了某种不同的训练方法,OpenAI内部会觉得是小case,都是咱们玩剩下的。

然而,每当有新的AI智能体论文出现,OpenAI内部都会非常兴奋,立刻展开热烈的讨论。

如果没有在做GPT-5,那OpenAI是不是正在暗中发力,做起了大模型智能体呢?让我们静静等待。

PS:顺便一提,关于在上述智能体中大显身手的LangChain,吴恩达今日刚刚上线了新课程《LangChain:构建与数据对话的聊天机器人》。

https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/

参考资料:

https://towardsdatascience.com/4-autonomous-ai-agents-you-need-to-know-d612a643fa92

可关注我们的公众号:每天AI新工具