SmolAgents

义项:轻量级智能体框架
SmolAgents

SmolAgents(smolagents)是Hugging Face开发并开源的轻量级智能体框架,以Python库形式发布,核心智能体逻辑约1000行代码[1][2]。它的主要特点是让大语言模型把行动写成可执行的Python代码片段,而不是输出JSON格式的工具调用,这种以CodeAgent为代表的范式被称为「代码即行动」[3]。框架对模型和工具保持开放,可接入多种推理后端,并支持在沙箱中执行模型生成的代码[2]。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

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 —— 其工具可被该框架包装调用的智能体开发框架。

参考资料

  1. smolagents · Hugging Face [引用日期2026-10-29]
  2. smolagents [引用日期2026-10-29]
  3. 构建使用代码的智能体 · Hugging Face [引用日期2026-10-29]
  4. smolagents [引用日期2026-10-29]
  5. smolagents Python Package Guide [引用日期2026-10-29]
  6. HuggingFace发布全新开源代码库smolagents:支持快速搭建Agent [引用日期2026-10-29]
  7. infoq.com 上的网页 [引用日期2026-10-29]
  8. 🤗 smolagents - a smol library to build great agents [引用日期2026-10-29]
  9. smolagents [引用日期2026-10-29]
  10. huggingface.co 上的网页 [引用日期2026-10-29]
  11. 跟踪 Smolagents - Azure Databricks - 跳至主要内容 跳到 Ask Learn 聊天体验 [引用日期2026-10-29]
  12. codemag.com 上的网页 [引用日期2026-10-29]
  13. Smolagents for Building Powerful AI Agents with Minimal Code [引用日期2026-10-29]
  14. smolagents [引用日期2026-10-29]
  15. smolagents [引用日期2026-10-29]
  16. fox-it.com 上的网页 [引用日期2026-10-29]
  17. PYSEC-2026-542 [引用日期2026-10-29]
  18. CVE-2025-9959 in smolagents [引用日期2026-10-29]
词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:30:22Z

历史版本

本条目引用的词条
Hugging Face 大语言模型 ReAct 沙箱 LangChain