开发与工程 agent-librarycode-agentpythonhuggingfacelightweight

smolagents

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

FollowAgents 评估 · FARS-2.1
不推荐
42/ 100 五分制 2.1 / 5
1 2 3 4 5 6
1信任安全7 / 29 · 1.2/5

证据显示:README 明确警告 LocalPythonExecutor 不是安全边界,并推荐使用沙箱(E2B、Docker 等),这体现了对最小权限的考虑,但未提供默认的权限限制或用户确认机制。数据流方面,README 描述了代码执行流程,但未详细说明数据如何被处理或传输。敏感数据处理方面,SECURITY.md 提到凭据处理,但未提供具体措施。依赖安全方面,pyproject.toml 中固定了部分依赖版本,并提及 CVE-2023-4863 的修复,但未全面审计。外部影响方面,README 提到代码执行可能产生外部影响,但未提供回滚机制。来源归属方面,README 和 CONTRIBUTING.md 提供了作者信息,但发布者身份未验证。扣分原因:缺少用户确认、回滚机制,数据流和敏感数据处理细节不足。

2可靠稳定5 / 14 · 1.8/5

证据显示:README 和 CONTRIBUTING.md 提供了清晰的安装和测试说明,但未提供失败消息的具体示例。依赖可用性方面,pyproject.toml 列出了依赖,但未提供版本兼容性矩阵。自一致性方面,文档描述与代码结构基本一致,但未提供详细的错误处理文档。扣分原因:失败消息和依赖可用性信息不足。

3适用触发10 / 18 · 2.8/5

证据显示:README 提供了多种使用场景(如 CLI、不同模型提供商),并说明了能力边界(如 LocalPythonExecutor 不是安全边界)。触发精度方面,文档描述了 CodeAgent 和 ToolCallingAgent 的区别,但未提供详细的触发条件。环境适配方面,支持多种部署环境(Docker、E2B 等),但未提供详细的配置指南。扣分原因:触发精度描述不够精确。

4规范维护10 / 18 · 2.8/5

证据显示:信息架构清晰,README 提供了快速入门、CLI 使用、安全说明等。安装说明详细,提供了 pip 和 uv 的安装命令。命名稳定性方面,版本号在 pyproject.toml 中定义,但未提供变更日志。示例和 FAQ 方面,README 提供了多个示例,但未提供 FAQ。已知限制方面,README 明确说明了 LocalPythonExecutor 的限制。许可证为 Apache-2.0,版本管理有版本号但无变更日志。维护责任方面,CONTRIBUTING.md 说明了维护流程。扣分原因:缺少变更日志和 FAQ。

5有效结果7 / 13 · 2.7/5

证据显示:输出可用性方面,README 提供了清晰的输出示例(如 CLI 输出)。边际价值方面,文档强调了代码代理的优势(如减少步骤)。成本效益方面,未提供性能基准或成本分析。扣分原因:成本效益信息不足。

6证据核验3 / 8 · 1.9/5

证据显示:README 中的声明(如代码代理性能)引用了论文,但未提供具体数据。跨来源验证方面,文档引用了外部资源(如论文),但未提供独立验证。事实与推断分离方面,文档区分了事实(如代码行数)和推断(如性能优势),但不够明确。扣分原因:声明缺乏具体数据支持,跨来源验证不足。

证据充分度: 评估于 2026年8月9日 审查版本 e3a5b8994b30
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:执行前用户确认、回滚或恢复路径
使用前请注意
  • 发布者身份未验证,应视为未知,不要基于品牌信任。
  • LocalPythonExecutor 不是安全边界,切勿用于运行不受信任的代码。
  • 缺少用户确认和回滚机制,执行代码前应确保有适当的审批流程。
  • 依赖版本固定但未提供完整的安全审计,使用前应检查依赖漏洞。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

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. 对代码执行安全有要求,需要沙箱隔离运行模型生成代码的场景

这个 Agent 有哪些优点和局限?

优点
  • 核心代码量小(约 1000 行),易于审查和理解,不是黑盒平台
  • 官方文档明确说明了沙箱执行方案(Blaxel/E2B/Modal/Docker),安全设计透明度在同类项目中较突出
  • 模型无关、模态无关,且能直接复用 MCP Server、LangChain、Hugging Face Space 的现成工具
  • 背靠 Hugging Face,与 Hub 生态集成紧密,便于分享和复用
局限
  • 面向有 Python 工程背景的开发者,没有面向零代码用户的图形界面
  • CodeAgent 本质上是执行模型生成的代码,若不使用文档建议的沙箱方案,本地直接运行存在风险
  • 本次评审未对具体沙箱配置做实际运行验证

如何安装或部署这个 Agent?

pip install "smolagents[toolkit]" 安装默认工具集;也可以按需安装不含额外工具的精简版本,具体见官方文档。

如何使用这个 Agent?

用几行代码即可运行:

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。

这个 Agent 与同类方案有什么区别?

与 CrewAI、LangGraph 等偏重「流程编排」的多智能体框架不同,smolagents 更专注于单个智能体本身如何执行动作——用代码而不是文本 JSON 来表达工具调用,实现上更接近轻量库而非重量级平台;如果你需要的是编排多个协作智能体,CrewAI/LangGraph 更合适;如果你需要一个简单、可审查、模型无关的单体智能体基座,smolagents 更直接。

常见问题

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

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents