SmolAgents
定义
SmolAgents是一个用于构建和运行大语言模型智能体的开源Python库,由Hugging Face团队维护,采用Apache-2.0许可发布[4][2]。它把智能体的基本运行逻辑压缩到约1000行代码之内,主张把抽象层保持在接近原生代码的最薄形态,使开发者只需几行代码即可启动一个智能体[1]。
库中提供两类智能体:CodeAgent把模型给出的行动表达为Python代码并执行,ToolCallingAgent则沿用JSON或文本形式的工具调用方式,后者用于偏好传统范式的场景[1]。框架同时给出模型适配层与工具定义机制,把一个智能体拆成模型、智能体和可调用工具3个部分[5]。
原理
智能体的执行遵循ReAct循环,即推理、行动、观察三步往复。CodeAgent与ToolCallingAgent都继承自基类MultiStepAgent,每一步由大语言模型生成行动指令,框架执行后把结果作为观察写回记忆,循环直到产出最终答案或达到最大步数限制[4]。执行轨迹由不同类型步骤记录并保存在AgentMemory对象中,形成可供检查的日志[4]。
CodeAgent与常规智能体的差别在行动的表达形式。传统做法让模型输出包含工具名与参数的JSON字典,再由外部程序解析;CodeAgent则直接写出Python语句,把工具当作函数调用,因此函数嵌套、循环与条件判断等结构可以自然使用[3]。项目文档称这一做法相比JSON调用可减少约30%的步骤,也就是减少约30%的模型调用次数,并在困难基准上取得更好表现[2]。
工具在框架中是带结构化元数据的Python可调用对象,常用方式是用@tool装饰器修饰函数,装饰器会读取函数签名、类型注解与文档字符串,生成模型可读的描述和参数模式[4]。工具除内置的搜索、网页访问、语音转写等之外,还可从Hugging Face Hub加载社区工具、包装LangChain工具、连接MCP服务器,或把Hub上的Space当作工具调用[2][4]。
模型侧采用与厂商无关的设计,model参数接受把消息列表映射为响应的任意对象。库内提供InferenceClientModel、LiteLLMModel、TransformersModel、OpenAIServerModel等适配器,分别对应Hugging Face推理服务、LiteLLM覆盖的多家云服务、本地transformers流水线与OpenAI兼容端点[4][1]。由于模型生成的代码会在本机执行,框架提供本地受限解释器,并支持接入Docker、E2B、Modal、Blaxel及Pyodide等沙箱环境以隔离执行[1][2]。
发展历程
2025年1月初,Hugging Face发布smolagents并公开介绍其设计思路,定位为几行代码即可驱动智能体的简单库,同时说明它将逐步取代此前的transformers.agents模块[6][7]。早期版本聚焦CodeAgent这一代码型智能体,同时保留以JSON或文本描述行动的ToolCallingAgent,并通过E2B提供沙箱执行[8]。
此后版本沿易用性与可观测性两个方向扩展。1.5.0版本已支持把Hub上的工具加载为智能体能力[9]。2025年1月31日发布的1.7.0版本加入命令行入口smolagent与webagent,并引入智能体记忆机制,可用replay方法重放上一次运行[10]。到2026年3月,PyPI与官方文档的稳定版本为1.24.0,该版本文档把默认最大步数记为20,并明确区分CodeAgent与ToolCallingAgent的执行方式[5]。
社区与生态方面,微软的MLflow跟踪功能已与其集成,用于捕获智能体工作流的执行轨迹[11];Hugging Face的智能体课程也以该框架讲授代码型智能体的构建方法[3]。
应用
框架的典型用途是需要多步推理并连接外部工具的任务。官方示例以搜索工具配合模型,回答需要实时联网信息的问题,例如估算某段路程所需时间或查询天气[1][12]。工具也可由开发者自建,例如调用地图服务接口计算出行时间,再据此排出日程[6]。
在数据处理方向,代码型智能体可以直接调用数据处理库完成计算、筛选与可视化,因此被用于报表生成与数据分析类流程[13]。文本转SQL是另一个常见示例,智能体把自然语言问题翻译为查询语句并对数据库执行[14]。
框架还提供网页浏览智能体,通过命令行入口启动,可完成打开页面、进入栏目、读取商品信息一类操作[2]。多智能体方面,一个智能体可被包装成工具交由主智能体调度,形成层级委托结构,把检索、规划、编码、汇总等职责分开[14][15]。
局限
默认的本地解释器并非严密的隔离边界。研究人员指出,通过additional_authorized_imports放开的numpy、pandas、json等常用库本身具备文件读写或系统访问能力,若攻击者能影响提示词,就可能诱导智能体读写任意文件,进而导致远程代码执行[16]。公开漏洞记录显示,1.14.0版本的local_python_executor.py存在沙箱逃逸问题,可绕过受限执行环境,该问题在1.17.0版本中修复[17];此后另有涉及双下划线属性校验不完整的漏洞被登记,需要借助提示注入触发[18]。
能力边界方面,Hugging Face工程师在介绍框架时提到,若确定性的固定流程足以应对全部请求,直接编写代码比引入智能体更可靠,因为模型介入会带来不可预测的错误[7]。早期报道也指出该库面向结构简单的智能体,对多步与多智能体场景的适配有限。此外,框架的会话上下文管理较为基础,跨会话的上下文压缩、检索与质量监控等需要开发者自行实现[15]。
参见
-
Hugging Face —— 开发并维护该框架的人工智能平台。
-
大语言模型 —— 驱动智能体生成行动与代码的核心模型。
-
ReAct —— 智能体推理、行动、观察循环所依据的范式。
-
沙箱 —— 隔离执行模型生成代码的安全机制。
-
LangChain —— 其工具可被该框架包装调用的智能体开发框架。
参考资料
- smolagents · Hugging Face [引用日期2026-10-29]
- smolagents [引用日期2026-10-29]
- 构建使用代码的智能体 · Hugging Face [引用日期2026-10-29]
- smolagents [引用日期2026-10-29]
- smolagents Python Package Guide [引用日期2026-10-29]
- HuggingFace发布全新开源代码库smolagents:支持快速搭建Agent [引用日期2026-10-29]
- infoq.com 上的网页 [引用日期2026-10-29]
- 🤗 smolagents - a smol library to build great agents [引用日期2026-10-29]
- smolagents [引用日期2026-10-29]
- huggingface.co 上的网页 [引用日期2026-10-29]
- 跟踪 Smolagents - Azure Databricks - 跳至主要内容 跳到 Ask Learn 聊天体验 [引用日期2026-10-29]
- codemag.com 上的网页 [引用日期2026-10-29]
- Smolagents for Building Powerful AI Agents with Minimal Code [引用日期2026-10-29]
- smolagents [引用日期2026-10-29]
- smolagents [引用日期2026-10-29]
- fox-it.com 上的网页 [引用日期2026-10-29]
- PYSEC-2026-542 [引用日期2026-10-29]
- CVE-2025-9959 in smolagents [引用日期2026-10-29]