代理进阶 青训营X豆包MarsCode 技术训练营AI| 豆包MarsCode AI 刷题

71 阅读11分钟

CAMEL

一、CAMEL 框架概述

  • 来源及含义:来自于论文《CAMEL: Communicative Agents for “Mind” Exploration of Large Scale Language Model Society》,由沟通、代理、心智、探索以及 LLM 这五个单词的英文首字母组成。
  • 目的及作用:旨在通过角色扮演促进交流代理之间的自主合作,为其 “认知” 过程提供洞察,为研究多代理系统的合作行为和能力提供可扩展方法。

二、相关概念解释

  • 交流式代理:可与人类或其他代理进行交流的计算机程序,研究人员一直在寻求提高其交流能力的方法。
  • 角色扮演:论文提出的主要思路,允许交流代理扮演不同角色,以更好地与人类或其他代理交流,模仿人类行为、理解意图并做出反应。
  • 启示式提示:指导代理完成任务的方法,通过提供提示或指示,帮助代理理解行动方式,更好地与人类交流并完成合作任务。

三、股票交易场景应用示例

  • 角色设置:包括人类用户、任务指定代理、以 Python 程序员为身份的 AI 助手代理、以股票交易员为身份的 AI 用户代理等。
  • 任务流程:人类用户提供想法,任务指定代理将其具体化,AI 用户和 AI 助手通过指令跟随的方式多轮对话合作完成任务,AI 用户负责规划任务发出指令,AI 助手负责执行任务提供具体解决方案。
  • 提示模板:如 AI Society 关注 AI 助手在多种不同角色中的表现,AI Code 关注与编程相关任务,不同模板用于指导 AI 助手与 AI 用户之间的交互。

四、易速鲜花营销方案实战

  • 准备工作:导入 API 密钥和所需库,定义 CAMELAgent 类用于管理与语言模型的交互。
  • 预设角色和任务提示:设定“花店营销专员”为助手角色、“花店老板”为用户角色,明确任务为整理夏季玫瑰之夜营销活动策略,并通过任务指定代理将任务具体化。
  • 系统消息模板:定义了助手和用户的初始提示模板,明确各自角色的行为准则和任务细节,引导聊天代理的交流行为。
  • 模拟对话:创建助手和用户的 CAMELAgent 实例,模拟多轮对话直至达到对话轮次上限或任务完成。
  1. 企业应用集成(EAI):

    • 不同系统间的数据同步:例如,在一个大型企业中,可能存在多个独立的业务系统,如客户关系管理系统(CRM)、企业资源规划系统(ERP)以及供应链管理系统(SCM)等。CAMEL 框架可以用于在这些系统之间实现数据的同步和传输。比如,当 CRM 系统中客户信息发生更新时,CAMEL 可以将更新后的信息提取出来,并按照 ERP 和 SCM 系统所需的数据格式进行转换,然后发送到相应的系统中,确保各个系统中的客户信息保持一致。
    • 系统间的业务流程整合:企业内部可能存在一些跨系统的业务流程,需要多个系统协同工作才能完成。CAMEL 可以作为中间件,协调不同系统之间的交互。例如,一个订单处理流程可能涉及到销售系统、库存系统和财务系统。CAMEL 可以接收销售系统生成的订单信息,然后根据库存系统的反馈判断是否有足够的库存,如果库存充足,则通知财务系统进行支付处理,最后将订单状态更新回销售系统。
  2. 消息驱动架构(MDA):

    • 实时消息处理:在金融行业,交易系统需要实时处理大量的市场行情数据和交易指令。CAMEL 可以用于构建一个消息驱动的架构,接收来自不同数据源的行情消息和交易指令,进行过滤、转换和路由等处理后,将消息发送到相应的交易处理模块进行处理。这样可以确保交易系统能够快速、准确地响应市场变化,提高交易效率和准确性。
    • 异步通信:在电商平台中,用户下单后,系统需要发送订单确认邮件、更新库存信息、通知物流系统等一系列操作。这些操作可以通过 CAMEL 以异步的方式进行处理,即用户下单后,系统立即返回订单提交成功的响应,然后使用 CAMEL 将订单信息发送到消息队列中,各个相关的系统从消息队列中获取订单信息并进行相应的处理,这样可以提高系统的响应速度和用户体验。
  3. 微服务集成:

    • 微服务间的通信:随着微服务架构的流行,一个大型应用可能由多个独立的微服务组成。CAMEL 可以用于实现微服务之间的通信和集成。例如,一个在线旅游预订平台可能由用户服务、酒店服务、航班服务等多个微服务组成。用户在预订行程时,用户服务需要调用酒店服务和航班服务来获取相关的信息。CAMEL 可以作为微服务之间的通信桥梁,将用户服务的请求路由到相应的酒店服务和航班服务,并将返回的结果整合后返回给用户服务。
    • 微服务的编排:在微服务架构中,业务流程可能需要跨越多个微服务才能完成。CAMEL 可以用于编排这些微服务,定义它们的执行顺序和依赖关系。例如,在一个医疗管理系统中,患者挂号、就诊、缴费等流程可能涉及到多个微服务,CAMEL 可以根据业务流程的需求,将这些微服务组合起来,实现一个完整的医疗服务流程。
  4. 数据转换:

    • 格式转换:在不同的系统和应用中,数据的格式可能各不相同。CAMEL 可以用于将数据从一种格式转换为另一种格式。例如,从一个 CSV 文件中读取的数据需要转换为 JSON 格式,以便发送到一个基于 RESTful API 的系统中。CAMEL 可以轻松地实现这种格式转换,确保数据在不同系统之间的正确传输。
    • 数据清洗和标准化:在数据集成过程中,可能需要对数据进行清洗和标准化处理,以确保数据的质量和一致性。CAMEL 可以用于实现数据的清洗和标准化操作,如去除重复数据、校验数据的合法性、将数据转换为统一的编码格式等。例如,在一个数据仓库项目中,从多个数据源抽取的数据需要进行清洗和标准化处理后,才能加载到数据仓库中,CAMEL 可以完成这一过程。
  5. ETL(Extract, Transform, Load):

    • 数据抽取和加载:在数据仓库和商业智能项目中,需要从不同的数据源抽取数据,并加载到数据仓库中。CAMEL 可以用于实现数据的抽取和加载过程。例如,从关系型数据库、文件系统、Web 服务等数据源中抽取数据,然后将数据转换为数据仓库所需的格式,并加载到数据仓库中。CAMEL 可以定期执行这些操作,确保数据仓库中的数据是最新的。
    • 数据转换和处理:在 ETL 过程中,除了数据的抽取和加载,还需要对数据进行转换和处理。CAMEL 可以用于实现各种数据转换和处理操作,如数据聚合、分组、过滤、计算等。例如,在一个销售数据分析项目中,需要从销售系统中抽取销售数据,然后对数据进行聚合和计算,得出每个地区、每个产品的销售总额和平均销售额等统计信息,CAMEL 可以完成这些数据转换和处理操作。

五、CAMEL 框架特点总结

  • 角色扮演机制:赋予代理角色,明确责任和行为准则,模拟人类交互过程,更真实地完成任务。
  • 任务具体化:将抽象任务具体化,帮助 AI 清晰理解任务需求,准确给出解决方案。
  • 初始提示设定:系统初始化提供两条分别针对助手和用户角色的初始提示,为对话提供框架和指引。
  • 交互规范:明确如一次只给一个指令、解决方案需详细解释等交互规范,保持对话清晰高效。与传统提示设计不同,CAMEL 的提示设计更复杂细致,类似交互协议或规范,提高了 AI 与 AI 之间自主合作能力,更好地模拟人类交互过程

Autonomous Agents

一、模拟代理与自主代理概念

  • 模拟代理:如 LangChain 将基于 CAMEL 框架的代理定义为 Simulation Agents,在模拟环境中进行角色扮演,模拟特定场景或行为,并非在真实世界完成具体任务。
  • 自主代理:以 Auto-GPT、BabyAGI 和 HuggingGPT 为代表,设计初衷是能独立执行任务、持续追求长期目标,在 LangChain 相关组件支持下可自主运行,在真实应用中有较大价值。

二、各自主代理项目介绍

  1. Auto-GPT:

    • 基本情况:由 Toran Bruce Richards 创建的开源自主 AI 代理,基于 OpenAI 的 GPT-4 语言模型。
    • 功能特点:自动链接多个任务实现用户设定大目标,能与互联网集成、提供实时数据访问,可将活动分解为子任务并自我提示,还具有多模态处理能力,可用于多种任务如文本生成、研究协助等。
    • 不足:运行成本可能高,可能分心或陷入循环,且无长期记忆。
    • 意义:展示了 AI 边界和自主行动能力,凸显自主代理潜力,验证人类朝向人工普通智能迈进的趋势。
  2. BabyAGI:

    • 基本情况:由中岛洋平于 2023 年 3 月 28 日开发的自主任务驱动 AI 系统,基于 OpenAI 的 GPT-4 语言模型、Pinecone 向量搜索及 LangChain 框架。

    • 功能特点:根据设定目标生成、组织、确定优先级并执行任务,不仅能自动生成和执行任务,还能根据完成任务结果生成新任务并确定优先级。由执行代理、任务创建代理、优先级设置代理驱动任务流程。

    • 通过 LangChain 实现制定鲜花存储策略示例:

      • 导入相关库并初始化嵌入模型和向量数据库。
      • 定义任务生成链、任务优先级链、任务执行链及相关功能函数。
      • 定义 BabyAGI 主类控制系统运行流程,包括添加任务、输出任务列表、执行任务等。
      • 主执行部分设定分析北京气候并提出鲜花储存策略的目标,初始化并运行 BabyAGI,展示了任务列表、下一个任务、任务结果等循环结构的运行过程及最终得出的具体鲜花储存策略步骤。
  3. HuggingGPT:

    • 基本情况:来自 Yongliang Shen 的论文,其工作流程包括任务规划、模型选择、任务执行、响应生成四个阶段。
    • 功能特点:能根据用户请求自动生成计划并使用外部模型,整合多模态感知能力,处理多个复杂 AI 任务,可使用不同模型执行特定任务如图像分类、对象检测等。

三、自主代理特点总结

  • 独立性:无需外部干预可自主执行任务。
  • 自适应性:能根据任务结果生成新任务并确定优先级,如 BabyAGI 可根据先前任务输出创建更多任务。
  • 多功能性:可处理多种类型任务,如 Auto-GPT 可用于文本生成、市场研究等多种领域。

四、自主代理的未来展望

未来自主代理将在企业运营的任务分配、项目管理和资源调度等环节起至关重要的作用,有望开发出众多自主驱动型应用程序,优化任务管理,实现对整个项目过程的有效监控和组织。

Auto-GPT 是如何实现与互联网集成的?

如何使用 LangChain 实现自主代理?