AI 代理正在崛起,在自动化曾经被认为不可能的流程中发挥着至关重要的作用。这些ai agent利用LLMs 来执行各种任务,从产生线索到做出投资决策。但是,构建这些aiagent的框架的选择会显著影响它们的效率和有效性。在这篇博客中,我们将评估用于构建 AI 代理的三个重要框架——LangGraph、Autogen 和 Crew AI。
什么是 AI agent
AI 中的agent是一种应用程序,它使用 LLMs 自主执行特定任务。这些任务的范围从回答研究问题到调用后端服务。agent在需要开放式答案的场景中特别有用,他们可以提供非常有效的解决方案。
客户支持agent能够解决客户查询、提供信息和自主解决问题。而代码生成agent可以生成、调试和运行代码片段,帮助开发人员自动执行重复性任务。

自动化 AI 驱动的开发
何时使用AI Agent
当任务需要复杂的决策、自主性和适应性时,AI Agent非常有益。它们在工作流是动态的并且涉及可从自动化中受益的多个步骤或交互的环境中表现出色。例如,在客户支持方面,AI agent可以处理广泛的查询,提供实时帮助,并在必要时将问题上报给人工操作员。这不仅可以提高效率,还可以通过提供及时准确的响应来增强客户体验。
在研究和数据分析中,AI Agent可以自主收集、处理和分析大量数据,无需人工干预即可提供有价值的见解。它们在需要实时数据处理的场景中也很有用,例如金融交易,AI agent可以根据市场状况做出瞬间决策。
此外,AI Agent在教育应用程序中非常有用,他们可以在其中提供个性化的学习体验、适应学生的进度并提供即时反馈。在软件开发中,代理可以协助代码生成、调试和测试,从而显著缩短开发时间并提高代码质量。AI Agent从互动中学习并随着时间的推移改进的能力使他们在持续改进和适应至关重要的环境中变得非常宝贵。
何时不使用AI Agent
AI Agent提供了许多优势,但在某些情况下,使用它们可能不是正确的选择。
需要明确的是,在任务简单、不频繁或需要最少自动化的情况下,使用AI Agent的复杂性可能不合理。现有软件解决方案可以轻松管理的简单任务不一定会受益于基于AI Agent的系统增加的复杂性。在这种情况下,传统方法更高效、更具成本效益。
此外,需要深厚的特定于领域的知识和专业知识的任务,而这些知识和专业技能无法轻松编码到AI Agent中,可能无法从自动化中受益。例如,复杂的法律分析、复杂的医疗诊断或在不确定的环境中做出高风险决策通常需要经验丰富的专业人士的专业知识和直觉。在这种情况下,仅仅依赖AI agent可能会导致次优甚至有害的结果。
AI Agent也不太适合需要高度人类同理心、创造力或主观判断的任务。例如,在心理治疗、咨询或创意写作等领域,代理人很难复制人类情感和创造力的细微差别。在这些情况下,人际互动是不可替代的,对于实现预期结果至关重要。
构建AI Agent需要在时间、资源和专业知识方面进行大量投资。对于小型企业或预算有限的项目,开发和维护AI Agent的成本可能超过收益。此外,在受到严格监管的行业中,出于合规性和安全性考虑,可能会限制AI Agent的使用。确保AI Agent遵守严格的监管要求可能具有挑战性且需要大量资源。
LangGraph 与 Autogen 与 Crew AI
在阐明了何时使用AI Agent之后,让我们将重点转移到主要主题:业内最广泛采用的框架。我们进行了一项投票,并确定了最常用的三个框架。让我们从这些框架的高级概述开始。

LangGraph
LangGraph 是 Langchain 设计的开源框架,使用 LLMs。受长期以来将数据处理管道表示为有向无环图(DAGs)的历史启发,LangGraph 将工作流视为图形,其中每个节点代表一个特定的任务或功能。这种基于图形的方法允许对应用程序的流程和状态进行精细控制,使其特别适用于需要高级内存功能、错误恢复和人机交互的复杂工作流。LangGraph 与 LangChain 无缝集成,提供对各种工具和模型的访问,并支持各种多智能体交互模式。
Autogen
Autogen 是由 Microsoft 开发的一个多功能框架,用于构建对话AI Agent。它将工作流程视为AI Agent之间的对话,对于喜欢类似 ChatGPT 的交互式界面的用户来说非常直观。Autogen 支持各种工具,包括代码执行程序和函数调用程序,允许AI Agent自主执行复杂的任务。该框架是高度可定制的,使用户能够使用其他组件扩展代理并定义自定义工作流程。Autogen 采用模块化设计,易于维护,适用于简单和复杂的AI Agent场景。
Crew AI
Crew AI 旨在促进基于角色的 AI Agent之间的协作。Crew AI 中的每个AI Agent都被分配了特定的角色和目标,使他们能够作为一个有凝聚力的单元运作。此框架非常适合构建复杂的多AI Agent系统,例如多AI Agent研究团队。Crew AI 支持灵活的任务管理、自主的AI Agent间委派和可自定义的工具。
易用性
易用性决定了开发人员开始使用框架的速度和效率。它会影响学习曲线以及构建和部署代理所需的时间。
LangGraph
LangGraph 将工作流视为图形,这对于熟悉数据处理管道的人来说可能很直观。它使用有向无环图 (DAG) 来表示工作流,从而更轻松地可视化和管理复杂流程。但是,它可能需要对基于图形的结构有更深入的了解。
Autogen
Autogen 将工作流视为座席之间的对话。对于喜欢聊天界面的用户来说,这种对话方法可能更直观。该框架处理了管理座席交互的繁重工作,使其更容易上手。它抽象了大部分复杂性,使用户能够专注于定义任务和交互。
Crew AI
Crew AI 专注于基于角色的代理设计,其中每个代理都有特定的角色和目标。此框架旨在使 AI 代理能够作为一个内聚单元运行,这对于构建复杂的多代理系统非常有用。它提供了一种定义和管理代理的结构化方法。开始使用 Crew AI 非常简单。
总结
Autogen 和 Crew AI 因其对话方法和简单性而具有优势。
工具覆盖范围
工具覆盖率是指框架支持的工具和功能的范围,这些工具和功能可以增强代理的功能。
LangGraph
LangGraph 与 LangChain 无缝集成,提供对各种工具和模型的访问。它支持工具调用、内存和人机交互。这种集成允许用户利用广泛的工具生态系统来扩展其代理的功能。
Autogen
Autogen 支持各种工具,包括代码执行程序和函数调用程序。该框架的模块化设计使根据需要轻松添加和集成新工具。
Crew AI
Crew AI 建立在 Langchain 之上,可以访问他们的所有工具。用户还可以定义和集成针对其特定需求量身定制的工具。
总结
LangGraph 和 Crew 由于与 LangChain 的无缝集成而具有优势,而 LangChain 提供了全面的工具。所有框架都允许添加自定义工具。
内存支持
内存支持对于AI Agent在交互中维护上下文至关重要,使他们能够提供更连贯和相关的响应。AI Agent可以使用不同类型的内存:
短期记忆:临时存储最近的交互和结果,允许AI Agent调用与当前上下文相关的信息。
长期记忆:保留从过去的互动中获取的宝贵见解和学习成果,使AI Agent能够随着时间的推移建立和完善他们的知识。
实体内存:捕获和组织有关任务期间遇到的特定实体(人员、地点、概念)的信息,从而促进更深入的理解和关系映射。
上下文记忆:结合短期、长期和实体记忆,以维护交互的整体上下文。
LangGraph
LangGraph 提供内置的短期、长期和实体内存,使代理能够在交互中维护上下文。它支持错误恢复和时间旅行等高级内存功能,允许用户重新访问和分析以前的状态。
Autogen
Autogen 通过其对话驱动的方法支持内存。代理可以记住以前的交互,使其适合需要上下文感知的任务。该框架的设计确保代理可以在他们的交互过程中保持连贯的上下文。
Crew AI
Crew AI 提供了一个全面的内存系统,包括短期、长期和实体内存。这使代理能够随着时间的推移积累经验并改进他们的决策。内存系统确保座席可以在多次交互中维护上下文并调用重要信息。
总结
LangGraph 和 Crew AI 都具有优势,因为它们具有全面的内存系统,包括短期、长期和实体内存。
结构化输出
结构化输出对于确保AI Agent生成的响应组织良好且易于解释非常重要。结构化输出可以包括 JSON、XML 或其他有助于进一步处理和分析的格式。
LangGraph
LangGraph 允许节点返回结构化输出,这些输出可用于路由到下一步或更新状态。这使得管理复杂的工作流程变得更加容易,并确保输出井井有条。
Autogen
Autogen 通过其函数调用功能支持结构化输出。AI Agent可以根据他们使用的工具和功能生成结构化响应。这确保了输出是明确定义的,并且可以被其他组件轻松处理。
Crew AI
Crew AI 允许代理将输出解析为 Pydantic 模型或 JSON,从而支持结构化输出。这可确保输出组织良好且易于解释。用户可以定义输出的结构以满足其特定要求。
总结
LangGraph 和 Crew AI 具有优势,因为它能够定义结构化输出。
指导文档
文档质量会影响开发人员理解和使用框架的难易程度。良好的文档可以缩短学习曲线并改善整体开发人员体验。
LangGraph
LangGraph 提供了全面的文档,包括详细的指南和示例。该文档结构合理,使用户可以轻松找到他们需要的信息。它涵盖了框架的各个方面,从基本概念到高级功能。
Autogen
Autogen 包含包含大量示例和教程的文档。该文档涵盖了框架的各个方面,使初学者和高级用户都可以访问它。它包括关键概念和功能的详细说明。
Crew AI
Crew AI 提供详细的文档,包括操作指南和示例。该文档旨在帮助用户快速入门并理解框架的核心概念。它包括实际示例和分步说明。
多AI Agent支持
多AI Agent支持决定了框架处理多个AI Agent之间的各种交互模式的能力。这包括分层、顺序和动态交互模式。
对工具和职责进行分组可以产生更好的结果,因为AI Agent必须从数十种工具中进行选择更有可能在重点任务上取得成功。分开的提示也可以增强性能,使每个提示都可以拥有自己的指令和少量示例(few-shot examples)。每个AI Agent甚至可以由一个单独微调的语言模型(LLM)来驱动,为开发提供了一个有益的概念模型。这种方法允许分别评估和改进每个AI Agent,而不会扰乱更大的应用程序。
LangGraph
LangGraph 支持各种多AI Agent模式,包括分层和动态群聊。它允许用户定义代理之间的复杂交互模式。该框架基于图形的方法使可视化和管理这些交互变得容易。LangGraph 更喜欢这样一种方法:您可以显式定义不同的代理和转换概率,将它们表示为图形中的节点。这种图形化的方法为构建复杂且有明确倾向的工作流提供了最大的灵活性,其中控制节点之间的转换概率是至关重要的。
Autogen
Autogen 是最早的多AI Agent框架之一,它将工作流更多地构建为代理之间的“对话”。这种对话方法为定义AI Agent之间的交互方式提供了灵活性,支持多种对话模式,包括顺序聊天和嵌套聊天。Autogen的设计使得管理复杂的多AI Agent交互变得容易,使代理能够有效地协作。
Crew AI
Crew AI 支持基于角色的交互和AI Agent之间的自主委派。它提供顺序和分层任务执行等流程,以有效管理多AI Agent交互。这可确保AI Agent可以有效地协同工作以实现共同目标。与 LangGraph 相比,Crew AI 是一个更高级别的框架,专注于创建紧密运作的多AI Agent“团队”。
总结
LangGraph 因其基于图形的方法而具有优势,这使得可视化和管理复杂的交互变得更加容易。
缓存
缓存通过存储和重用以前计算的结果,有助于减少AI Agent的延迟和资源消耗。
LangGraph
LangGraph 通过其内置的持久化层支持缓存。这允许用户随时保存和恢复图形执行。缓存机制确保可以重用以前计算的结果,从而提高性能。
Autogen
AutoGen 支持缓存 API 请求,以便在发出相同请求时可以重复使用这些请求。
Crew AI
Crew AI 中的所有工具都支持缓存,使代理能够有效地重用以前获得的结果,减少外部资源的负载并加快执行时间。您还可以使用该工具的 cache_function 属性定义对缓存机制的更精细控制。
总结
所有框架都支持缓存,但 LangGraph 和 CrewAI 可能具有优势。
Replay
Replay功能允许用户重新访问和分析以前的交互,这对于调试和提高AI Agent性能非常有用。它使用户能够了解决策过程并确定需要改进的领域。
LangGraph
LangGraph 通过其时间旅行功能支持回放。用户可以倒回到过去并探索不同的路径,这使得调试和试验不同场景变得更加容易。此功能提供了交互的详细历史记录,允许进行深入的分析。
Autogen
Autogen 没有明确的重放功能,但用户可以手动更新状态以控制代理的轨迹。这允许一定程度的重放功能,尽管它可能需要更多的手动干预。
CrewAI
CrewAI 提供了从最近的团队启动中指定任务进行回放的能力。目前,仅支持最新的启动,且仅允许您从最近一次的团队运行中进行回放。
总结
LangGraph 和 Crew AI 都通过内置功能轻松replay。
代码执行
代码执行功能使代理能够通过编写和执行代码来执行复杂的任务。这对于需要动态计算或与外部系统交互的任务特别有用。
LangGraph
LangGraph 通过与 LangChain 的集成来支持代码执行。用户可以定义在工作流程中执行代码的节点。
Autogen
Autogen 支持通过其内置的代码执行程序执行代码。代理可以编写和执行代码以自主执行任务。该框架为代码执行提供了一个安全的环境,确保代理可以安全地执行任务。
Crew AI
Crew AI 支持通过可定制的工具执行代码。用户可以定义执行代码的工具,并将其集成到代理的工作流程中。这为定义代理的功能提供了灵活性,并允许动态任务执行。
总结
Autogen 由于其内置的代码执行程序可能略有优势,但其他两个也具有强大的功能。
人机协同
人机协同互动使代理能够接收人类的指导和反馈,从而提升它们的性能和可靠性。这对于需要人类判断或干预的任务尤为重要。
LangGraph
LangGraph 通过其中断功能支持人机交互。用户可以暂停图形执行以提供反馈或进行调整。
Autogen
Autogen 通过其 3 种模式(NEVER、TERMINATE 和 ALWAYS)支持人机交互。
Crew AI
Crew AI 通过在任务定义中设置 human_input 标志,允许代理在任务执行期间请求人工输入,从而支持人机交互。启用后,代理会在提供最终答案之前提示用户输入。
总结
所有框架都以不同的方式支持人机协同工作。
定制化
自定义选项确定开发人员根据其特定需求和要求定制框架的难易程度。这包括定义自定义工作流、工具和交互的能力。
LangGraph
LangGraph 提供对应用程序流和状态的精细控制。用户可以自定义节点和边缘的行为以满足他们的特定需求。该框架基于图形的方法可以轻松定义复杂的工作流。
Autogen
Autogen 是可定制的,允许用户使用其他组件扩展代理并定义自定义工作流程。该框架设计为模块化且易于维护。
Crew AI
Crew AI 提供广泛的自定义选项,包括基于角色的代理设计和可自定义工具。
可扩展性
可扩展性是确保框架可以随着您的需求而增长的必要条件。随着您整合更多的代理、工具和交互,框架应该保持其性能和可靠性。这三个框架都提供了灵活性,可以根据您的需要添加AI Agent、工具和自定义项来扩展系统。
目前尚不清楚随着添加更多元素,哪个框架的扩展效果更好。我们建议对它们进行试验以获得更好的想法。、
最终总结

4037

被折叠的 条评论
为什么被折叠?



