Agents Course documentation

Pourquoi utiliser smolagents

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

smolagents banner

Pourquoi utiliser smolagents

Dans ce module, nous explorerons les avantages et les inconvénients de l’utilisation de smolagents, vous aidant à prendre une décision éclairée pour savoir si c’est le bon framework pour vos besoins.

Qu’est-ce que smolagents ?

smolagents est un framework simple mais puissant pour construire des agents. Il fournit aux LLM la capacité d’agir (agency) pour interagir avec le monde réel, comme effectuer des recherches ou générer des images.

Comme nous l’avons appris dans l’Unité 1, les agents sont des programmes qui utilisent des LLM pour générer des raisonnements basés sur des observations afin d’effectuer des actions. Explorons comment cela est implémenté dans smolagents.

Principaux avantages de smolagents

  • Simplicité : Complexité de code et abstractions minimales, pour rendre le framework facile à comprendre, adopter et étendre
  • Support LLM flexible : Fonctionne avec n’importe quel LLM grâce à l’intégration avec les outils Hugging Face et les API externes
  • Approche orientée code : Support de première classe pour les agents à code qui écrivent leurs actions directement en code, éliminant le besoin d’analyse syntaxique et simplifiant l’appel d’outils
  • Intégration au Hub d’Hugging Face : Intégration transparente avec le Hub, permettant l’utilisation de Spaces Gradio comme outils

Quand utiliser smolagents ?

Avec ces avantages en tête, quand devrions-nous utiliser smolagents plutôt que d’autres frameworks ?

smolagents est idéal quand :

  • Vous avez besoin d’une solution légère et minimale.
  • Vous voulez expérimenter rapidement sans configurations complexes.
  • Votre logique d’application est simple.

Actions via code vs. via JSON

Contrairement à d’autres frameworks où les agents écrivent des actions en JSON, smolagents se concentre sur les appels d’outils en code, simplifiant le processus d’exécution. C’est parce qu’il n’y a pas besoin d’analyser le JSON pour construire du code qui appelle les outils : la sortie peut être exécutée directement.

Le diagramme suivant illustre cette différence :

Code vs. JSON actions

Pour revoir la différence entre les actions via code vs. via JSON, vous pouvez revisiter la section Actions dans l’Unité 1.

Types d’agents dans smolagents

Les agents dans smolagents fonctionnent comme des agents multi-étapes.

Chaque MultiStepAgent effectue :

  • Un raisonnement
  • Un appel et une exécution d’outil

En plus d’utiliser CodeAgent comme type principal d’agent, smolagents supporte également ToolCallingAgent, qui écrit des appels d’outils en JSON.

Nous explorerons chaque type d’agent plus en détail dans les sections suivantes.

Dans smolagents, les outils sont définis en utilisant le décorateur @tool enveloppant une fonction Python ou la classe Tool.

Intégration de modèles dans smolagents

smolagents supporte une intégration flexible des LLM, vous permettant d’utiliser n’importe quel modèle appelable qui répond à certains critères. Le framework fournit plusieurs classes prédéfinies pour simplifier les connexions aux modèles :

Cette flexibilité garantit que les développeurs peuvent choisir le modèle et le service les plus adaptés à leurs cas d’usage spécifiques, et permet une expérimentation facile.

Maintenant que nous avons compris pourquoi et quand utiliser smolagents, plongeons plus profondément dans cette puissante bibliothèque !

Ressources

< > Update on GitHub