smolagents
Hugging Face 出品,用几行代码跑起来的「用代码思考」智能体库
README 明确文档化了通过 Blaxel/E2B/Modal/Docker 等沙箱执行模型生成代码的安全实践,这是本次评审中少数有具体、可核查安全设计描述的项目;但未做隔离环境的实际验证。
核心逻辑控制在约 1000 行代码内(README 自述),代码量小有利于审查,但未做多任务复测。
定位为「用代码而非纯文本调用工具」的轻量级智能体库,更适合有一定工程能力的开发者,而非零代码用户。
文档站点(huggingface.co/docs/smolagents)结构完整,示例代码简洁清晰,Hub 集成便于分享/复用智能体。
2.8 万+ Star,模型无关(model-agnostic)且模态无关(支持文本/视觉/视频/音频),生态集成度高,但产出效果取决于具体任务和所选模型。
评审仅基于公开 README 与仓库元数据,未做独立安装或沙箱执行复测。
- CodeAgent 会执行模型生成的代码,在处理不可信输入或对外暴露的场景下,必须使用文档中提到的沙箱方案(Blaxel/E2B/Modal/Docker),不要在无隔离的本地环境直接跑
- 面向有 Python 工程背景的开发者,零代码用户上手门槛相对更高
- 本评审为静态评审,未做隔离环境的动态验证
它能做什么 & 适用场景
smolagents 是 Hugging Face 推出的轻量级智能体库,核心特点是让 Agent 用代码而不是纯文本来表达其行动(CodeAgent),核心逻辑控制在约 1000 行代码内。它模型无关,支持本地 transformers/ollama 模型或 OpenAI、Anthropic 等任意供应商;也支持文本、视觉、视频、音频等多种模态输入,并可通过 Blaxel、E2B、Modal 或 Docker 等沙箱安全执行模型生成的代码。
让开发者用几行 Python 代码定义一个 Agent,赋予它工具(如网页搜索)并绑定一个模型;Agent 以「编写代码」的方式规划和执行动作,而不是通过文本描述再解析,配合沙箱环境执行以降低直接运行任意代码的风险;支持从 MCP Server、LangChain 或 Hugging Face Space 引入现成工具。
- 需要一个轻量、代码量小、便于审查的智能体框架,而不是重量级平台
- 希望复用 Hugging Face Hub 上已有的工具或直接分享自己构建的 Agent
- 涉及视觉/视频/音频等多模态输入的智能体场景
- 对代码执行安全有要求,需要沙箱隔离运行模型生成代码的场景
优缺点一览
- 核心代码量小(约 1000 行),易于审查和理解,不是黑盒平台
- 官方文档明确说明了沙箱执行方案(Blaxel/E2B/Modal/Docker),安全设计透明度在同类项目中较突出
- 模型无关、模态无关,且能直接复用 MCP Server、LangChain、Hugging Face Space 的现成工具
- 背靠 Hugging Face,与 Hub 生态集成紧密,便于分享和复用
- 面向有 Python 工程背景的开发者,没有面向零代码用户的图形界面
- CodeAgent 本质上是执行模型生成的代码,若不使用文档建议的沙箱方案,本地直接运行存在风险
- 本次评审未对具体沙箱配置做实际运行验证
如何安装
pip install "smolagents[toolkit]" 安装默认工具集;也可以按需安装不含额外工具的精简版本,具体见官方文档。
如何使用
用几行代码即可运行:
from smolagents import CodeAgent, WebSearchTool, InferenceClientModel
model = InferenceClientModel()
agent = CodeAgent(tools=[WebSearchTool()], model=model, stream_outputs=True)
agent.run("你的任务描述")还可以用 agent.push_to_hub(...) 把构建好的 Agent 分享到 Hugging Face Hub。
对比同类
与 CrewAI、LangGraph 等偏重「流程编排」的多智能体框架不同,smolagents 更专注于单个智能体本身如何执行动作——用代码而不是文本 JSON 来表达工具调用,实现上更接近轻量库而非重量级平台;如果你需要的是编排多个协作智能体,CrewAI/LangGraph 更合适;如果你需要一个简单、可审查、模型无关的单体智能体基座,smolagents 更直接。