Introductie tot Agentic RAG

AI-agents met Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agentic RAG: Iteratief Zoeken + Redeneren

AI-agents met Hugging Face smolagents

Stateless vs. Stateful Tools in smolagents

Functietools (@tool decorator)

  • Stateless: geen geheugen tussen oproepen
  • Kan je vector store niet onthouden tussen oproepen

Klasse-gebaseerde Tools (Tool subclass)

  • Stateful: behoudt referenties tussen oproepen
  • Slaat complexe objecten op
AI-agents met Hugging Face smolagents

De Anatomie van een Klasse-gebaseerde Tool

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_parameters
def forward(self, parameter_name): # Agent roept deze methode aan return "verwerkt resultaat"
AI-agents met Hugging Face smolagents

Bouw een Receptzoektool

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 = k
def 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."
AI-agents met Hugging Face smolagents

Kookassistent Agent: Alles Samenvoegen

# 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
)
AI-agents met Hugging Face smolagents

Voorbeeld Agent Run

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:

  • Bak op de huidkant, bedruip met boter, knoflook, tijm
  • Of bak op 200°C met citroen & kruidenboter voor 10 tot 12 min"
AI-agents met Hugging Face smolagents

Laten we oefenen!

AI-agents met Hugging Face smolagents

Preparing Video For Download...