🗒️smolagents:轻量级Python库助力多Agent协作
00 分钟
2025-1-9
2025-1-9
type
status
date
slug
summary
tags
category
icon
password
Language

介绍

smolagents 是一个轻量级的 Python 库,旨在通过编写 Python 代码来调用工具并协调多个 Agent 的协作。它简化了多 Agent 系统的开发流程,使开发者能够快速构建智能任务处理系统。无论是自然语言处理、数据检索还是复杂任务调度,smolagents 都能提供灵活且高效的解决方案。

smolagents的优势

  • 简化复杂行为的实现:对于复杂行为,如工具调用和多步Agent,手动编写代码可能较为繁琐且难以管理。smolagents提供了一些基本的构建模块,帮助将LLM、工具列表、解析器、系统提示和内存等元素紧密耦合,构建出功能完善的Agent.
  • 提供必要的组件:包括LLM作为系统引擎、可访问的工具列表、从LLM输出中提取工具调用的解析器、与解析器同步的系统提示以及用于存储记忆的内存等.
  • 支持错误日志记录和重试机制:由于LLM可能会犯错,smolagents还提供了错误日志记录和重试机制,以提高系统的鲁棒性.

Code Agents

  • 代码格式的优势:与JSON等格式相比,使用代码格式编写Agent的动作具有更好的可组合性、对象管理能力、通用性和在LLM训练数据中的代表性。代码是专门设计用来表达计算机执行的动作的,因此能够更自然、更有效地实现复杂的Agent行为.
  • 相关研究支持:多篇研究论文表明,让LLM在代码中调用工具比在JSON等格式中调用工具效果更好,因为代码语言本身就是表达计算机动作的最佳方式.

使用指南

1. 创建虚拟环境

首先,我们需要创建一个独立的 Python 虚拟环境,以避免依赖冲突。推荐使用 conda 来管理环境。

2. 激活虚拟环境

创建虚拟环境后,使用以下命令激活环境:

3. 安装 smolagents

在激活的虚拟环境中,安装 smolagents 及其依赖项。假设你已经有一个 requirements.txt 文件,可以通过以下命令安装:
如果还没有 requirements.txt 文件,可以直接安装 smolagents

运行示1. 创建 Demo 脚本

接下来,我们创建一个简单的 Python 脚本来演示 smolagents 的基本用法。创建一个名为 demo.py 的文件,内容如下:

2. 设置 API 密钥例 Demo

在运行脚本之前,确保你已经设置了 OpenAI 的 API 密钥。可以通过以下命令设置环境变量:
sk-xxx 替换为你自己的 OpenAI API 密钥。

3. 运行脚本

最后,运行 demo.py 脚本:

4. 运行结果

notion image

过程分析

  1. 问题输入:脚本开始时,输入了一个问题,询问一只豹子以全速跑过长城需要多少秒。
  1. 正则表达式解析:尝试解析输入的代码块,但由于格式不符合预期的正则表达式模式,导致多次出现 ValueError 错误。
  1. 网络搜索
  • 长城长度查询:脚本执行了一次网络搜索,查找长城的长度,并从多个来源获取了相关信息。
  • 猎豹速度查询:随后,脚本进行了另一次网络搜索,查找猎豹的全速速度,并获取了相关数据。
  1. 数据处理与计算
      • 使用获取到的长城长度和猎豹速度,计算猎豹以全速跑过长城所需的时间。
  • 将计算结果从小时转换为秒。
  1. 结果输出:最终,脚本输出了计算出的时间结果,以秒为单位。

评论