🐣 SmolAgents:小而美的Agent框架

2024年底,HuggingFace的一群工程师看着满屏复杂的Agent框架代码,突然问了一个灵魂问题:"我们真的需要3000行代码来做一个Agent吗?"于是SmolAgents诞生了——代码不到1000行,但能做其他框架能做的一切。有时候,少即是多。

HuggingFace 轻量级 代码生成

🎯 什么是 SmolAgents?

SmolAgents 是 HuggingFace 开源的极简Agent框架。它的核心代码不到1000行,却支持完整的Agent能力:工具调用、多步推理、代码执行。

一句话定义:SmolAgents = Agent框架的"口袋版"——小到可以装进口袋,但功能一个不少。

🧠 设计理念:Code over JSON

SmolAgents 最大的创新是抛弃了传统的 JSON 工具调用格式,让 Agent 直接写 Python 代码来调用工具。

传统方式 vs SmolAgents 方式

# 传统方式:JSON 工具调用
{
  "tool": "web_search",
  "parameters": {
    "query": "OpenClaw 最新功能"
  }
}

# SmolAgents 方式:直接写代码
web_search(query="OpenClaw 最新功能")

# 甚至可以组合多个工具
docs = web_search("OpenClaw documentation")
summary = text_summarizer(docs[0])
write_file("summary.txt", summary)

核心优势

⚡ OpenClaw 实战:借鉴 SmolAgents 思想

OpenClaw 的工具调用机制其实和 SmolAgents 的"代码即动作"理念有异曲同工之妙:

SmolAgents vs OpenClaw 对比

特性 SmolAgents OpenClaw
动作格式 Python 代码 自然语言 + Tool JSON
工具定义 @tool 装饰器 TOOL.md + functions
多步推理 自动代码生成 ReAct 循环
沙箱执行 E2B 等沙箱 本地 + 可选沙箱
模型支持 任何 LLM 多模型路由

实践:让OpenClaw Agent生成工具调用代码

#!/bin/bash
# smolagents-style.sh - SmolAgents风格的代码生成

TASK="搜索最近的AI新闻,总结成3个要点,保存到文件"

# 让Agent直接生成可执行的Python代码
openclaw sessions_spawn \
  --task "请生成Python代码来完成这个任务:$TASK

你可以使用以下工具函数:
- web_search(query) -> list[dict]: 搜索网页
- fetch_url(url) -> str: 获取网页内容
- summarize(text, n_points=3) -> str: 总结要点
- write_file(path, content): 写入文件

请生成可直接执行的Python代码,不需要解释。" \
  --agentId "code-generator" \
  --mode run

# 生成的代码示例:
# results = web_search('AI news 2025')
# content = fetch_url(results[0]['url'])
# summary = summarize(content, n_points=3)
# write_file('ai_news_summary.txt', summary)

🚀 SmolAgents 快速上手

# 安装
pip install smolagents

# 最简单的Agent
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel

agent = CodeAgent(
    tools=[DuckDuckGoSearchTool()],
    model=HfApiModel()
)

agent.run("搜索OpenClaw最新更新,总结新功能")

🎯 适用场景

🎪 妙趣观点

SmolAgents的出现让我想起了那个经典的程序员笑话:"我用100行代码写了一个功能,然后花了3天优化成10行。"有时候框架的"臃肿"不是为了功能,而是为了生态、为了兼容性、为了那些你可能永远用不到但别人离不开的功能。SmolAgents选择了另一条路——够用就好。这让我想起了OpenClaw的设计哲学:简单的工具调用,灵活的组合方式。也许最好的Agent框架,就是那个让你忘记框架存在的框架。

关键洞察:SmolAgents证明了一个重要趋势——Agent框架正在从"大而全"转向"小而美"。OpenClaw的轻量级设计也是这个方向的体现。未来我们可能不会用"框架"这个词,因为Agent能力会成为基础设施的一部分,像今天的HTTP库一样理所当然。

📚 相关阅读