随着人工智能的快速发展,国外 Agent 开发框架层出不穷。本文将对国外不同的 Agent 开发框架进行对比,并探讨其在各个领域的应用场景。
人工智能领域的发展日新月异,而 Agent 开发框架作为其中的重要组成部分,为开发者提供了强大的工具和资源。在国外,众多优秀的 Agent 开发框架不断涌现,它们各具特色,适用于不同的应用场景。
这些框架的出现,不仅推动了人工智能技术的进步,也为各个行业的智能化发展提供了有力支持。从项目管理到财务分析,从内容创作到软件开发,Agent 开发框架在各个领域都发挥着重要作用。
接下来,我们将深入探讨几个国外知名的 Agent 开发框架,分析它们的特点、优势以及应用场景。
二、国外不同 Agent 开发框架对比
(一)决策模型
- 传统 ReAct 框架:传统 ReAct 框架采用先推理再执行的方式,根据环境执行具体的 action,并给出思考过程 Thought。其典型的 Prompt 模板为:“Thought: you should always think about what to do. Action: the action to take, should be one of [tool names]. Action Input: the input to the action. Observation: the result of the action... (this Thought/Action/Action Input/Observation can repeat N times). Thought: I now know the final answer. Final Answer: the final answer to the original input question.” 例如在数据分析任务中,使用 ReAct 模式时,智能体先思考需要进行的操作,如使用搜索工具查询相关信息或使用计算器进行计算,然后执行相应的 action,并观察结果,根据结果继续思考下一步行动,直到得出最终答案。
- Plan-and-Execute ReAct 类框架:如 BabyAgi 等框架属于 Plan-and-Execute ReAct 类框架。这类框架将复杂任务拆解成多个子任务,依次或批量执行,减少了大模型的调用次数。以处理数据分析任务为例,BabyAgi 可能会先分析任务目标,将其拆分为计算总销售额、找出最佳表现产品和生成总结报告等子任务,然后按照一定的顺序执行这些子任务,并整合结果。LLmCompiler 则通过并行执行任务,规划时生成一个 DAG 图来执行 action,可以理解成将多个工具聚合成一个工具执行图,用图的方式执行某一个 action。
- BabyAGI:作为早期 agent 的实践,BabyAGI 的决策流程包括根据需求分解任务、对任务排列优先级以及执行任务并整合结果。其亮点在于任务优先级排序模块独特,例如通过 task_creation_agent 根据执行代理的结果创建新任务,prioritization_agent 负责清理和重新优先处理任务。
- AutoGPT:定位类似个人助理,帮助用户完成指定任务,如调研某个课题。AutoGPT 比较强调对外部工具的使用,如搜索引擎、页面浏览等。虽然有无法控制迭代次数、工具有限等缺点,但后续演变出了众多框架。
- HuggingGPT:任务分为任务规划、模型选择、执行任务和响应汇总和反馈四个部分。与 AutoGPT 的不同之处在于,它可以调用 HuggingFace 上不同的模型来完成更复杂的任务,提高了每个任务的精确度和准确率,但总体成本并没有降低太多。
- GPT-Engineer:基于 langchain 开发,是单一的工程师 agent,解决编码场景的问题。目的是创建一个完整的代码仓库,在需要时要求用户额外输入补充信息,可谓是 code-copilot 的自动化升级版。
使用多个智能体解决更复杂问题,如 crewAI、AutoGen 等框架。
- AutoGen:是一个开源框架,允许开发者使用多个代理(agents)来创建和管理基于大型语言模型(LLMs)的应用程序。这些代理能够相互对话,以解决复杂的任务和工作流程,同时可以无缝地集成人类输入。其设计目标是简化应用程序的开发过程,提高易用性、模块化,并能够将人类反馈集成到工作流中。主要特点包括多代理对话、可定制和可对话的代理、工具调用、代码执行以及人类参与。对于涉及代码生成和复杂多智能体编码工作流的任务,AutoGen 是最佳选择,其强大的代码处理能力和多智能体编排专长能够满足软件开发过程中的复杂需求。
- CrewAI:更加注重易用性和快速构建演示的能力,主要依赖于提示编写来创建和配置智能体。创建新的智能体并将其添加到生态系统中非常简单,用户可以在几分钟内创建数百个智能体,适合那些希望快速构建 Multi-Agent 演示或原型项目的开发者。然而,其灵活性和定制能力相对有限,更适合处理基本用例。
- LangGraph:采用有向循环图(Directed Cyclic Graph)的概念,是一个高度灵活和可定制的解决方案,不仅可以用于任何 Multi-Agent 任务,还支持近乎任何形式的多智能体编排应用。适合有一定技术基础且需要应对复杂业务场景的高级用户,但文档相对匮乏,需要用户具备一定的编程技能。
- OpenAI Swarm:专注于简化智能体的创建和智能体之间的上下文切换(称为 Handoffs),非常适合那些希望快速上手 Multi-Agent 技术的新手用户。创建简短的演示项目在 Swarm 中变得非常简单,但功能相对有限,只支持 OpenAI API,不支持其他 LLM 提供商的 API,灵活性也不足,社区支持相对较差。
- Magentic-One:是微软在 AutoGen 之后推出的又一个 Multi-Agent 框架,致力于简化智能体的创建和运行过程。自带了五个默认智能体,包括一个管理智能体和四个执行不同任务的智能体,适用于非程序员和需要快速上手的用户。然而,对开源 LLM 的支持相对复杂,灵活性也不足,更像是一个应用程序而不是一个框架,文档和社区支持也相对匮乏。
- 软件开发任务:对于涉及代码生成和复杂多智能体编码工作流的任务,AutoGen 是最佳选择。其强大的代码处理能力和多智能体编排专长能够满足软件开发过程中的复杂需求,尽管设置复杂,但在专业开发场景中能够发挥出最大价值。
- 新手入门:OpenAI Swarm 和 CrewAI 非常适合多智能体领域的新手。OpenAI Swarm 的简化创建流程和 CrewAI 的高直观性与易用性,使得新手能够快速构建简单的多智能体应用,进行初步的探索和学习,而无需面对复杂的技术难题。
- 复杂任务处理:LangGraph 是处理复杂任务的首选。其高度的灵活性和可定制性,以及基于有向循环图的先进架构,能够支持复杂的逻辑和多样化的多智能体编排应用,适合有一定技术基础且需要应对复杂业务场景的高级用户。
- 开源语言模型集成:在与开源语言模型集成方面,LangGraph 表现出色,能够与各种开源 LLMs 和 API 良好协作。CrewAI 也具备一定的兼容性,在选择时可以根据具体的开源语言模型需求和其他因素综合考虑。
三、结论
国外不同的 Agent 开发框架在决策模型和框架分类上存在差异,这为开发者提供了多样化的选择。在决策模型方面,传统 ReAct 框架采用先推理再执行的方式,而 Plan-and-Execute ReAct 类框架如 BabyAgi 等则将复杂任务拆解成多个子任务,依次或批量执行,减少了大模型的调用次数。
对于软件开发任务,AutoGen 是最佳选择,其强大的代码处理能力和多智能体编排专长能够满足软件开发过程中的复杂需求。对于新手入门,OpenAI Swarm 和 CrewAI 非常适合多智能体领域的新手,它们的简化创建流程和高直观性与易用性,使得新手能够快速构建简单的多智能体应用。对于复杂任务处理,LangGraph 是首选,其高度的灵活性和可定制性,以及基于有向循环图的先进架构,能够支持复杂的逻辑和多样化的多智能体编排应用。在与开源语言模型集成方面,LangGraph 表现出色,能够与各种开源 LLMs 和 API 良好协作。CrewAI 也具备一定的兼容性。
此外,随着人工智能的不断发展,新的 Agent 开发框架也在不断涌现。例如,收藏!2024 年最具潜力 5 个顶级开源 Agent 框架中提到的 OpenAGI、TaskWeaver、MetaGPT 和 AutoGen 等框架,它们在智能规划、用户体验增强、记忆处理、以及大型模型调用等方面有着卓越表现。谷歌最新发布的 185 个头部 AI 应用落地案例中,也展示了许多 Agent 在客户服务、员工赋能、代码创建、数据分析、网络安全以及创意构思和制作等领域的应用。