Créer un Agent avec des Outils Personnalisés

Agents IA avec Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agents IA avec Hugging Face smolagents

Avantages des Outils Personnalisés

  • Fiabilité : Écrire et tester la logique explicitement au lieu de laisser l'agent deviner
  • Réutilisabilité : Utiliser les outils dans plusieurs projets et agents
  • Cohérence : Obtenir un comportement prévisible à chaque exécution (idéal pour le débogage)
  • Accès contrôlé : Exposer uniquement ce que vous souhaitez (fichiers, API, bases de données, etc.)
Agents IA avec Hugging Face smolagents

Scénario : Vous Gérez un Magasin de Détail

  • Les données d'inventaire sont stockées dans un fichier CSV (taille, couleur, quantité, et prix)
  • Les agents de code peuvent écrire du code pour lire les CSV
  • Mais ils n'ont pas accès aux fichiers par défaut
  • Vous devez encapsuler l'accès aux fichiers dans un outil personnalisé

Agents IA avec Hugging Face smolagents

Anatomie d'un Outil Personnalisé

from smolagents import tool
import pandas as pd

@tool
def check_inventory(product_name: str) -> int:
    """
    Vérifier la quantité disponible d'un produit dans le CSV d'inventaire.

    Args:
        product_name (str): Le nom du produit à rechercher.

    Returns:
        int: La quantité en stock. Retourne 0 si le produit n'est pas trouvé.
    """
    df = pd.read_csv("store_inventory.csv")
    match = df[df["product_name"] == product_name]
    stock_quantity = int(match.iloc[0]["quantity"]) if not match.empty else 0
    return stock_quantity
Agents IA avec Hugging Face smolagents

Bonnes Pratiques pour les Outils Personnalisés

Agents IA avec Hugging Face smolagents

Avons-nous des t-shirts en stock ?

Agents IA avec Hugging Face smolagents

Enregistrer un Outil Personnalisé avec Votre Agent

from smolagents import CodeAgent

agent = CodeAgent(
    tools=[check_inventory], # Ajouter un outil personnalisé
    model=InferenceClientModel(),
    additional_authorized_imports=["pandas"]  # Autoriser un package externe
)

agent.run("Avons-nous des t-shirts larges en stock ?")
Oui, nous avons 8 t-shirts larges en stock.
Agents IA avec Hugging Face smolagents

Outils Personnalisés dans les Projets de Production

Agents IA avec Hugging Face smolagents

Passons à la pratique !

Agents IA avec Hugging Face smolagents

Preparing Video For Download...