OlympHill
smolagents logo

smolagentsHugging Face's minimalist Python library for building code-first AI agents in a few lines

5.0 (4)

Overview

smolagents is an open-source agent framework from Hugging Face designed around simplicity and small surface area. Instead of orchestrating agents through verbose JSON tool calls, it lets agents express actions as Python code, which tends to be more expressive and reduces the number of LLM steps needed to complete a task. The library is model-agnostic, working with models hosted on the Hugging Face Hub, local inference servers, and major API providers like OpenAI and Anthropic. It ships with sandboxed execution options such as E2B and Docker so generated code can run safely, and it integrates with common tool ecosystems including Hub Spaces and LangChain tools. It is aimed at developers who want a transparent, hackable starting point for agent projects rather than a heavy, opinionated framework, making it well suited for prototyping, research, and lightweight production use cases.

Key features

  • CodeAgent that writes and executes Python to solve tasks
  • Support for Hugging Face, OpenAI, Anthropic, and local models
  • Sandboxed code execution with E2B and Docker backends
  • Tool integration with Hub, LangChain, and custom Python functions
  • Built-in ToolCallingAgent for traditional JSON-style tool use
  • Lightweight, minimal-dependency design

Pricing

Model
Free
Rating
5.0 / 5 (4)

Use cases

Build code-first AI agents quickly

Developers can create agents that solve tasks by writing and executing Python code, reducing the number of LLM steps compared to JSON tool-calling approaches.

Run agents with any LLM provider

Prototype agents using Hugging Face Hub models, local inference servers, or APIs like OpenAI and Anthropic without changing the framework.

Safely execute generated code

Use E2B or Docker sandbox backends to run agent-generated Python in isolated environments, mitigating security risks during automated task execution.

Integrate existing tool ecosystems

Combine custom Python functions with Hub Spaces and LangChain tools to extend agent capabilities while keeping a minimal, readable codebase.

Pros & Cons

Pros

  • Very small, readable codebase that is easy to extend
  • Code-based actions reduce steps and boost agent expressiveness
  • Works with many LLM providers and local models
  • Sandboxed execution via E2B or Docker for safer code running
  • Free and fully open source

Cons

  • Requires Python knowledge to use effectively
  • Fewer built-in integrations than larger agent frameworks
  • Code execution introduces security considerations to manage
  • Less suited for complex multi-agent orchestration out of the box

Reviews

5.0

Average from 4 ratings.

5
4
4
0
3
0
2
0
1
0

Sign in to leave a review.

Naomi Suzuki

Naomi Suzuki

Apr 15, 2026

Use it every day

Honestly didn't expect to like it this much. Tool integration with Hub, LangChain, and custom Python functions is exactly what I needed, and code-based actions reduce steps and boost agent expressiveness. I do wish requires Python knowledge to use effectively, but I reach for it almost every day now and it just clicks.

WC

Wei Chen

Dec 18, 2025

Does the job

Pretty happy overall. Tool integration with Hub, LangChain, and custom Python functions just works and very small, readable codebase that is easy to extend. Code execution introduces security considerations to manage can be annoying, but no dealbreakers — I'd recommend it to a friend without hesitating.

Jamal Carter

Jamal Carter

Nov 25, 2025

Does the job

Pretty happy overall. Sandboxed code execution with E2B and Docker backends just works and sandboxed execution via E2B or Docker for safer code running. but no dealbreakers — I'd recommend it to a friend without hesitating.

SG

Sanjay Gupta

Jul 11, 2025

Skeptical, then convinced

I went in skeptical — most tools in this space overpromise. It actually delivers on codeAgent that writes and executes Python to solve tasks, and code-based actions reduce steps and boost agent expressiveness caught me off guard. still, I'd recommend giving it a real trial.

Q&A

How strong are open models for agentic workflows?

We've created CodeAgent instances with some leading models, and compared them on this benchmark that gathers questions from a few different benchmarks to propose a varied blend of challenges. Find the benchmarking code here for more detail on the agentic setup used, and see a comparison of using LLMs code agents compared to vanilla (spoilers: code agents works better). This comparison shows that open-source models can now take on the best closed models!

Asked by Diego Fernández · Feb 16, 2026

How smol is this library?

We strived to keep abstractions to a strict minimum: the main code in agents.py has <1,000 lines of code. Still, we implement several types of agents: CodeAgent writes its actions as Python code snippets, and the more classic ToolCallingAgent leverages built-in tool calling methods. We also have multi-agent hierarchies, import from tool collections, remote code execution, vision models... By the way, why use a framework at all? Well, because a big part of this stuff is non-trivial. For instance, the code agent has to keep a consistent format for code throughout its system prompt, its parser, the execution. So our framework handles this complexity for you. But of course we still encourage you to hack into the source code and use only the bits that you need, to the exclusion of everything else!

Asked by Ludovic Girard · Nov 27, 2025

How do Code agents work?

Our CodeAgent works mostly like classical ReAct agents - the exception being that the LLM engine writes its actions as Python code snippets. Actions are now Python code snippets. Hence, tool calls will be performed as Python function calls. For instance, here is how the agent can perform web search over several websites in one single action: Writing actions as code snippets is demonstrated to work better than the current industry practice of letting the LLM output a dictionary of the tools it wants to call: uses 30% fewer steps (thus 30% fewer LLM calls) and reaches higher performance on difficult benchmarks. Head to our high-level intro to agents to learn more on that. Since code execution can be a serious security concern (arbitrary code execution!), you should run agent code in a sandbox. We support several options: E2B, Blaxel, Modal — managed cloud sandboxes, simplest to set up Docker — self-hosted container isolation The built-in LocalPythonExecutor is not a security sandbox. It applies some restrictions but can be bypassed and must not be used as a security boundary. Alongside CodeAgent, we also provide the standard ToolCallingAgent which writes actions as JSON/text blobs. You can pick whichever style best suits your use case.

Asked by Greta Nowak · Oct 31, 2025

Ask a question

AI Agents Frameworks alternatives