CAMEL | 豆包MarsCode AI刷题

145 阅读6分钟

CAMEL 交流式代理框架

下面我们一起来看看CAMEL——这个多AI通过角色扮演进行交互的框架,以及它在LangChain中的具体实现。

CAMEL,字面意思是骆驼。这个框架来自于论文《CAMEL: Communicative Agents for “Mind” Exploration of Large Scale Language Model Society》(CAMEL:用于大规模语言模型社会的“心智”探索的交流式代理)。这里面所谓的CAMEL,实际上来自沟通(也就是交流)代理心智探索以及 LLM 这五个单词的英文首字母。

CAMEL框架旨在通过角色扮演来促进交流代理之间的自主合作,并为其“认知”过程提供洞察。这种方法涉及使用启示式提示来指导聊天代理完成任务,同时保持与人类意图的一致性。这个框架为研究多代理系统的合作行为和能力提供了一种可扩展的方法。

上面这段介绍里面新名词不少,我们要一个个解释一下。

  • 交流式代理 Communicative Agents,是一种可以与人类或其他代理进行交流的计算机程序。这些代理可以是聊天机器人、智能助手或任何其他需要与人类交流的软件。为了使这些代理能够更好地与人类交流,研究人员一直在寻找方法来提高它们的交流能力。
  • 角色扮演 role-playing,则是这篇论文提出的主要思路,它允许交流代理扮演不同的角色,以更好地与人类或其他代理交流。这意味着代理可以模仿人类的行为,理解人类的意图,并据此做出反应。
  • 启示式提示 inception prompting,是一种指导代理完成任务的方法。通过给代理提供一系列的提示或指示,代理可以更好地理解它应该如何行动。这种方法可以帮助代理更好地与人类交流,并完成与人类的合作任务。

这里的核心创新点是,通过角色扮演和启示式提示的框架来引导代理的交流过程。

股票交易场景设计

论文中还提出了下面的目标场景和角色扮演设置。

场景和角色设置

人类用户角色:负责提供要实现的想法,如为股票市场开发一个交易机器人。

人类可能不知道如何实现这个想法,但我们需要指定可能实现这个想法的角色,例如Python程序员和股票交易员。

任务指定代理(Task Specifier Agent):负责根据输入的想法为AI助手和AI用户确定一个具体的任务。因为人类用户的想法可能比较模糊,所以任务指定代理将提供详细描述,以使想法具体化。

描述:开发一个具有情感分析能力的交易机器人,该机器人可以监控社交媒体平台上特定股票的正面或负面评论,并根据情感分析结果执行交易。

这样,就为AI助手提供了一个明确的任务来解决。

这里多说一句,之所以引入任务指定代理,是因为对话代理通常需要一个具体的任务提示来实现任务,对于非领域专家来说,创建这样一个具体的任务提示可能是具有挑战性或耗时的。

那么,参与此任务的 AI 角色就包括:

  • 一个以Python程序员为身份的 AI 助手代理
  • 一个以股票交易员为身份的 AI 用户代理

接收到初步想法和角色分配后,AI用户和AI助手通过指令跟随的方式互相聊天,他们将通过多轮对话合作完成指定任务,直到 AI 用户确定任务已完成。

其中,AI 用户是任务规划者,负责向 AI 助手发出以完成任务为导向的指令。另一方面,AI 助手是任务执行者,被设计为遵循 AI 用户指令并提供具体的解决方案,在这里他将给出设计股票交易系统的具体Python代码。

提示模板设计

在CAMEL这个角色扮演框架中,Prompt Engineering非常关键。与其他对话语言模型技术有所不同,这种提示工程只在角色扮演的初始阶段进行,主要用于明确任务和分配角色。当会话开始后,AI助手和AI用户会自动地相互给出提示,直到对话结束。这种方法被称为 “Inception Prompting”。

Inception Prompting 包括三种类型的提示:任务明确提示、AI助手提示和AI用户提示。在论文中,给出了两个提示模板作为示例。

在论文中,AI Society和AI Code是两种不同的提示模板。这些提示模板被设计用来指导AI助手与AI用户之间的交互。

AI Society:这个提示模板主要关注AI助手在多种不同角色中的表现。例如,AI助手可能扮演会计师、演员、设计师、医生、工程师等多种角色,而用户也可能有各种不同的角色,如博主、厨师、游戏玩家、音乐家等。这种设置是为了研究AI助手如何与不同角色的用户合作以完成各种任务。

AI Code:这个提示模板主要关注与编程相关的任务。它涉及到多种编程语言,如Java、Python、JavaScript等,以及多个领域,如会计、农业、生物学等。这种设置是为了研究AI助手如何在特定的编程语言和领域中帮助用户完成任务。

以AI Society为例,这个提示模板是为AI助手系统和AI用户系统设计的,它在角色扮演的开始时就给出了初始提示。以下是对这个模板的详细解释。

这个提示模板为AI助手和AI用户提供了一个明确的框架,确保它们在对话中的行为是有序、一致和有效的。可以看出,与之前传统的提示设计不同,这种提示的设计更加复杂和细致,更像是一种交互协议或规范。这种设计在一定程度上提高了AI与AI之间自主合作的能力,并能更好地模拟人类之间的交互过程。