Agentes de IA con Hugging Face smolagents
Adel Nehme
VP of AI Curriculum, DataCamp

Herramientas de Función (decorador @tool)
Herramientas Basadas en Clases (subclase Tool)
from smolagents import Tool class ToolName(Tool): name = "tool_name"description = "Descripción clara para el agente"inputs = { "parameter_name": {"type": "parameter_type", "description": "Propósito del parámetro"} } output_type = "string"def __init__(self, custom_parameters): super().__init__() self.custom_attribute = custom_parametersdef forward(self, parameter_name): # El agente llama a este método return "processed output"
class RecipeSearchTool(Tool): name = "recipe_search" description = "Buscar documentación de cocina para recetas, técnicas e información de planificación de comidas" inputs = { "query": {"type": "string", "description": "Consulta de cocina en lenguaje natural"} } 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 "Nada encontrado."
# Inicializar la herramienta de búsqueda
recipe_search = RecipeSearchTool(vector_store)
agent = CodeAgent(
tools=[recipe_search],
model=model,
instructions="Busca a fondo para proporcionar respuestas completas de recetas.
Si los resultados iniciales parecen incompletos, prueba con otros términos de búsqueda.",
verbosity_level=1,
max_steps=8
)
Consulta: ¿Cómo cocinar salmón con hierbas usando técnicas profesionales?
[Paso 1] Buscar "técnicas de cocina con salmón y hierbas"...
[Paso 2] Buscar "preparación profesional de salmón"...
[Respuesta Final]
"Seca los filetes, sazona con hierbas y:
Agentes de IA con Hugging Face smolagents