支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


深度对比流行开源智能体 Agent 框架:选择适合你的解决方案

发布日期:2025-05-14 03:06:58 浏览次数: 1528 作者:AgenticAI
推荐语

深入分析多个开源智能体框架,洞察它们的特点和适用场景。

核心内容:
1. 热门开源智能体框架的对比分析
2. 智能体框架在自动化流程中的作用
3. Agentic AI框架的详细介绍和使用场景

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

我们都听说过 CrewAI 和 AutoGen,但你知道吗?现在市面上已经有数十个开源的智能体框架了,而且其中很多都是在过去一年内发布的。我对其中一些较为流行的框架进行了简单测试,以了解它们的工作原理以及上手难易程度。所以接下来我将依次介绍每个框架的特点和优势。

本次重点会放在 LangGraph、Agno、SmolAgents、Mastra、Pydantic AI 和 Atomic Agents 上,我们也会将它们与 CrewAI 和 AutoGen 进行对比。我们将探讨框架实际能做什么、各自的设计选择、它们之间的区别,以及背后不同的设计理念。

Agentic AI

Agentic AI 本质上是围绕大语言模型(LLMs)构建系统,使它们能够具备准确的知识、访问数据的能力,以及执行操作的能力。你可以将其理解为用自然语言来自动化流程和任务。在自动化中使用自然语言处理(NLP)并不是什么新鲜事 —— 多年来我们一直用 NLP 来提取和处理数据。真正的变化在于我们现在可以赋予语言模型更多自由度,使它们能够处理模糊性,并动态地做出决策。

尽管语言模型能理解自然语言,但这并不意味着它们具备“智能体能力”(agency) —— 甚至未必理解你想要自动化的任务。因此,要构建可靠的系统仍需要大量的工程设计工作。如果你想了解更适合初学者的介绍,我在这里对 Agentic AI 做了更详细的讲解。

框架的作用是什么?

从本质上说,Agentic 框架的作用是帮助你进行提示词工程(prompt engineering),并在 LLM 与外部之间实现数据的路由传递 —— 但它们还提供了一些额外的抽象层,使得上手更容易。

如果你打算从零构建一个系统,让一个大语言模型调用不同的 API(也就是“工具”),你需要在系统提示词中定义这一逻辑。然后你还要让 LLM 在回答中返回它想调用的工具,这样系统才能解析并执行相应的 API 请求。

简单来说,这就是提示词工程 —— 它是任何框架的基础。

框架通常会在两个方面提供帮助:一是规范提示词的结构,以确保 LLM 返回正确格式的响应;二是将响应正确地路由到相应的工具、API、文档等目标资源。当我们设置知识库时,框架可能会提供机制来始终将其加入到提示中,作为上下文内容,这类似于构建传统的 RAG(检索增强生成)系统。此外,框架还可以帮助你处理错误、生成结构化输出、做结果验证、实现可观测性、完成部署 —— 更重要的是,它能帮助你组织代码,从而构建更复杂的系统,比如多智能体协作系统。

不过,很多人觉得使用一个完整框架有点“杀鸡用牛刀”。问题在于:如果 LLM 工具调用错误或者系统出现问题,框架的抽象层反而可能成为障碍,因为你很难调试清楚。再比如,换用另一种模型时,原本为某个模型量身定制的系统提示词可能并不适用于新的模型。这也是为什么有些开发者会选择重写框架的一部分功能 —— 比如 LangGraph 中的 create_react_agent —— 以获得更好的控制能力。

不同框架有轻有重,功能支持也各不相同,但它们通常都有社区支持,能帮助你快速上手。一旦你掌握了一个框架(尤其是理解了它的底层工作机制),学习其他框架也会变得更容易。

不同的开源框架

我们通常会参考社区的反馈,了解某个框架在真实场景中的表现。不过,最受欢迎的框架并不一定就是最合适的选择。我们最常听到的框架是 CrewAI 和 AutoGen

CrewAI 是一个高抽象层的框架,可以隐藏底层细节,帮助你快速构建智能体系统。

AutoGen 则专注于构建自治、异步的智能体协作系统,智能体可以根据需要自由协作——这使它更适合用于测试和研究。

LangGraph 也是一个比较知名的系统,值得作为主要开发框架之一来重点介绍。它采用图结构的方式,你可以通过构建节点并用智能体连接这些节点来实现流程控制。与 CrewAI 和 AutoGen 相比,它提供了更严格的工程控制,并不假设智能体应该拥有太多自主能力。不过需要注意的是,很多人认为 LangGraph 的抽象过于复杂,调试困难。它的学习曲线较陡,但一旦掌握了基础,就会变得容易许多。

接下来还有一些较新的框架,也值得一提:

Agno(前身是 Phi-Data):强调良好的开发体验,拥有我见过最清晰的文档之一。它非常“即插即用”,内置了大量功能,结构清晰、抽象合理,非常适合快速上手。

SmolAgents:是一个极简的框架,引入了一个叫 CodingAgent 的智能体,用代码而非 JSON 来进行数据路由。它还允许你直接使用 Hugging Face 的完整模型库,开箱即用。

还有一些不太被提及的开源框架:

PydanticAI:建立在 Pydantic 之上,抽象层极少,框架非常透明,适合需要严格类型安全、可预测且经过验证的输出场景,便于精细控制和调试。

Atomic Agents:由一位独立开发者打造,采用基于 schema 的构建模块(像乐高积木一样拼接),强调结构性和可控性。它的初衷是为了解决现有框架在实际应用中表现不佳的问题。PydanticAI 和 Atomic Agents 的共同目标是摆脱“黑盒式 AI”,拒绝不可控的自治行为。

Mastra:由 Gatsby 背后的团队开发,是一个 JavaScript 框架,专为前端开发者打造,方便他们在自己的生态系统中轻松构建智能体。 我们将继续深入讲解这些框架的特点,以及它们之间的差异。

各框架的共通点

大多数智能体框架都有一些共同的核心构件:对不同模型的支持、工具系统、记忆机制以及 RAG(检索增强生成)。大多数开源框架基本上都是模型无关的,也就是说它们被设计为支持多种模型服务商。但正如前面提到的,每个框架的系统提示词结构都不一样,这种结构可能对某些模型更友好,对其他模型则未必合适。这也是为什么你最好能访问和修改系统提示词,以便根据需要进行调整。

所有智能体框架都支持工具系统,因为“工具”是构建具备行动能力的系统的关键。框架通常也会通过简洁的抽象方式,让你轻松自定义自己的工具。目前,大多数框架都支持 MCP(Multi-Component Prompting),无论是官方支持还是通过社区方案。

需要注意的是,并不是所有模型都支持函数调用(function calling),而函数调用是工具使用的前提。想了解哪些模型适合作为基础 LLM,你可以参考 Hugging Face 的 Agent 排行榜。为了让智能体在多轮调用 LLM 时保有短期记忆,所有框架都会使用状态管理(state)。状态可以帮助 LLM 记住之前对话中说过的话或已完成的步骤。大多数框架也都提供了便捷的方式集成 RAG,你可以用不同的数据库为智能体提供外部知识。

最后,几乎所有框架都支持:

  • 异步调用
  • 结构化输出
  • 流式输出
  • 可观测性(日志、追踪、监控等)

这些都是现代 Agent 系统的重要组成部分。

一些框架没有的功能

框架在某些方面的支持存在差异,例如对多模态输入、记忆机制和多智能体系统的支持。有些框架内建了解决方案,而有些则需要你自己动手“接线”。首先,有些框架自带对多模态输入(即文本、图像、语音等)的支持。只要基础模型支持,你也可以自己实现这一功能,但内建支持会让开发更加方便。正如前面提到的,短期记忆(state)几乎是所有框架都包含的 —— 因为没有它你就无法构建带工具调用的系统。但长期记忆的实现就没那么简单了,这方面各框架的能力差异很大。有的框架内建了支持,有的则需要你接入第三方记忆系统(如数据库或外部向量库)。

框架在处理多智能体系统方面也存在差异。多智能体系统可以让你构建协作型或层级型结构的“智能体团队”,通过“监督者”连接多个智能体。大多数框架都建议将单个智能体职责范围控制得较窄,即只赋予其有限的目标和工具集。这意味着你往往需要构建“智能体团队”来完成更复杂的流程。虽然所有框架都能让你构建一个团队,但当你尝试扩展成“多层级、多团队”的系统时,有些框架就会变得难以管理。

这正是 LangGraph 的优势所在 —— 你可以创建节点,把它们连接到不同的监督者,并可视化各个团队之间的交互过程。要构建大规模的多智能体系统,LangGraph 是目前最灵活的框架之一。Agno 最近也加入了对“团队”的支持,支持协作型和层级型团队结构,但目前还缺乏复杂多层级结构的示例。SmolAgents 允许你将智能体连接到一个监督者,但随着系统变大,会变得复杂。它在团队结构方面的设计有点像 CrewAIMastra 也类似。对于 PydanticAI 和 Atomic Agents,你则需要手动串联智能体团队,所有的流程编排都需要你自己处理。

它们的不同之处

框架之间的差异主要体现在它们的抽象程度、赋予智能体的控制权以及你需要编写多少代码才能使系统正常工作。

首先,有些框架故意包含了大量的内建功能,使得你可以快速开始使用。我认为 MastraCrewAI 和在某种程度上 Agno 是为即插即用而设计的。LangGraph 也有相当高的抽象级别,但它使用基于图形的系统,需要手动连接节点。虽然这给予了你更多控制权,但也意味着你必须自己设置并管理每个连接,这带来了更陡峭的学习曲线。

接下来是低抽象级别的框架,比如 PydanticAISmolAgents 和 Atomic Agents。这些框架力求保持透明,但你通常需要自己搭建和编排流程。这提供了完全的控制权,有助于调试,但也增加了构建时间。另一个区别是框架假设智能体应该拥有多少自主性。有些框架认为 LLM(大语言模型)应该足够智能,能够自己完成任务,而其他框架则偏向于更紧密的控制 —— 给智能体一个明确的任务,并一步步引导它完成。AutoGen 和 SmolAgents 属于前者,其他框架则更倾向于控制。

在这一点上有一个需要考虑的问题:当开发者构建一个侧重紧密控制的框架时,通常是因为他们尚未找到可靠的方式让智能体独立工作——至少在现有技术下无法做到这一点。这个领域正在越来越像工程学。如果你打算构建这些系统,确实需要理解编程。真正的问题是,框架在技术要求上有多少差异。如果你经验较少,使用 CrewAIAgno 或 Mastra 可能是个不错的选择。SmolAgents 也适合简单的用例。至于 PydanticAIAtomic Agents 和 LangGraph —— 你将需要自己编写更多的逻辑代码。诚然,你仍然可以构建一个智能体来帮助你正确组织代码。如果你完全不懂编程,可以试试 Flowise 或 dify

最后,值得一提的是这些框架在开发者体验上的差异。从我的观察来看,大多数开发者认为 CrewAI 和 AutoGen 很难调试。SmolAgents 的 CodeAgent 引入了一种新颖的方式,让智能体通过代码来路由数据——这是一个很酷的想法,但并不总是按预期工作。LangGraph,尤其是与 LangChain 配合使用时,学习曲线非常陡峭,而且有些抽象可能让你感到困惑,最终可能需要拆解并重构。PydanticAI 和 Atomic Agents 通常受到开发者的好评,但它们要求你自己编排流程。Agno 和 Mastra 是很不错的选择,但你可能会遇到一些如循环调用等问题,调试起来会比较困难。

总结

开始的最佳方式就是直接跳进去试试。不过我希望这篇文章能为你提供一个关于当前开源框架的概述——以及哪些可能适合你。不过,这只是对每个框架的浅层介绍,我并没有深入探讨如企业级可扩展性或操作可靠性等方面。如果你是为了这些目标而构建系统,你可能需要单独做一些调研。一些开发者认为,AI 智能体框架是最糟糕的抽象形式之一——它们常常使事情变得比直接使用官方 LLM 提供商的 SDK 更加复杂。我将这个问题留给你自己判断。

记得你可以在这里找到每个框架的完整功能列表,以及可以在这里找到包含所有智能体框架的仓库。希望你喜欢这篇文章,如果喜欢的话,记得点赞、评论或分享。

本文翻译自 Meduim 千赞好文 Agentic AI: Comparing New Open-Source Frameworks,作者 Ida Silfverskiöld,可点击原文查看。

最后,我们已经建立了 Agentic AI 开发交流群,后台回复进群即可。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询