开发与工程 agent-librarycode-agentpythonhuggingfacelightweight

smolagents

Hugging Face 出品,用几行代码跑起来的「用代码思考」智能体库

FollowAgents 评估 · FARS-2.0
谨慎使用
69/ 100 五分制 3.5 / 5
信任安全16 / 25 · 3.2/5

README 明确文档化了通过 Blaxel/E2B/Modal/Docker 等沙箱执行模型生成代码的安全实践,这是本次评审中少数有具体、可核查安全设计描述的项目;但未做隔离环境的实际验证。

可靠稳定13 / 20 · 3.3/5

核心逻辑控制在约 1000 行代码内(README 自述),代码量小有利于审查,但未做多任务复测。

适用触发11 / 15 · 3.7/5

定位为「用代码而非纯文本调用工具」的轻量级智能体库,更适合有一定工程能力的开发者,而非零代码用户。

规范维护13 / 15 · 4.3/5

文档站点(huggingface.co/docs/smolagents)结构完整,示例代码简洁清晰,Hub 集成便于分享/复用智能体。

有效结果11 / 15 · 3.7/5

2.8 万+ Star,模型无关(model-agnostic)且模态无关(支持文本/视觉/视频/音频),生态集成度高,但产出效果取决于具体任务和所选模型。

证据核验5 / 10 · 2.5/5

评审仅基于公开 README 与仓库元数据,未做独立安装或沙箱执行复测。

证据充分度: 评估于 2026年7月24日 审查版本 e3a5b8994b30
使用前请注意
  • CodeAgent 会执行模型生成的代码,在处理不可信输入或对外暴露的场景下,必须使用文档中提到的沙箱方案(Blaxel/E2B/Modal/Docker),不要在无隔离的本地环境直接跑
  • 面向有 Python 工程背景的开发者,零代码用户上手门槛相对更高
  • 本评审为静态评审,未做隔离环境的动态验证
评估证据 [1][2]
查看完整评分方法 →

它能做什么 & 适用场景

smolagents 是 Hugging Face 推出的轻量级智能体库,核心特点是让 Agent 用代码而不是纯文本来表达其行动(CodeAgent),核心逻辑控制在约 1000 行代码内。它模型无关,支持本地 transformers/ollama 模型或 OpenAI、Anthropic 等任意供应商;也支持文本、视觉、视频、音频等多种模态输入,并可通过 Blaxel、E2B、Modal 或 Docker 等沙箱安全执行模型生成的代码。

让开发者用几行 Python 代码定义一个 Agent,赋予它工具(如网页搜索)并绑定一个模型;Agent 以「编写代码」的方式规划和执行动作,而不是通过文本描述再解析,配合沙箱环境执行以降低直接运行任意代码的风险;支持从 MCP Server、LangChain 或 Hugging Face Space 引入现成工具。

  1. 需要一个轻量、代码量小、便于审查的智能体框架,而不是重量级平台
  2. 希望复用 Hugging Face Hub 上已有的工具或直接分享自己构建的 Agent
  3. 涉及视觉/视频/音频等多模态输入的智能体场景
  4. 对代码执行安全有要求,需要沙箱隔离运行模型生成代码的场景

优缺点一览

优点
  • 核心代码量小(约 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 更直接。

常见问题

「用代码思考」具体是什么意思?
指 Agent 把每一步行动表达为可执行的代码片段,而不是先输出文本再解析成工具调用,这样更贴近开发者写程序的方式,也更容易调试。
支持哪些模型?
模型无关,可以用本地 transformers/ollama 模型,也可以通过 InferenceClientModel 接入 Hub 上众多推理供应商,或直接对接 OpenAI、Anthropic 等 API。
执行模型生成的代码安全吗?
官方建议在 Blaxel、E2B、Modal 或 Docker 等沙箱环境中执行,避免在不隔离的本地环境直接运行不可信代码。

相关 Agents