智能体课程文档

smolagents 简介

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

smolagents 简介

Unit 2.1 Thumbnail

欢迎来到本模块,你将在这里学习 如何使用 smolagents 库构建有效的 Agent,该库提供了一个用于创建强大 AI Agent 的轻量级框架。

smolagents 是 Hugging Face 的一个库;因此,我们希望你能通过 smolagents 代码仓库 点星 来支持我们

staring smolagents

模块概览

本模块全面概述了使用 smolagents 构建智能 Agent 的关键概念和实用策略。

在众多开源框架中,了解 smolagents 的组件和功能,明白它为何是一个有用的选择,或者确定何时其他解决方案可能更合适,是至关重要的。

我们将探讨关键的 Agent 类型,包括专为软件开发任务设计的代码 Agent、用于创建模块化、功能驱动工作流的工具调用 Agent,以及能够访问和整合信息的检索 Agent。

此外,我们还将介绍多 Agent 的协同工作,以及视觉能力和网页浏览的集成,这些都为动态和情境感知的应用开启了新的可能性。

在本单元中,来自单元 1 的 Agent Alfred 将回归。这一次,他使用 smolagents 框架来驱动其内部工作。我们将一起探索这个框架背后的关键概念,看 Alfred 如何处理各种任务。趁着韦恩家族 🦇 不在,Alfred 正在韦恩庄园组织一场派对,他有很多事情要做。加入我们,一起见证他的旅程,看他如何用 smolagents 处理这些任务!

在本单元中,你将学习使用 smolagents 库构建 AI Agent。你创建的 Agent 将能够搜索数据、执行代码以及与网页互动。你还将学习如何组合多个 Agent 来创建更强大的系统。

Alfred the agent

目录

在本单元关于 smolagents 的内容中,我们涵盖:

1️⃣ 为何使用 smolagents

smolagents 是众多可用于应用开发的开源 Agent 框架之一。其他选择包括 LlamaIndexLangGraph,本课程的其他模块也会介绍它们。smolagents 提供了几个关键特性,可能使其非常适合特定的使用场景,但我们在选择框架时应始终考虑所有选项。我们将探讨使用 smolagents 的优缺点,帮助你根据项目需求做出明智的决定。

2️⃣ 代码 Agent (CodeAgents)

CodeAgentssmolagents 中的主要 Agent 类型。这些 Agent 生成 Python 代码来执行动作,而不是生成 JSON 或文本。本模块将探讨它们的用途、功能和工作原理,并提供实际例子来展示其能力。

3️⃣ 工具调用 Agent (ToolCallingAgents)

ToolCallingAgentssmolagents 支持的第二种 Agent 类型。与生成 Python 代码的 CodeAgents 不同,这些 Agent 依赖于 JSON/文本块,系统必须解析和解释这些块来执行动作。本模块将介绍它们的功能、与 CodeAgents 的主要区别,并提供一个例子来说明其用法。

4️⃣ 工具

正如我们在单元 1 中所见,工具是 LLM 可以在 Agent 系统中使用的函数,它们是 Agent 行为的基本构建块。本模块将介绍如何创建工具、它们的结构,以及使用 Tool 类或 @tool 装饰器的不同实现方法。你还将了解默认的工具箱、如何与社区分享工具,以及如何加载社区贡献的工具以在你的 Agent 中使用。

5️⃣ 检索 Agent

检索 Agent 允许模型访问知识库,从而可以从多个来源搜索、整合和检索信息。它们利用向量存储库进行高效检索,并实现 检索增强生成 (RAG) 模式。这些 Agent 在将网络搜索与自定义知识库集成,同时通过记忆系统维护对话上下文方面特别有用。本模块将探讨实现策略,包括用于稳健信息检索的备用机制。

6️⃣ 多 Agent 系统

有效地协调多个 Agent 对于构建强大的多 Agent 系统至关重要。通过将具有不同能力的 Agent 组合起来——例如,一个网络搜索 Agent 与一个代码执行 Agent——你可以创建更复杂的解决方案。本模块专注于设计、实现和管理多 Agent 系统,以最大限度地提高效率和可靠性。

7️⃣ 视觉和浏览器 Agent

视觉 Agent 通过整合 视觉-语言模型 (VLM) 扩展了传统 Agent 的能力,使其能够处理和解释视觉信息。本模块探讨了如何设计和集成由 VLM 驱动的 Agent,从而解锁基于图像的推理、视觉数据分析和多模态交互等高级功能。我们还将使用视觉 Agent 构建一个可以浏览网页并从中提取信息的浏览器 Agent。

资源

< > 在 GitHub 上更新