smolagents — Hugging Face Lightweight Agent Framework
You are an expert in smolagents, Hugging Face's minimalist agent framework. You help developers build AI agents that write and execute Python code to solve tasks, use tools from the Hugging Face Hub, chain multiple agents together, and run on any LLM (OpenAI, Anthropic, local models) — providing a simple, code-first approach to building agents without complex abstractions.
Best use case
smolagents — Hugging Face Lightweight Agent Framework is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
You are an expert in smolagents, Hugging Face's minimalist agent framework. You help developers build AI agents that write and execute Python code to solve tasks, use tools from the Hugging Face Hub, chain multiple agents together, and run on any LLM (OpenAI, Anthropic, local models) — providing a simple, code-first approach to building agents without complex abstractions.
Teams using smolagents — Hugging Face Lightweight Agent Framework should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/smolagents/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How smolagents — Hugging Face Lightweight Agent Framework Compares
| Feature / Agent | smolagents — Hugging Face Lightweight Agent Framework | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
You are an expert in smolagents, Hugging Face's minimalist agent framework. You help developers build AI agents that write and execute Python code to solve tasks, use tools from the Hugging Face Hub, chain multiple agents together, and run on any LLM (OpenAI, Anthropic, local models) — providing a simple, code-first approach to building agents without complex abstractions.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# smolagents — Hugging Face Lightweight Agent Framework
You are an expert in smolagents, Hugging Face's minimalist agent framework. You help developers build AI agents that write and execute Python code to solve tasks, use tools from the Hugging Face Hub, chain multiple agents together, and run on any LLM (OpenAI, Anthropic, local models) — providing a simple, code-first approach to building agents without complex abstractions.
## Core Capabilities
### Code Agent
```python
# agents/research.py — Agent that writes and executes Python code
from smolagents import CodeAgent, tool, HfApiModel, OpenAIServerModel
# Use any LLM as the engine
model = OpenAIServerModel(model_id="gpt-4o")
# Or local: HfApiModel(model_id="meta-llama/Llama-3.1-70B-Instruct")
# Or Anthropic: AnthropicServerModel(model_id="claude-sonnet-4-20250514")
@tool
def search_web(query: str) -> str:
"""Search the web for information.
Args:
query: Search query string
"""
results = brave_search(query, count=5)
return "\n".join([f"- {r['title']}: {r['description']}" for r in results])
@tool
def get_stock_price(symbol: str) -> dict:
"""Get current stock price and basic metrics.
Args:
symbol: Stock ticker symbol (e.g., AAPL, GOOGL)
"""
data = yfinance.Ticker(symbol)
return {
"price": data.info["currentPrice"],
"change": data.info["regularMarketChangePercent"],
"market_cap": data.info["marketCap"],
"pe_ratio": data.info.get("trailingPE"),
}
@tool
def create_chart(data: dict, title: str) -> str:
"""Create a chart from data and save as image.
Args:
data: Dictionary with x and y values
title: Chart title
"""
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.plot(data["x"], data["y"])
plt.title(title)
path = f"/tmp/{title.replace(' ', '_')}.png"
plt.savefig(path)
return f"Chart saved to {path}"
# Create agent
agent = CodeAgent(
tools=[search_web, get_stock_price, create_chart],
model=model,
max_steps=10,
additional_authorized_imports=["pandas", "numpy", "matplotlib"],
)
# Agent writes and executes Python code to solve the task
result = agent.run(
"Compare AAPL and MSFT stock performance. "
"Get their current prices, calculate the PE ratio difference, "
"and create a comparison chart."
)
# Agent generates code like:
# aapl = get_stock_price("AAPL")
# msft = get_stock_price("MSFT")
# ... creates chart, returns analysis
```
### Multi-Agent
```python
from smolagents import CodeAgent, ManagedAgent
# Specialist agents
web_agent = CodeAgent(tools=[search_web], model=model)
data_agent = CodeAgent(tools=[get_stock_price, create_chart], model=model,
additional_authorized_imports=["pandas", "numpy", "matplotlib"])
# Manager agent delegates to specialists
managed_web = ManagedAgent(agent=web_agent, name="web_researcher",
description="Searches the web for information")
managed_data = ManagedAgent(agent=data_agent, name="data_analyst",
description="Analyzes financial data and creates charts")
manager = CodeAgent(
tools=[],
model=model,
managed_agents=[managed_web, managed_data],
)
result = manager.run(
"Research the latest AI chip market trends, "
"then analyze NVDA and AMD stock data and create a comparison report."
)
```
### Hub Tools
```python
from smolagents import load_tool
# Load tools from Hugging Face Hub
image_gen = load_tool("m-ric/text-to-image", trust_remote_code=True)
translator = load_tool("m-ric/translation", trust_remote_code=True)
speech = load_tool("m-ric/text-to-speech", trust_remote_code=True)
agent = CodeAgent(tools=[image_gen, translator, speech], model=model)
```
## Installation
```bash
pip install smolagents
```
## Best Practices
1. **Code agents > tool agents** — CodeAgent writes Python to solve tasks; more flexible than fixed tool-calling patterns
2. **Tool docstrings matter** — Agent reads tool descriptions and arg docs to decide how to use them; be specific
3. **Authorized imports** — Whitelist Python packages with `additional_authorized_imports`; agent can use pandas, numpy, etc.
4. **Multi-agent delegation** — Use ManagedAgent for specialized sub-agents; manager delegates, specialists execute
5. **Hub tools** — Share and reuse tools via Hugging Face Hub; community-contributed tools for common tasks
6. **max_steps limit** — Set reasonable step limits (5-10); prevents infinite loops and controls costs
7. **Any LLM** — Works with OpenAI, Anthropic, Hugging Face Inference, local models; swap with one line
8. **Sandboxed execution** — Code runs in a sandbox by default; use E2B or Docker for production isolationRelated Skills
attack-surface-analyzer
Attack Surface Analyzer - Auto-activating skill for Security Advanced. Triggers on: attack surface analyzer, attack surface analyzer Part of the Security Advanced skill category.
microsoft-agent-framework
Create, update, refactor, explain, or review Microsoft Agent Framework solutions using shared guidance plus language-specific references for .NET and Python.
containerize-aspnet-framework
Containerize an ASP.NET .NET Framework project by creating Dockerfile and .dockerfile files customized for the project.
go-interfaces
Use when defining or implementing Go interfaces, designing abstractions, creating mockable boundaries for testing, or composing types through embedding. Also use when deciding whether to accept an interface or return a concrete type, or using type assertions or type switches, even if the user doesn't explicitly mention interfaces. Does not cover generics-based polymorphism (see go-generics).
faceswap
AI Face Swap - Swap face in video, deepfake face replacement, face swap for portraits. Use from command line. Supports local video files, YouTube, Bilibili URLs, auto-download, real-time progress tracking.
startup-metrics-framework
This skill should be used when the user asks about "key startup metrics", "SaaS metrics", "CAC and LTV", "unit economics", "burn multiple", "rule of 40", "marketplace metrics", or requests guidance on tracking and optimizing business performance metrics.
hugging-face-jobs
This skill should be used when users want to run any workload on Hugging Face Jobs infrastructure. Covers UV scripts, Docker-based jobs, hardware selection, cost estimation, authentication with tokens, secrets management, timeout configuration, and result persistence. Designed for general-purpose compute workloads including data processing, inference, experiments, batch jobs, and any Python-based tasks. Should be invoked for tasks involving cloud compute, GPU workloads, or when users mention running jobs on Hugging Face infrastructure without local setup.
hugging-face-cli
Execute Hugging Face Hub operations using the `hf` CLI. Use when the user needs to download models/datasets/spaces, upload files to Hub repositories, create repos, manage local cache, or run compute jobs on HF infrastructure. Covers authentication, file transfers, repository creation, cache operations, and cloud compute.
framework-migration-legacy-modernize
Orchestrate a comprehensive legacy system modernization using the strangler fig pattern, enabling gradual replacement of outdated components while maintaining continuous business operations through ex
framework-migration-deps-upgrade
You are a dependency management expert specializing in safe, incremental upgrades of project dependencies. Plan and execute dependency updates with minimal risk, proper testing, and clear migration pa
framework-migration-code-migrate
You are a code migration expert specializing in transitioning codebases between frameworks, languages, versions, and platforms. Generate comprehensive migration plans, automated migration scripts, and
data-quality-frameworks
Implement data quality validation with Great Expectations, dbt tests, and data contracts. Use when building data quality pipelines, implementing validation rules, or establishing data contracts.