AI-agents met Hugging Face smolagents
Adel Nehme
VP of AI Curriculum, DataCamp

Functietools (@tool decorator)
Klasse-gebaseerde Tools (Tool subclass)
from smolagents import Tool class ToolName(Tool): name = "tool_name"description = "Duidelijke beschrijving voor de agent"inputs = { "parameter_name": {"type": "parameter_type", "description": "Doel van de parameter"} } output_type = "string"def __init__(self, custom_parameters): super().__init__() self.custom_attribute = custom_parametersdef forward(self, parameter_name): # Agent roept deze methode aan return "verwerkt resultaat"
class RecipeSearchTool(Tool): name = "recipe_search" description = "Doorzoek kookdocumentatie voor recepten, technieken en maaltijdplanning" inputs = { "query": {"type": "string", "description": "Natuurlijke taal kookvraag"} } output_type = "string"def __init__(self, vectorstore, k=6): super().__init__() self.vectorstore = vectorstore self.k = kdef forward(self, query): docs = self.vectorstore.similarity_search(query, k=self.k) return "\n\n".join(doc.page_content for doc in docs) or "Niets gevonden."
# Initialiseer de zoektool
recipe_search = RecipeSearchTool(vector_store)
agent = CodeAgent(
tools=[recipe_search],
model=model,
instructions="Zoek grondig om volledige recepten te geven.
Als de eerste resultaten onvolledig lijken, probeer andere zoektermen.",
verbosity_level=1,
max_steps=8
)
Vraag: Hoe kook ik zalm met kruiden volgens professionele technieken?
[Stap 1] Zoek "zalm kruiden kooktechnieken"...
[Stap 2] Zoek "professionele zalm bereiding"...
[Eindantwoord]
"Dep filets droog, breng op smaak met kruiden, en:
AI-agents met Hugging Face smolagents