1.简介
高效的人工智能系统需要为大语言模型提供某种访问真实世界的方式,例如,获取外部信息的搜索工具,或者为了完成任务对某些程序采取行动的能力。LLM应该具备代理(agent)的能力,代理是LLM通往外界的门户,具备相应能力的系统也被称为agent。
近日,Huggingface开放了最新的agent框架,smolagents,旨在简化智能体的实现,只需要三行代码便可快速生成一个具备搜索能力的简易agent,如下图所示:
图1 agent示例
smolagents具备以下特性:
- 简洁性:agent的逻辑被精简到大约千行代码。
- 多种agent支持: 除了经典的ToolCallingAgent与先进的Multi-Agent能力,smolagents最核心的特性是CodeAgent,该实现允许智能体通过生成代码来执行动作。
- 广泛的LLM支持:smolagents支持Huggingface上托管的大模型,并基于LiteLLM支持OpenAI、Anthropic等多个大模型供应商。
2.CodeAgent
(1)为什么选择CodeAgent?
CodeAgent是smolagents的核心特性,以下将从智能体执行的角度讨论为什么CodeAgent是优异的选择。智能体可按照代理级别进行大致分类,如下表所示:
代理级别 |
特点 |
形式 |
示例模式 |
★☆☆ |
LLM 输出决定基本工作流程 |
Router |
|
★★☆ |
LLM 输出决定函数执行 |
Tool call |
|
★★★ |
LLM 输出控制工作流程与迭代 |
Multi-step Agent |
|
★★★ |
一个智能体工作流可以启动另一个智能体工作流 |
Multi-Agent |
|