随着大型语言模型(LLM)的快速发展,AI Agent 技术逐渐成为热门方向。为了简化 AI Agent 的开发,各种框架应运而生。本文将从流行度出发,对当前主流的 AI Agent 开发框架进行梳理,并通过工具声明和调用的案例,帮助开发者更直观地了解它们的特点,最后给出理性的总结和建议。
一、AI Agent 开发框架流行度排序
(注意:流行度是一个动态的概念,以下排序基于当前 GitHub Star 数、社区活跃度、搜索指数等综合指标,仅供参考,并不代表绝对排名。)
- LangChain:
流行度: 毋庸置疑的领头羊,GitHub Star 数遥遥领先,社区非常活跃,被广泛应用于各种 AI Agent 项目。
特点: 提供了丰富的模块化组件,涵盖了模型调用、提示词管理、工具集成、记忆模块、链式调用等功能。支持多种 LLM 模型,扩展性强。
优势: 生态完善,功能强大,学习资源丰富。
劣势: 学习曲线相对较陡峭,代码结构较为复杂,可能存在过多的抽象。

Auto-GPT:
流行度: 自主 Agent 框架的代表,GitHub Star 数很高,引发了广泛关注,但由于功能较新,更新速度也很快。
特点: 基于目标驱动,能够自主规划和执行任务,无需详细的 prompt 指令。支持多种工具集成。
优势: 具有很高的自主性,能够执行复杂的多步骤任务。
劣势: 可能不够稳定,有时会出现目标漂移的情况,学习曲线较陡峭,需要一定的使用经验。

LlamaIndex (GPT Index):
流行度: 专注于数据索引和检索的框架,GitHub Star 数较高,在 RAG(Retrieval-Augmented Generation)领域应用广泛。
特点: 提供了强大的数据索引和检索功能,能够将 LLM 连接到外部知识库。支持多种数据格式,易于集成。
优势: 适用于需要知识检索的场景,能够提升 LLM 的准确性和可靠性。
劣势: 相对 LangChain 来说,组件较少,更专注于 RAG。

Haystack:
流行度: 开源的 NLP 框架,GitHub Star 数较高,被广泛应用于文档处理、问答系统等场景。
特点: 提供了完善的 NLP 组件,涵盖了文本预处理、文档检索、问答模型、生成模型等功能。
优势: 适用于 NLP 任务,生态完善,性能优秀。
劣势: 对 LLM 的支持相对 LangChain 来说较弱,使用略显复杂。

CrewAI:
流行度: 近期兴起的多 Agent 协作框架,GitHub Star 数增长迅速。
特点: 侧重于让多个 Agent 协同完成任务,每个 Agent 都有自己的角色、目标和工具。
优势: 可以更好地模拟团队协作,让不同的 Agent 执行不同的角色。
劣势: 相对较新,生态不如 LangChain 完善,需要一定的使用经验。

BabyAGI:
流行度: 轻量级的自主 Agent 框架,GitHub Star 数较高,易于上手。
特点: 基于任务迭代的思想,不断循环执行任务。代码简洁易懂,方便开发者学习。
优势: 学习曲线低,代码结构简单,适合快速原型开发。
劣势: 自主性没有 Auto-GPT 那么强,功能相对简单。

Semantic Kernel:
流行度: Microsoft 发布的 AI Agent 开发框架,GitHub Star 数较高,背靠微软资源。
特点: 提供了 Kernel、Skills 等核心概念,支持多种 LLM 模型,并可以与 Azure 服务集成。
优势: 整合了微软的 AI 技术,功能强大,易于与 Azure 服务集成。
劣势: 主要面向 .NET 开发者,对其他语言的开发者来说,学习曲线较陡峭。

二、工具声明和调用案例对比
以下部分案例展示了如何使用他们声明一个工具,并通过 Agent 调用该工具:
- LangChain (Python):

2.AutoGPT:自主规划与任务执行

3,CrewAI:多Agent协作与分配任务

4.Semantic Kernel (.NET):

三、总结与建议
- LangChain:
功能强大、生态完善,适合需要灵活定制和复杂逻辑的场景。 建议初学者从 LangChain 入手,熟悉 AI Agent 的基本概念和流程。 - Auto-GPT:
自主性强,适合需要长期运行和自主规划的场景。 建议有一定 AI Agent 开发经验的开发者尝试,探索 autonomous agent 的可能性。 - LlamaIndex:
专注于数据索引和检索,适合需要连接外部知识库的场景。 建议需要 RAG 功能的开发者使用。 - Haystack:
适用于 NLP 任务,适合需要文本处理、文档检索、问答等功能的场景。 - CrewAI:
适合需要多 Agent 协作的场景。建议需要模拟团队协作的开发者使用。 - BabyAGI:
轻量级,适合快速原型开发和学习。 建议初学者或需要简单自主 Agent 的开发者使用。 - Semantic Kernel:
适合 .NET 开发者,或需要与 Azure 服务集成的场景。
如何选择框架:
- 简单任务与工具调用
如果你的任务较为简单,主要是与外部工具交互,那么LangChain和最近hugging face发布的SmolAgents可能是最佳选择。 - 复杂任务链与多工具集成
如果你需要处理复杂的多步骤任务链,Langchain将是一个强大的工具。 - 自主任务执行与长期运行
如果你的任务是长期持续执行并自动化的,AutoGPT会更适合你。 - 多Agent协作与资源调度
如果你的任务需要多Agent协作,那么CrewAI是一个非常合适的框架。
理性选择:
- 根据需求选择:
不要盲目追随流行,应该根据自己的具体需求和技能水平选择合适的框架。 - 从小处着手:
先从简单的任务开始,逐步积累经验。 - 多方尝试:
可以尝试多个框架,比较它们的优缺点,选择最适合自己的。 - 关注社区:
积极参与社区讨论,学习其他开发者的经验,共同进步。


