Crear un Agente con Herramientas Personalizadas

Agentes de IA con Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agentes de IA con Hugging Face smolagents

Beneficios de las Herramientas Personalizadas

  • Fiabilidad: Escribe y prueba la lógica explícitamente en lugar de depender del agente
  • Reutilización: Usa herramientas en varios proyectos y agentes
  • Consistencia: Comportamiento predecible en cada ejecución (ideal para depuración)
  • Acceso controlado: Expón solo lo que desees (archivos, APIs, bases de datos, etc.)
Agentes de IA con Hugging Face smolagents

Escenario: Tienes una Tienda Minorista

  • Los datos de inventario se almacenan en un archivo CSV (tamaño, color, cantidad y precio)
  • Los agentes de código pueden escribir código para leer CSVs
  • Pero no tienen acceso a archivos por defecto
  • Necesitas envolver el acceso a archivos en una herramienta personalizada

Agentes de IA con Hugging Face smolagents

Anatomía de una Herramienta Personalizada

from smolagents import tool
import pandas as pd

@tool
def check_inventory(product_name: str) -> int:
    """
    Verifica la cantidad disponible de un producto en el CSV de inventario.

    Args:
        product_name (str): El nombre del producto a buscar.

    Returns:
        int: La cantidad en stock. Devuelve 0 si no se encuentra el producto.
    """
    df = pd.read_csv("store_inventory.csv")
    match = df[df["product_name"] == product_name]
    stock_quantity = int(match.iloc[0]["quantity"]) if not match.empty else 0
    return stock_quantity
Agentes de IA con Hugging Face smolagents

Mejores Prácticas para Herramientas Personalizadas

Agentes de IA con Hugging Face smolagents

¿Tenemos camisetas en stock?

Agentes de IA con Hugging Face smolagents

Registrar una Herramienta Personalizada con Tu Agente

from smolagents import CodeAgent

agent = CodeAgent(
    tools=[check_inventory], # Añadir herramienta personalizada
    model=InferenceClientModel(),
    additional_authorized_imports=["pandas"]  # Permitir paquete externo
)

agent.run("¿Tenemos camisetas grandes en stock?")
Sí, tenemos 8 camisetas grandes en stock.
Agentes de IA con Hugging Face smolagents

Herramientas Personalizadas en Proyectos de Producción

Agentes de IA con Hugging Face smolagents

¡Vamos a practicar!

Agentes de IA con Hugging Face smolagents

Preparing Video For Download...