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