我们都听说过 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 允许你将智能体连接到一个监督者,但随着系统变大,会变得复杂。它在团队结构方面的设计有点像 CrewAI。Mastra 也类似。对于 PydanticAI 和 Atomic Agents,你则需要手动串联智能体团队,所有的流程编排都需要你自己处理。
*它们的不同之处*
框架之间的差异主要体现在它们的抽象程度、赋予智能体的控制权以及你需要编写多少代码才能使系统正常工作。
首先,有些框架故意包含了大量的内建功能,使得你可以快速开始使用。我认为 Mastra、CrewAI 和在某种程度上 Agno 是为即插即用而设计的。LangGraph 也有相当高的抽象级别,但它使用基于图形的系统,需要手动连接节点。虽然这给予了你更多控制权,但也意味着你必须自己设置并管理每个连接,这带来了更陡峭的学习曲线。
接下来是低抽象级别的框架,比如 PydanticAI、SmolAgents 和 Atomic Agents。这些框架力求保持透明,但你通常需要自己搭建和编排流程。这提供了完全的控制权,有助于调试,但也增加了构建时间。另一个区别是框架假设智能体应该拥有多少自主性。有些框架认为 LLM(大语言模型)应该足够智能,能够自己完成任务,而其他框架则偏向于更紧密的控制 —— 给智能体一个明确的任务,并一步步引导它完成。AutoGen 和 SmolAgents 属于前者,其他框架则更倾向于控制。
在这一点上有一个需要考虑的问题:当开发者构建一个侧重紧密控制的框架时,通常是因为他们尚未找到可靠的方式让智能体独立工作——至少在现有技术下无法做到这一点。这个领域正在越来越像工程学。如果你打算构建这些系统,确实需要理解编程。真正的问题是,框架在技术要求上有多少差异。如果你经验较少,使用 CrewAI、Agno 或 Mastra 可能是个不错的选择。SmolAgents 也适合简单的用例。至于 PydanticAI、Atomic Agents 和 LangGraph —— 你将需要自己编写更多的逻辑代码。诚然,你仍然可以构建一个智能体来帮助你正确组织代码。如果你完全不懂编程,可以试试 Flowise 或 Dify。
最后,值得一提的是这些框架在开发者体验上的差异。从我的观察来看,大多数开发者认为 CrewAI 和 AutoGen 很难调试。SmolAgents 的 CodeAgent 引入了一种新颖的方式,让智能体通过代码来路由数据——这是一个很酷的想法,但并不总是按预期工作。LangGraph,尤其是与 LangChain 配合使用时,学习曲线非常陡峭,而且有些抽象可能让你感到困惑,最终可能需要拆解并重构。PydanticAI 和 Atomic Agents 通常受到开发者的好评,但它们要求你自己编排流程。Agno 和 Mastra 是很不错的选择,但你可能会遇到一些如循环调用等问题,调试起来会比较困难。
总结
开始的最佳方式就是直接跳进去试试。不过我希望这篇文章能为你提供一个关于当前开源框架的概述——以及哪些可能适合你。不过,这只是对每个框架的浅层介绍,我并没有深入探讨如企业级可扩展性或操作可靠性等方面。如果你是为了这些目标而构建系统,你可能需要单独做一些调研。一些开发者认为,AI 智能体框架是最糟糕的抽象形式之一——它们常常使事情变得比直接使用官方 LLM 提供商的 SDK 更加复杂。我将这个问题留给你自己判断。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。