Een Agent Maken Met Tools

AI-agents met Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Een Code Agent Maken (Zonder Tools)

from smolagents import CodeAgent, InferenceClientModel

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

agent.run("Bereken het gemiddelde van de lijst [23, 45, 67, 89]")
Uitvoeren van de code:
  numbers = [23, 45, 67, 89]                                                                               
  average = sum(numbers) / len(numbers)                                                                            
  final_answer(average)                                                                                             
Eindantwoord: 56.0
[Stap 1: Duur 4.14 seconden| Invoertokens: 1,900 | Uitvoertokens: 109]
56.0
AI-agents met Hugging Face smolagents

Waarom Tools Gebruiken met Code Agents?

De agent die we hebben gedefinieerd kan al veel taken uitvoeren met:

  • Een LLM-model
  • Python-code

Maar hij kan ook externe informatie nodig hebben:

  • Voorbeeld: live webdata

Daar komen tools van pas!

AI-agents met Hugging Face smolagents

Een Webzoektool Toevoegen

from smolagents import CodeAgent, InferenceClientModel, WebSearchTool

agent = CodeAgent(
    model=InferenceClientModel(),
    tools=[WebSearchTool()]
)
AI-agents met Hugging Face smolagents

Code Agent Met Webzoektool Output

agent.run("Wat is het hoogste gebouw ter wereld op dit moment?")
Uitvoeren van de code:
  tallest_building_info = web_search("hoogste gebouw ter wereld 2023")                                
  print(tallest_building_info)                                                                                

# Zoekresultaten weggelaten voor beknoptheid...

Uitvoeren van de code: 
  final_answer("Burj Khalifa, Dubai, 828 meter")                                                              
Eindantwoord: Burj Khalifa, Dubai, 828 meter
[Stap 2: Duur 2.97 seconden| Invoertokens: 5,078 | Uitvoertokens: 153]
Burj Khalifa, Dubai, 828 meter
AI-agents met Hugging Face smolagents

Ingebouwde Tools (per Categorie)

Categorie Tools
Informatieopvraging ApiWebSearchTool, DuckDuckGoSearchTool, GoogleSearchTool, WebSearchTool, WikipediaSearchTool
Webinteractie VisitWebpageTool
Code-uitvoering PythonInterpreterTool
Gebruikersinteractie UserInputTool
Spraakverwerking SpeechToTextTool
Workflowbeheer FinalAnswerTool
1 https://huggingface.co/docs/smolagents/main/en/reference/default_tools
AI-agents met Hugging Face smolagents

Tools van de Hugging Face Hub

AI-agents met Hugging Face smolagents

Community Tools van Hugging Face Gebruiken

from smolagents import load_tool

# Laad een externe tool van Hugging Face
model_downloads_tool = load_tool(
    repo_id="example-repo/hf-model-downloads",
    trust_remote_code=True
)

# Maak een agent met externe + ingebouwde tools
agent = CodeAgent(
    tools=[model_downloads_tool, WebSearchTool()],
    model=InferenceClientModel()
)

agent.run("Vind het meest gedownloade beeldclassificatiemodel op Hugging Face")
google/vit-base-patch16-224-in21k
AI-agents met Hugging Face smolagents

Laten we oefenen!

AI-agents met Hugging Face smolagents

Preparing Video For Download...