smolagent框架

什么是 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 是以下情况的理想选择

  • 您需要一个 轻量级且极简的解决方案。
  • 您想 快速进行实验,而不需要复杂的配置。
  • 您的 应用程序逻辑简单明了。

构建使用代码的 Agent

代码 Agent 是 smolagents 中的默认 Agent 类型。它们生成 Python 工具调用来执行动作,从而实现高效、富有表现力且准确的动作表示。

为何选择代码 Agent?

在多步 Agent 流程中,LLM 编写并执行动作,通常涉及外部工具调用。传统方法使用 JSON 格式指定工具名称和参数(作为字符串),系统必须解析这些信息才能确定执行哪个工具。

然而,研究表明,直接使用代码能让工具调用型 LLM 更有效地工作。

用代码而非 JSON 编写动作有以下几个关键优势:

  • 可组合性:轻松组合和重用动作
  • 对象管理:直接处理复杂结构,如图像
  • 通用性:能够表达任何计算上可能的任务
  • 对 LLM 更自然:高质量的代码已经存在于 LLM 的训练数据中

代码 Agent 如何工作?

上图展示了 CodeAgent.run() 的工作方式,它遵循了我们在第一单元中提到的 ReAct 框架。smolagents 中 Agent 的主要抽象是 MultiStepAgent,它是核心构建块。CodeAgent 是一种特殊的 MultiStepAgent,我们将在下面的例子中看到。

一个 CodeAgent 通过一系列步骤的循环来执行动作,现有的变量和知识被整合到 Agent 的上下文中,并保存在执行日志中。

  1. 系统提示存储在 SystemPromptStep 中,用户查询则记录在 TaskStep 中。

  2. 然后,执行以下 while 循环:

    2.1 方法 agent.write_memory_to_messages() 将 Agent 的日志写入一个 LLM 可读的聊天消息列表。

    2.2 这些消息被发送给一个 Model,该模型生成一个补全。

    2.3 解析补全以提取动作,在我们的例子中,由于我们使用的是 CodeAgent,这个动作应该是一个代码片段。

    2.4 执行该动作。

    2.5 结果被记录到内存中的一个 ActionStep 里。

相关推荐
代码山河7 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
释厄6237 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
小嘉丶学长11 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
小李不想当小白12 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
adinnet202615 小时前
电商客服对话知识库的自学习闭环与质量演进机制
学习
lazy H16 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
试剂界的爱马仕17 小时前
α-Cyano-4-hydroxycinnamic acid(CHCA)用作 MALDI-TOF 基质的配制与使用
大数据·人工智能·深度学习·学习
小向是个Der18 小时前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
学网安的肆伍18 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
海绵宝宝转agent18 小时前
Leetcode二叉树算法个人理解
笔记·学习·算法·leetcode·深度优先