CAMEL
扫码查看

一个用于构建大规模多智能体系统的开源框架

CAMEL

综合介绍

CAMEL (Communicative Agents for "Mind" Exploration of Large Language Model Society) 是一个开源的、模块化的多智能体框架,旨在探索和研究大规模人工智能代理的行为、能力和协作方式。它通过一种新颖的角色扮演机制,让多个AI代理(Agent)能够像人类社会一样进行交流和协作,以完成复杂的任务,而这个过程几乎不需要人类的干预。该框架的核心理念是,通过模拟AI代理组成的“社会”,可以更深入地理解它们的“心智”和行为模式,并发现其规模化扩展的规律。CAMEL由一个超过100名研究人员组成的社区驱动,不仅提供了一个强大的研究平台,还支持各种实际应用,例如自动化工作流、生成高质量的合成数据、以及模拟真实世界的复杂交互场景。

功能列表

  • 多智能体协作:支持创建由多个AI代理组成的“社会”,代理们被分配不同的角色,通过相互沟通和协作来完成共同的目标。
  • 角色扮演框架:引入了一种独特的角色扮演机制,其中AI用户代理提出指令,AI助手代理负责执行,从而实现任务的自主分解和执行。
  • 高度可扩展:框架设计支持最高达一百万个代理的模拟,能够研究大规模系统中出现的行为和扩展规律。
  • 状态化记忆:AI代理拥有记忆功能,可以记住历史交互信息,从而能够处理需要多步骤才能完成的复杂任务。
  • 代码即提示 (Code-as-Prompt):框架的设计哲学之一,将代码和注释本身也视为对AI代理的提示,强调代码的清晰度和可读性。
  • 数据生成:内置了强大的数据生成工具,可以自动化创建大规模、结构化的合成数据集,用于训练和微调语言模型。
  • 丰富的工具集成:支持与多种外部工具(如搜索引擎、代码解释器、浏览器等)集成,赋予AI代理与外部世界交互的能力。
  • 支持多样的基准测试:提供标准化的测试环境,用于评估和比较不同代理的性能,确保研究的可复现性。

使用帮助

CAMEL作为一个强大的开源框架,其安装和使用流程都非常便捷。用户可以通过几个简单的步骤来搭建环境并开始创建自己的第一个AI代理。

安装

开始使用CAMEL前,请确保你的系统已经安装了Python 3.8或更高版本。

  1. 通过pip安装:打开你的终端或命令行工具,输入以下命令即可完成核心库的安装:
    pip install camel-ai
    

    这个命令会安装CAMEL的核心组件。如果你需要使用一些额外的工具,比如网页浏览、代码执行等,可以安装带有附加功能的版本。例如,安装包含所有工具和解释器的完整版:

    pip install 'camel-ai[all]'
    

    你也可以根据需要只安装特定的工具包,例如只安装网页工具:

    pip install 'camel-ai[web_tools]'
    
  2. 设置API密钥:CAMEL需要调用大型语言模型(LLM)的API来驱动AI代理。你需要获取相关服务(如OpenAI)的API密钥,并将其设置为环境变量。在终端中执行以下命令:
    export OPENAI_API_KEY='你的OpenAI_API密钥'
    

如何使用

安装完成后,你就可以开始编写代码来创建和使用AI代理了。下面通过一个简单的例子,展示如何创建一个可以执行网络搜索的聊天代理。

  1. 创建你的第一个代理创建一个Python文件,例如first_agent.py,然后输入以下代码:
    from camel.models import ModelFactory
    from camel.types import ModelPlatformType, ModelType
    from camel.agents import ChatAgent
    from camel.toolkits import SearchToolkit
    # 1. 创建模型实例
    # 这里我们选择使用OpenAI的GPT-4o模型
    model = ModelFactory.create(
    model_platform=ModelPlatformType.OPENAI,
    model_type=ModelType.GPT_4O,
    model_config_dict={"temperature": 0.0},
    )
    # 2. 创建一个工具
    # 我们使用DuckDuckGo搜索引擎作为代理的工具
    search_tool = SearchToolkit().search_duckduckgo
    # 3. 初始化聊天代理
    # 将模型和工具传递给代理
    agent = ChatAgent(model=model, tools=[search_tool])
    # 4. 与代理进行交互
    # 使用step方法向代理发送请求
    response_1 = agent.step("什么是CAMEL-AI?")
    print(response_1.msgs[0].content)
    response_2 = agent.step("CAMEL框架的GitHub链接是什么?")
    print(response_2.msgs[0].content)
    

    运行这个Python脚本,你将看到代理首先回答了“什么是CAMEL-AI?”这个问题,接着提供了该项目的GitHub链接。

  2. 角色扮演模式CAMEL的核心特色是其角色扮演框架。在这个模式下,通常会有一个“用户代理”和一个“助手代理”,它们会围绕一个初始任务进行多轮对话,共同将任务完成。

    下面是一个两个AI代理(一个Python程序员和一个股票交易员)协作开发交易机器人的简化示例:

    from camel.societies import "role_playing"
    from camel.utils import print_text_animated
    # 1. 定义任务
    task_prompt = "为股票市场开发一个交易机器人"
    # 2. 创建角色扮演会话
    # 定义两个角色:一个是AI助手(Python程序员),另一个是AI用户(股票交易员)
    # AI用户会不断提出需求和指令,AI助手则根据指令编写代码和解决方案
    role_play_session = role_playing(
    assistant_role_name="Python程序员",
    user_role_name="股票交易员",
    task_prompt=task_prompt,
    )
    # 3. 开始对话
    print_text_animated("\n" + "#" * 20 + "\n")
    chat_turn_limit, n = 10, 0
    while n < chat_turn_limit:
    n += 1
    # 轮流执行,获取双方的回复
    assistant_response, user_response = role_play_session.step()
    # 如果任何一方决定结束对话,则退出循环
    if assistant_response.terminated or user_response.terminated:
    break
    # 打印对话内容
    print_text_animated(f"AI助手 ({role_play_session.assistant_sys_msg.role_name}):\n\n{assistant_response.msg.content}\n")
    print_text_animated(f"AI用户 ({role_play_session.user_sys_msg.role_name}):\n\n{user_response.msg.content}\n")
    

    在这个例子中,两个AI代理会自动进行多轮对话,程序员代理会根据交易员代理的需求来构思和编写代码,直到任务完成或达到对话上限。这个过程展示了CAMEL如何通过自主协作来解决复杂问题。

应用场景

  1. 自动化工作流利用CAMEL的多智能体协作能力,可以构建自动化团队来处理重复性高、流程化的任务。例如,可以设置一个代理负责从网站收集数据,另一个代理负责分析和处理这些数据,第三个代理则负责根据分析结果生成报告。 整个过程无需人工干预,极大地提高了工作效率。
  2. 合成数据生成CAMEL框架可以用来生成大规模、高质量的合成数据。研究人员和开发者可以利用角色扮演功能,让两个AI代理(如一个提问者和一个回答者)进行对话,从而生成用于训练特定领域(如客服、编程、科学问答)模型的对话数据。 这种方法不仅成本低,而且可以有效避免真实数据中存在的隐私问题。
  3. AI研究与世界模拟CAMEL为研究AI代理的行为提供了一个理想的实验平台。研究人员可以在一个可控的环境中模拟拥有大量代理的“AI社会”,观察它们的互动、合作、竞争等行为,从而探索“智能”的涌现和规模化规律。 例如,可以模拟一个社交媒体环境,研究信息在代理网络中的传播方式。
  4. 构建智能助手开发者可以使用CAMEL来创建功能强大的个人或专业领域的智能助手。 不同于单一功能的聊天机器人,基于CAMEL的助手可以由多个具有不同专长的代理组成,比如一个负责研究分析,一个负责编写代码,另一个负责财务追踪,它们协同工作,为用户提供更加全面和个性化的帮助。

QA

  1. CAMEL和其他多智能体框架(如AutoGen)有什么区别?虽然都是开源的多智能体框架,但CAMEL更侧重于研究大规模AI代理的社会行为和扩展规律,其核心是“角色扮演”和“交流”,旨在探索代理的“心智”。 而AutoGen等框架则更侧重于解决具体问题和任务自动化,强调的是工作流的编排和执行。CAMEL像一个社会学实验室,而AutoGen更像一个项目管理工具。
  2. 使用CAMEL是否需要很强的编程背景?对于基本的使用,比如创建简单的聊天代理或运行官方示例,只需要掌握基础的Python知识即可。 框架的封装程度很高,许多复杂的功能都可以通过简单的API调用实现。 但如果想进行深度定制开发或对框架本身进行扩展,那么较强的编程能力和对AI模型的理解会更有帮助。
  3. CAMEL支持哪些大型语言模型?CAMEL框架设计灵活,支持与多种大型语言模型(LLM)集成,包括OpenAI的GPT系列、Google的模型以及许多开源模型。 它的模型工厂(ModelFactory)提供了一个标准化的接口,让开发者可以方便地切换和使用不同的模型作为AI代理的“大脑”。
微信微博Email复制链接