smolagents : Bibliothèque Légère pour Agents IA Pensant en Code

smolagents

4 | 26 | 0
Type:
Projets Open Source
Dernière mise à jour:
2025/10/03
Description:
Smolagents est une bibliothèque Python minimaliste pour créer des agents IA qui raisonnent et agissent via du code. Elle prend en charge les modèles LLM agnostiques, les sandboxes sécurisées et une intégration fluide avec Hugging Face Hub pour des flux de travail d'agents basés sur le code efficaces.
Partager:
agents de code
intégration LLM
exécution sandbox
framework d'agents
agents ReAct

Vue d'ensemble de smolagents

Qu'est-ce que Smolagents ?

Smolagents est une bibliothèque légère et open-source en Python conçue pour simplifier la création d'agents IA qui raisonnent et exécutent des actions principalement via du code. Développée par l'équipe Hugging Face, elle se distingue par son approche minimaliste, intégrant des capacités agentiques puissantes en seulement environ 1 000 lignes de code principal. Contrairement aux frameworks surchargés, smolagents élimine les abstractions inutiles, en se concentrant sur une efficacité brute tout en supportant des fonctionnalités avancées comme l'exécution sécurisée de code et l'intégration fluide avec des modèles de langage large (LLMs).

Au cœur de smolagents, les développeurs peuvent construire des agents qui "pensent en code", ce qui signifie que l'IA génère des extraits Python pour accomplir des tâches plutôt que de s'appuyer sur des appels d'outils JSON rigides. Ce paradigme centré sur le code s'est avéré réduire les étapes jusqu'à 30 % dans des workflows complexes, le rendant idéal pour des tâches nécessitant un raisonnement multi-étapes, comme les recherches web, l'analyse de données ou la planification d'itinéraires. Que vous soyez un chercheur expérimentant avec des modèles ouverts ou un ingénieur déployant des agents de production, smolagents offre une base flexible pour les systèmes IA agentiques.

Comment fonctionne Smolagents ?

Smolagents opère sur une boucle inspirée de ReAct (Reasoning and Acting), mais avec une twist : le LLM génère des extraits de code Python comme actions au lieu de sorties structurées. Voici un breakdown de son mécanisme principal :

  • Initialisation de l'Agent : Vous commencez par définir un agent, comme le flagship CodeAgent, et l'équiper d'outils (par ex., recherche web, E/S fichiers) et d'un backend de modèle.

  • Phase de Raisonnement : Le LLM (n'importe quel modèle supporté) reçoit le prompt de tâche, les observations passées et les outils disponibles. Il raisonne étape par étape et produit un bloc de code Python décrivant l'action prévue.

  • Phase d'Exécution : L'extrait de code est exécuté dans un environnement contrôlé. Pour la sécurité, smolagents supporte des sandboxes comme E2B, Modal, Docker, ou même Pyodide basé sur navigateur avec Deno WebAssembly. Cela empêche le code arbitraire de nuire à votre système.

  • Observation et Itération : Les résultats de l'exécution alimentent le boucle, permettant à l'agent d'affiner son approche jusqu'à ce que la tâche soit terminée.

Par exemple, pour répondre à une requête comme "Combien de secondes faudrait-il à un léopard à pleine vitesse pour traverser le Pont des Arts ?", l'agent pourrait générer du code pour rechercher la vitesse du léopard, la longueur du pont et effectuer le calcul, tout en un seul extrait efficace. Cela contraste avec les agents traditionnels qui pourraient nécessiter plusieurs appels d'outils, menant à plus d'invocations LLM et des coûts plus élevés.

Smolagents inclut aussi ToolCallingAgent pour des actions classiques basées sur JSON, offrant de la flexibilité aux utilisateurs. Les hiérarchies multi-agents sont supportées, où un agent délègue à d'autres, améliorant la scalabilité pour des applications complexes.

Fonctionnalités Principales de Smolagents

Smolagents frappe fort malgré sa petite empreinte. Les fonctionnalités clés incluent :

  • Simplicité et Minimalisme : La logique principale dans agents.py fait moins de 1 000 lignes, la rendant facile à comprendre, modifier et étendre. Pas de courbe d'apprentissage abrupte, juste du Python pur.

  • Conception Agnostic de Modèles : Fonctionne avec n'importe quel LLM via des intégrations comme InferenceClient de Hugging Face, LiteLLM (plus de 100 fournisseurs), OpenAI, Anthropic, Transformers locaux, Ollama, Azure ou Amazon Bedrock. Changez de modèles sans effort sans réécrire de code.

  • Support de Modalités : Gère les entrées texte, vision, vidéo et audio. Par exemple, les agents habilités pour la vision peuvent traiter des images aux côtés de prompts texte, comme montré dans des tutoriels dédiés.

  • Flexibilité des Outils : Intégrez des outils de n'importe où : bibliothèques LangChain, serveurs MCP ou même Hugging Face Spaces. Le toolkit par défaut inclut l'essentiel comme la recherche web et l'exécution de code.

  • Intégration Hub : Partagez et chargez des agents directement depuis le Hugging Face Hub. Poussez votre agent personnalisé comme un dépôt Space pour collaboration : agent.push_to_hub("username/my_agent").

  • Exécution Sécurisée : Priorise la sécurité avec des options de sandbox. E2B et Modal fournissent une isolation basée sur le cloud, tandis que Docker convient aux setups locaux. Un interpréteur Python sécurisé intégré ajoute une couche supplémentaire pour des environnements moins risqués.

  • Outils CLI : Exécutez des agents via ligne de commande avec smolagent pour des tâches générales (par ex., planification de voyages avec recherche web et imports de données) ou webagent pour l'automatisation de navigateur utilisant Helium.

Ces fonctionnalités rendent smolagents polyvalent pour le prototypage et la production, en mettant l'accent sur les performances sans complexité.

Comment Utiliser Smolagents : Guide Étape par Étape

Commencer est simple. Installez via pip : pip install "smolagents[toolkit]" pour inclure les outils par défaut.

Exemple Basique de Code Agent

from smolagents import CodeAgent, WebSearchTool, InferenceClientModel

model = InferenceClientModel(model_id="microsoft/DialoGPT-medium")  # Ou n'importe quel LLM
agent = CodeAgent(tools=[WebSearchTool()], model=model, stream_outputs=True)
result = agent.run("Plan a trip to Tokyo, Kyoto, and Osaka between Mar 28 and Apr 7.")
print(result)

Ce setup exploite la génération de code pour des actions multi-outils, comme des recherches en batch ou des calculs.

Utilisation CLI

Pour des exécutions rapides sans scripting :

  • smolagent "Query here" --model-type InferenceClientModel --model-id Qwen/Qwen2.5-Coder-32B-Instruct --tools web_search --imports pandas numpy
  • Spécifique au web : webagent "Navigate to site and extract details" --model-type LiteLLMModel --model-id gpt-4o

Avancé : Exécution en Sandbox

Pour activer le sandbox E2B :

agent = CodeAgent(..., executor="e2b")  # Ou "modal", "docker"

Cela assure que le code s'exécute en isolation, crucial pour les sorties LLM non fiables.

Partage et Chargement d'Agents

Exportez vers le Hub pour réutilisation :

agent.push_to_hub("my_agent_space")
loaded_agent = CodeAgent.from_hub("my_agent_space")

Idéal pour les projets d'équipe ou les benchmarks publics.

Les benchmarks montrent que les modèles ouverts comme Qwen2.5-Coder rivalisent avec les fermés (par ex., GPT-4) dans les tâches agentiques, les agents de code surpassant les LLMs vanilla en gérant des défis divers comme les maths, la recherche et la planification.

Cas d'Utilisation Principaux et Valeur Pratique

Smolagents excelle dans les scénarios demandant une automatisation efficace pilotée par code :

  • Recherche et Développement : Prototyper des workflows agentiques avec des LLMs ouverts. Les chercheurs peuvent benchmarker des modèles sur des tâches personnalisées, en tirant parti de la transparence de la bibliothèque.

  • Analyse de Données et Planification : Les agents gèrent le scraping web, les calculs et la construction d'itinéraires, par ex., planification de voyages avec recherches en temps réel et pandas pour le crunching de données.

  • Automatisation Web : Utilisez webagent pour l'e-commerce, l'extraction de contenu ou les tests, en simulant des interactions utilisateur de manière sécurisée.

  • Tâches Multi-Modales : Combinez des modèles de vision pour l'analyse d'images avec l'exécution de code, comme traiter des frames vidéo ou générer des rapports à partir de visuels.

  • Déploiement en Production : Intégrez dans des apps via Hub Spaces ou CLI pour des agents scalables et faible latence.

La valeur pratique réside dans son efficacité : moins d'appels LLM signifie des coûts inférieurs et des réponses plus rapides. Par exemple, les extraits de code permettent des actions parallèles (par ex., plusieurs recherches en une fois), boostant le throughput de 30 %. Il est sous licence Apache-2.0, favorisant les contributions communautaires : plus de 185 contributeurs ont ajouté des fonctionnalités comme des docs multilingues et des exécuteurs remotes.

La sécurité est intégrée, adressant les risques d'exécution de code avec des sandboxes et les meilleures pratiques, le rendant adapté à l'usage entreprise.

Pour Qui est Smolagents ?

  • Développeurs et Ingénieurs IA : Ceux fatigués des frameworks sur-ingénierés apprécieront le cœur hackable. Personnalisez des agents pour des outils spécifiques ou des hiérarchies.

  • Chercheurs : Testez les modèles ouverts vs. fermés dans des benchmarks agentiques ; citez-le dans des papiers avec le BibTeX fourni.

  • Startups et Équipes : Setup rapide pour prototypes, partage Hub pour collaboration.

  • Amateurs : Les outils CLI abaissent la barrière pour expérimenter avec des agents IA.

Si vous construisez des systèmes agentiques et valorisez la simplicité sur le bloat, smolagents est votre choix principal. Pourquoi le choisir ? Il démocratise les agents avancés, prouvant que les modèles ouverts peuvent égaler la puissance propriétaire tout en gardant les choses légères et sécurisées.

Pour plus, consultez la doc complète sur huggingface.co/docs/smolagents ou plongez dans le repo GitHub. Contribuez via le guide pour façonner son avenir !

Meilleurs outils alternatifs à "smolagents"

Nuanced
Image non disponible
20 0

NextReady
Image non disponible
243 0

NextReady est un modèle Next.js prêt à l'emploi avec Prisma, TypeScript et shadcn/ui, conçu pour aider les développeurs à créer des applications web plus rapidement. Inclut l'authentification, les paiements et le panneau d'administration.

Next.js
TypeScript
Prisma
Chatsistant
Image non disponible
Continue
Image non disponible
247 0

Continue est une plateforme d'IA continue open source qui aide les développeurs à créer et à exécuter des agents de code d'IA personnalisés dans leur IDE, leur terminal et leur CI pour un développement logiciel plus rapide.

Codage IA
génération de code
LiteLLM
Image non disponible
379 0

LiteLLM est une passerelle LLM qui simplifie l'accès au modèle, le suivi des dépenses et les solutions de repli sur plus de 100 LLM, le tout au format OpenAI.

Passerelle LLM
proxy OpenAI
Hackerman
Image non disponible
108 0

Hackerman est un éditeur de code natif de l'IA moderne et piratable qui sera lancé pour macOS et Linux en 2025. Une alternative à Emacs avec intégration LLM.

éditeur de code
assistant IA
LLM
Openlayer
Image non disponible
321 0

Openlayer est une plateforme d'IA d'entreprise offrant une évaluation, une observabilité et une gouvernance unifiées de l'IA pour les systèmes d'IA, du ML aux LLM. Testez, surveillez et gouvernez les systèmes d'IA tout au long du cycle de vie de l'IA.

Observabilité de l'IA
Magic Loops
Image non disponible
Moveo.AI
Image non disponible
195 0

Moveo.AI fournit une plateforme d'agents d'IA qui automatise, personnalise et met à l'échelle les conversations avec les clients pour les services financiers, améliorant ainsi le recouvrement des créances et l'expérience client.

IA financière
service client IA
Anvenssa AI
Image non disponible
219 0

Anvenssa AI offre un cadre d'agents d'IA pour l'automatisation des activités et le support client. Explorez la marketplace des agents d'IA pour transformer vos flux de travail. Automatisez la conception de conversations et améliorez l'expérience de support.

Automatisation de l'IA
Smatr-AI
Image non disponible
11 0

Tolgee
Image non disponible
12 0

Qubinets
Image non disponible
226 0

Qubinets est une plateforme open source simplifiant le déploiement et la gestion de l'infrastructure d'IA et de big data. Construisez, connectez et déployez facilement. Concentrez-vous sur le code, pas sur les configurations.

Déploiement IA
gestion Kubernetes
16x Prompt
Image non disponible
266 0

16x Prompt est un outil de codage IA permettant de gérer le contexte du code, de personnaliser les invites et de livrer des fonctionnalités plus rapidement grâce aux intégrations d'API LLM. Idéal pour les développeurs à la recherche d'un codage efficace assisté par l'IA.

Génération de code IA