Créer un agent avec des outils

Agents IA avec Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Créer un agent de code (sans outils)

from smolagents import CodeAgent, InferenceClientModel

agent = CodeAgent(
    tools=[],
    model=InferenceClientModel()
)

agent.run("Calculate the average of the list [23, 45, 67, 89]")
Executing parsed code:
  numbers = [23, 45, 67, 89]                                                                               
  average = sum(numbers) / len(numbers)                                                                            
  final_answer(average)                                                                                             
Final answer: 56.0
[Step 1: Duration 4.14 seconds| Input tokens: 1,900 | Output tokens: 109]
56.0
Agents IA avec Hugging Face smolagents

Pourquoi utiliser des outils avec les agents de code ?

L'agent défini peut déjà résoudre de nombreuses tâches avec :

  • Un modèle LLM
  • Du code Python

Mais il peut aussi avoir besoin d'information externe :

  • Exemple : données Web en direct

C'est là que les outils interviennent !

Agents IA avec Hugging Face smolagents

Ajouter un outil de recherche Web

from smolagents import CodeAgent, InferenceClientModel, WebSearchTool

agent = CodeAgent(
    model=InferenceClientModel(),
    tools=[WebSearchTool()]
)
Agents IA avec Hugging Face smolagents

Sortie d'un agent de code avec outil de recherche Web

agent.run("What's the tallest building in the world right now?")
Executing parsed code:
  tallest_building_info = web_search("tallest building in the world 2023")                                
  print(tallest_building_info)                                                                                

# Search results omitted for brevity...

Executing parsed code: 
  final_answer("Burj Khalifa, Dubai, 828 meters")                                                              
Final answer: Burj Khalifa, Dubai, 828 meters
[Step 2: Duration 2.97 seconds| Input tokens: 5,078 | Output tokens: 153]
Burj Khalifa, Dubai, 828 meters
Agents IA avec Hugging Face smolagents

Outils intégrés (par catégorie)

Catégorie Outils
Recherche d'information ApiWebSearchTool, DuckDuckGoSearchTool, GoogleSearchTool, WebSearchTool, WikipediaSearchTool
Interaction Web VisitWebpageTool
Exécution de code PythonInterpreterTool
Interaction avec l'utilisateur UserInputTool
Traitement de la parole SpeechToTextTool
Contrôle du flux FinalAnswerTool
1 https://huggingface.co/docs/smolagents/main/en/reference/default_tools
Agents IA avec Hugging Face smolagents

Outils du Hub Hugging Face

Agents IA avec Hugging Face smolagents

Utiliser les outils de la communauté sur Hugging Face

from smolagents import load_tool

# Load remote tool from Hugging Face
model_downloads_tool = load_tool(
    repo_id="example-repo/hf-model-downloads",
    trust_remote_code=True
)

# Create agent with remote + built-in tools
agent = CodeAgent(
    tools=[model_downloads_tool, WebSearchTool()],
    model=InferenceClientModel()
)

agent.run("Find the most downloaded image classification model on Hugging Face")
google/vit-base-patch16-224-in21k
Agents IA avec Hugging Face smolagents

Passons à la pratique !

Agents IA avec Hugging Face smolagents

Preparing Video For Download...