智能体课程文档
为何使用 smolagents
并获得增强的文档体验
开始使用
为何使用 smolagents
在本模块中,我们将探讨使用 smolagents 的优缺点,帮助您明智地决定它是否是适合您需求的框架。
什么是 smolagents?
smolagents
是一个简单而强大的用于构建 AI Agent 的框架。它为大语言模型 (LLM) 提供了与现实世界互动的 自主性,例如搜索或生成图像。
正如我们在第一单元中学到的,AI Agent 是使用 LLM 根据 “观察” 来生成 “思考”,从而执行 “动作” 的程序。让我们来探讨一下这在 smolagents 中是如何实现的。
smolagents 的主要优势
- 简洁性: 最小化的代码复杂度和抽象,使框架易于理解、采用和扩展。
- 灵活的 LLM 支持: 通过与 Hugging Face 工具和外部 API 集成,可与任何 LLM 配合使用。
- 代码优先的方法: 对直接用代码编写动作的 Code Agent 提供一流支持,无需解析并简化了工具调用。
- HF Hub 集成: 与 Hugging Face Hub 无缝集成,允许将 Gradio Spaces 用作工具。
何时使用 smolagents?
考虑到这些优势,我们应该在什么时候选择 smolagents 而不是其他框架呢?
smolagents 是以下情况的理想选择
- 您需要一个 轻量级且极简的解决方案。
- 您想 快速进行实验,而不需要复杂的配置。
- 您的 应用程序逻辑简单明了。
代码动作 vs. JSON 动作
与其他 Agent 用 JSON 编写动作的框架不同,smolagents
专注于用代码进行工具调用,从而简化了执行过程。这是因为不需要解析 JSON 来构建调用工具的代码:输出可以直接执行。
下图说明了这种差异
要回顾代码动作与 JSON 动作之间的区别,您可以重新访问 第一单元中的“动作”部分。
smolagents 中的 Agent 类型
smolagents
中的 Agent 以 多步 Agent 的形式运作。
每个 MultiStepAgent
执行
- 一次思考
- 一次工具调用和执行
除了使用 CodeAgent 作为主要 Agent 类型外,smolagents 还支持 ToolCallingAgent,后者用 JSON 编写工具调用。
我们将在接下来的部分中更详细地探讨每种 Agent 类型。
@tool
装饰器或 Tool
类来定义。smolagents 中的模型集成
smolagents
支持灵活的 LLM 集成,允许您使用任何满足 特定标准 的可调用模型。该框架提供了几个预定义的类来简化模型连接
- TransformersModel: 实现本地
transformers
流水线以实现无缝集成。 - InferenceClientModel: 通过 Hugging Face 的基础设施 或越来越多的 第三方推理提供商 支持无服务器推理调用。
- LiteLLMModel: 利用 LiteLLM 实现轻量级模型交互。
- OpenAIServerModel: 连接到任何提供 OpenAI API 接口的服务。
- AzureOpenAIServerModel: 支持与任何 Azure OpenAI 部署集成。
这种灵活性确保开发人员可以选择最适合其特定用例的模型和服务,并便于进行实验。
现在我们了解了为何以及何时使用 smolagents,让我们更深入地探索这个强大的库吧!
资源
- smolagents 博客 - smolagents 和代码交互简介