smolagents est une bibliothèque d'agents légère de Hugging Face. Son attrait est concret : la logique centrale tient en environ mille lignes de code, et au lieu de remplir des paramètres JSON pour appeler des outils, ses agents écrivent du code Python pour agir. Pour qui a été rebuté par les frameworks lourds et leurs couches d'abstraction, cette conception petite et directe est l'argument principal.
Dépôt officiel
Le dépôt se trouve sur la plateforme GitHub, organisation huggingface, projet smolagents, licence Apache-2.0. Deux types d'agents sont proposés : CodeAgent écrit ses actions en code Python, adapté aux tâches exigeant boucles, conditions et réutilisation de variables ; ToolCallingAgent utilise les appels d'outils JSON classiques pour les flux simples. La bibliothèque est indépendante du modèle : modèles locaux ou nombreux modèles cloud, par exemple via LiteLLM.
Où le coût de déploiement est vraiment bas
En local, c'est un simple paquet Python ; un exemple minimal n'exige ni base de données, ni file d'attente, ni tableau de bord au préalable. Le coût d'apprentissage porte surtout sur l'idée d'action en code. Le vrai coût est l'environnement d'exécution : faire tourner du code généré par un modèle directement sur sa machine est risqué. Les exécutions en bac à sable via E2B, Docker, Modal ou Blaxel sont officiellement prises en charge, et tout déploiement sérieux doit budgéter le bac à sable au lieu de désactiver l'isolation par commodité.
Pour qui, et les vrais pièges
smolagents convient aux développeurs qui veulent prototyper vite, lire et modifier le code source, ou dont la logique de tâche est trop complexe pour des appels JSON. Les pièges sont réels : d'abord, l'exécution de code exige plus du modèle ; les modèles faibles produisent du code qui échoue en cours de route, et le débogage consiste à lire des traces de code. Ensuite, l'écosystème et les intégrations prêtes à l'emploi sont plus minces que chez les anciens grands frameworks, les outils de niche demandent souvent un emballage maison. Enfin, léger signifie que contrôle des droits, réessais et observabilité sont limités par défaut et doivent être ajoutés. Pour un flux fixe de questions-réponses en quelques étapes, l'action en code n'apporte rien, et une approche plus simple est plus stable.