smolagents:轻量级Python库助力多Agent协作

smolagents:轻量级Python库助力多Agent协作

介绍

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 来管理环境。

conda create -n smolagents_demo python=3.11

2. 激活虚拟环境

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

conda activate smolagents_demo

3. 安装 smolagents

在激活的虚拟环境中,安装 smolagents 及其依赖项。

pip install smolagents

创建 Demo 脚本

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

from smolagents import CodeAgent, DuckDuckGoSearchTool, LiteLLMModel

# 初始化模型,使用 GPT-4
model = LiteLLMModel(model_id="gpt-4o")

# 创建 Agent,并添加 DuckDuckGo 搜索工具
agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=model)

# 运行 Agent,提出一个问题
agent.run("一只猎豹以全速跑过长城需要多少秒?")

设置 API 密钥例 Demo

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

export OPENAI_API_KEY=sk-xxx

sk-xxx 替换为你自己的 OpenAI API 密钥。

运行脚本

最后,运行 demo.py 脚本:

python demo.py

运行结果

image-20250108195628404

过程分析

  1. 问题输入:脚本开始时,输入了一个问题,询问一只豹子以全速跑过长城需要多少秒。

  2. 正则表达式解析:尝试解析输入的代码块,但由于格式不符合预期的正则表达式模式,导致多次出现 ValueError 错误。

  3. 网络搜索

  • 长城长度查询:脚本执行了一次网络搜索,查找长城的长度,并从多个来源获取了相关信息。

  • 猎豹速度查询:随后,脚本进行了另一次网络搜索,查找猎豹的全速速度,并获取了相关数据。

  1. 数据处理与计算

    • 使用获取到的长城长度和猎豹速度,计算猎豹以全速跑过长城所需的时间。

    • 将计算结果从小时转换为秒。

  2. 结果输出:最终,脚本输出了计算出的时间结果,以秒为单位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值