青训营X豆包MarsCode 技术训练营第六课 | 豆包MarsCode AI 刷题

75 阅读4分钟

CAMEL——一个多AI通过角色扮演进行交互的框架

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

名词解释

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

步骤

1.准备工作

先导入API密钥和所需要的库。

2.预设角色和任务提示

预设的角色和任务提示,这部分定义了AI助手和用户的角色名称、任务描述以及每次讨论的字数限制。

# 设置一些预设的角色和任务提示
assistant_role_name = "(ai)"
user_role_name = "(用户)"
task = "(任务)"
word_limit = 50  # 每次讨论的字数限制

3.任务指定代理

然后,使用任务指定代理(Task Specifier)来明确任务描述。这是CAMEL框架的一个关键步骤,它确保了任务描述的具体性和清晰性。

4.系统消息模板

定义系统消息模板,这为AI助手和AI用户提供了初始的提示,确保它们在对话中的行为是有序和一致的。

5.创建 Agent 实例

创建助手和用户的CAMELAgent实例,并初始化对话互动,使用CAMELAgent类的实例来模拟助手和用户之间的对话交互。

两个关键提示:

---assistant_inception_prompt: 这个提示是为了引导助手如何响应用户的指示。它明确指出助手的角色和职责,强调了在完成任务的过程中需要遵循的一些基本规则和原则。例如,助手需要针对用户的每一个指示提供一个明确的解决方案,而且这个解决方案必须是具体、易于理解的,并且只有在遇到物理、道德、法律的限制或自身能力的限制时,才能拒绝用户的指示。这个提示的设计目标是引导助手在一次有目标的对话中,有效地对用户的指示做出响应。

---user_inception_prompt: 这个提示是为了引导用户如何给助手下达指示。它明确指出了用户的角色和职责,强调了在提出任务指示时需要遵循的一些基本规则和原则。例如,用户需要一次只给出一个指示,并且必须清楚地提供相关的输入(如果有的话)。而且用户在给出指示的同时,不能向助手提问。这个提示的设计目标是引导用户在一次有目标的对话中,有效地给出指示,以便助手能够更好地理解和完成任务。

6.头脑风暴开始

接下来,模拟助手和用户之间的多轮对话,直到达到对话轮次上限或任务完成。

总结

CAMEL中提示的设计更加复杂和细致,更像是一种交互协议或规范。这种设计在一定程度上提高了AI与AI之间自主合作的能力,并能更好地模拟人类之间的交互过程。