初学者入门大模型Agent必学:深度分析不同的开源智能体框架

01 引言

我们都听说过CrewAI和AutoGen,但您知道吗?目前市面上已有数十种开源智能体框架——其中许多都是过去一年内发布的。

我简单测试了几款较热门的框架,初步感受了它们的工作原理和上手难度。接下来就让我们逐一剖析这些框架的特色功能。

img

本文将重点评测LangGraph、Agno、SmolAgents、Mastra、Pydantic AI和Atomic Agents六大框架,并与CrewAI和AutoGen进行横向对比。我们将解析各框架的核心功能、设计理念以及技术路线等。

02 Agentic AI

代理式人工智能(Agentic AI)的核心,是围绕大语言模型(LLM)构建系统,使其具备精准的知识储备、数据访问能力和执行功能。你可以将其理解为:用自然语言来自动化流程和任务

利用自然语言处理(NLP)实现自动化并非新鲜事——多年来我们一直用NLP来提取和处理数据。真正的突破在于,如今我们可以赋予语言模型更高的自由度,让它们动态处理模糊信息并自主决策。

img

但要注意:LLM能理解语言,不等于它们拥有"代理能力"(agency),甚至未必能真正领会你想自动化的任务。正因如此,构建可靠的智能体系统需要大量工程化设计。

03 智能体框架是什么?

智能体框架的核心功能在于辅助提示词工程(prompt engineering),并管理LLM的输入输出数据流——但它们还提供了更高层次的抽象,大幅降低了开发门槛。

假设你要从头构建一个系统,让LLM调用不同的API工具,传统做法是在系统提示词中硬编码这些规则。你需要要求LLM在返回答案时,必须附带它想调用的工具名称,这样系统才能解析并执行对应的API调用。

在这里插入图片描述

本质上,我们讨论的是提示词工程(prompt engineering)——这是所有框架的底层基础。一般来说,框架通常通过两种方式提供帮助:一是合理构建提示(prompt),确保大型语言模型(LLM)以正确的格式回应;二是解析模型的响应,将其路由到正确的工具(API、文档或其他资源)。

在构建知识库时,框架也可以帮助进行文档的分块(chunking)、嵌入(embedding)和存储。这些内容会作为上下文加入到提示中,就像我们构建标准的检索增强生成(RAG)系统一样。此外,框架还能处理错误捕获、结构化输出、结果验证、系统监控、部署管理等任务,并通过代码组织能力支持更复杂的系统构建(例如多智能体协作架构)。

然而,许多人认为使用完整的框架可能有些“杀鸡用牛刀”。

问题在于:如果LLM没有正确使用工具,或者出现故障,这种抽象可能变成负担,因为你很难调试。换模型时也可能出现问题——系统提示(prompt)可能针对某个模型量身定制,转到其他模型时效果不佳。

因此,一些开发者会重写框架的部分内容,例如在 LangGraph 中的 create_react_agent,以获得更好的控制。一些框架较轻便,另一些则功能更丰富,提供额外的特性,但它们都有社区支持,能帮助你入门。一旦掌握了其中一种(包括其底层工作原理),学习其他框架也会变得更容易。

在这里插入图片描述

04开源智能体框架介绍

我们确实需要参考社区的实际案例来评估框架的表现,但最流行的框架未必总是最优选。

大家常听说的有 CrewAI 和 AutoGen。

  • CrewAI 是一个高度抽象的框架,可以通过隐藏底层细节,帮助你快速构建代理系统。
  • AutoGen 则专注于自主、异步的智能体协作,智能体们可以根据自身需要自由合作,这使得它更适合用于测试和研究。

在这里插入图片描述

  • LangGraph 仍然是一个比较知名的系统,但值得被强调为开发者的主要框架之一。它采用基于图的方式,构建节点并通过代理连接它们。相比前两个,LangGraph 提供了更严格的工程控制,不假设智能体会拥有较强的自主性。

    需要指出的是,很多人觉得 LangGraph 在抽象层次上过于复杂,调试起来比较困难。其思想是学习曲线较陡,但一旦掌握了基本原理,使用起来会变得更容易。

此外,我还想介绍一些较新的框架。

  • 下一个是 Agno(之前叫 Phi-Data),它专注于提供极佳的开发者体验,也有我见过最清晰的文档之一。它非常即插即用,配备丰富的内置功能,组织成合理、清晰的抽象结构,便于快速上手。

  • SmolAgents 是一个非常简洁的框架,它引入了一个代理—— CodingAgent——通过代码(而非JSON)路由数据。它还可以直接访问整个 Hugging Face 模型库。

    在这里插入图片描述

关于一些不常提及的开源框架:

  • PydanticAI: 基于 Pydantic,抽象层极少,提供一个高度透明的基础框架。非常适合需要严格类型安全、可预测验证输出的场景,便于细粒度控制和调试
  • Atomic Agents 由一位个体开发者构建,采用基于架构的构建块,像乐高一样连接,强调结构和控制。它诞生的背景是市场上缺乏能够有效实践的解决方案。

PydanticAI 和 Atomic Agents 的共同目标是摆脱“黑箱”式的独立行为AI,实现更可控、更透明的系统。

最后,Gatsby 团队打造的 Mastra,是一款面向前端开发者的 JavaScript 框架,旨在让开发者可以在自己生态系统中轻松构建代理。

img

我们接下来会详细介绍每个框架提供的内容以及它们之间的区别。

05 共同点介绍

大多数框架都包含相同的核心构建模块:支持不同模型、工具、记忆体和RAG(检索增强生成)。

大多数开源框架或多或少都具备模型无关性。这意味着它们被设计为支持多种供应商的模型。然而,如前所述,每个框架都有自己独特的系统提示结构——这种结构可能更适合某些模型而非其他模型。

这也正是为什么理想情况下,大家需要能够访问系统提示并根据需要对其进行调整。

所有智能体框架都支持工具集成,因为工具对于构建能够执行行动的系统至关重要。它们还通过简单的抽象使自定义工具的定义变得容易。如今,大多数框架都正式或通过社区解决方案支持MCP。

在这里插入图片描述

需要注意的是,并非所有模型都内置了函数调用功能,而这是使用工具所必需的。要确定哪些模型最适合作为基础大语言模型(LLM),大家可以参考Hugging Face的智能体排行榜。

网址:https://huggingface.co/blog/pratikbhavsar/agent-leaderboard

为了使智能体能够在LLM调用之间保留短期记忆,所有框架都利用了状态(state)机制。状态帮助LLM记住早期步骤或对话部分的内容。

大多数框架还提供了简单的选项,用于设置与不同数据库的RAG,以便为智能体提供知识支持。

最后,几乎所有框架都支持异步调用、结构化输出、流式处理等。

06 不同框架的缺失部分

在某些方面,不同的框架会有差异,比如支持多模态输入、长期记忆和多智能体系统的支持。有些框架内置了这些功能,而另一些则需要开发者自行实现。

首先,一些框架内置了多模态处理方案——也就是说,支持文本、图像和语音等多种输入。只要模型支持,这些功能都可以通过自行实现来完成。

正如前面所说,短期记忆(状态)是框架的标准配置——没有它,就无法构建使用工具的系统。然而,长期记忆的实现更为复杂,这也是不同框架之间的差异所在。有的框架提供了内置解决方案,而有些则需要开发者自行集成其他解决方案。多智能体能力在不同框架中的实现方式也有所不同。多智能体系统允许大家构建协作式或分层式架构,让多个智能体通过监督者(supervisor)相互连接。

img

大多数框架建议保持智能体的专注性——即限定其工具集和任务范围。这意味着在复杂工作流中,你可能需要构建多个智能体团队。虽然所有框架都支持单层团队,但在扩展到多层、多层级系统时,部分框架会变得复杂。

  • LangGraph在这方面表现突出——你可以构建节点,将它们连接到不同的监督者,并可视化不同团队的交互方式。在构建大规模多智能体系统时,它显然是最灵活的
  • Agno最近增加了对协作式和分层式团队的支持,但目前缺乏更复杂的多层架构示例。
  • SmolAgents允许将智能体连接到监督者,但随着系统规模扩大,复杂度会上升。它的团队结构与 CrewAI 类似。Mastra 在这方面也类似。
  • PydanticAI和 Atomic Agents 则需要开发者手动编排智能体团队,因此协调工作完全由开发者负责。

07 差异点分析

不同开源框架在抽象程度、赋予代理的控制权以及实现功能所需的编码量方面各不相同。

首先,有些框架会尽可能多地内置各种功能,使得快速上手变得非常容易。

我认为,Mastra、CrewAI,以及在一定程度上,Agno都是设计为即插即用的。LangGraph也有相当程度的抽象,但它采用基于图的系统,需要手动连接各个节点。这提供了更大的控制权,但也意味着你必须自己设置和管理每个连接,学习难度相对较高。

img

接下来是低层次抽象的框架,比如PydanticAI、SmolAgents和Atomic Agents。这些框架强调透明性,但通常需要你自己构建调度与协调的流程。这为你提供了完全的控制,也方便调试,但同时也会延长开发时间。

另一个差异点在于框架假设智能体应该拥有的自主性。有些框架的理念是让大型语言模型(LLMs)足够聪明,能够自主完成任务。其他一些则倾向于严格控制—只赋予智能体一个明确的任务,并一步步指导其操作。

img

AutoGen和SmolAgents属于前者,而其他大多偏向于控制型。这一点值得考虑:当开发者构建偏向严格控制的框架时,往往是因为还没有找到让智能体自主工作的可靠方法。

这个领域也逐渐像工程开发一样,需求借助编码技能。

如果你打算构建这类系统,理解编码基础是必要的。关键在于这些框架在技术要求上差异有多大。如果你经验较少,选择CrewAI、Agno或Mastra可能是个不错的主意。

对于简单的用例,SmolAgents也相对直接。

而使用PydanticAI、Atomic Agents或LangGraph,你可能需要自己编写更多逻辑代码。当然,构建智能体来帮你梳理和结构化代码也是可行的。

如果你是编程新手,可以考虑Flowise或Dify。

img

最后,值得关注的是这些框架的开发者体验。据我所知,大多数开发者觉得CrewAI和AutoGen在调试方面比较困难。SmolAgents的CodeAgent提出了一种新颖的方法——由智能体输出代码来路由数据,这点很酷,但并不总是能按预期工作。

尤其是LangGraph(配合LangChain使用)学习曲线陡峭,抽象概念有时令人困惑,可能需要反复拆解重建。

PydanticAI和Atomic Agents普遍受到开发者的好评,但它们都需要你自己实现调度流程。

Agno和Mastra虽然是不错的选择,但在调试遇到循环调用等问题时可能比较困难。

08 总结

入门的最好方式就是直接尝试一下。不过,我希望这份介绍能为你提供一个关于现有开源框架的基本概览 — 以及哪些可能适合你。

不过,这只是对每个框架的粗略介绍,因为我没有涉及企业级的可扩展性或操作的鲁棒性等方面。如果你正打算为这些目标构建系统,可能需要另外进行专门的研究。

一些开发者认为,AI智能体框架是最差的抽象形式之一——它们常常让事情变得比直接使用官方大型语言模型(LLM)提供商的SDK更加复杂。

大模型岗位需求

大模型时代,企业对人才的需求变了,AIGC相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
在这里插入图片描述

掌握大模型技术你还能拥有更多可能性

• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;

• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;

• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;

• 更优质的项目可以为未来创新创业提供基石。

可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》*

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述
在这里插入图片描述

如果大家想领取完整的学习路线及大模型学习资料包,可以扫下方二维码获取
在这里插入图片描述
👉2.大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。(篇幅有限,仅展示部分)

img

👉3.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(篇幅有限,仅展示部分,公众号内领取)

img

👉4.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(篇幅有限,仅展示部分,公众号内领取)

img

大模型面试

**因篇幅有限,仅展示部分资料,**有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

**或扫描下方二维码领取 **

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一粟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值