Hugging Face lanza Smolagents: Una biblioteca para crear agentes de IA con modelos de lenguaje abiertos

Publicado el

agentes ia

Hugging Face, una de las plataformas más reconocidas en inteligencia artificial y aprendizaje automático, ha presentado recientemente Smolagents, una biblioteca que promete facilitar la creación de agentes de inteligencia artificial (IA) utilizando modelos de lenguaje abiertos (LLMs, por sus siglas en inglés). Este lanzamiento busca simplificar el proceso de diseño y ejecución de agentes que puedan realizar tareas básicas con mayor eficiencia y accesibilidad para desarrolladores.

¿Qué es Smolagents y cuál es su propuesta?

Smolagents se presenta como una herramienta minimalista, pero poderosa, que permite a los desarrolladores crear agentes de IA con lógicas predefinidas. Con solo unas 1.000 líneas de código, la biblioteca establece la base para que los agentes puedan ejecutar acciones directamente en código, integrándose con cualquier modelo de lenguaje abierto o algunas opciones de LLMs basadas en la nube.

La idea principal detrás de Smolagents es reducir la complejidad al desarrollar agentes. Los desarrolladores pueden centrarse en conectar el modelo de lenguaje y las herramientas necesarias para recopilar datos externos o ejecutar acciones, eliminando gran parte de la curva de aprendizaje habitual. Desde WWWhatsnew.com consideramos que esta propuesta podría abrir puertas a quienes no tienen experiencia previa en la construcción de agentes de IA complejos.

Características principales de Smolagents

Hugging Face ha diseñado Smolagents pensando en la simplicidad y la versatilidad. Entre sus características destacadas se encuentran:

  • Acciones en lugar de escritura de código: Aunque los agentes creados con Smolagents no pueden escribir código, sí son capaces de ejecutar acciones en código. Por ejemplo, un agente podría calcular tiempos de viaje utilizando datos de Google Maps o planificar itinerarios.
  • Compatibilidad con modelos abiertos y en la nube: Los desarrolladores pueden elegir entre modelos de lenguaje de código abierto alojados en Hugging Face o seleccionar de más de 100 modelos en la nube.
  • Facilidad para compartir herramientas: La plataforma permite que las herramientas desarrolladas para los agentes sean compartidas con la comunidad. Esto fomenta un ecosistema colaborativo, donde los desarrolladores pueden beneficiarse del trabajo colectivo.
  • Ejecución segura en entornos sandbox: Para garantizar la confiabilidad y seguridad, los agentes pueden probarse en entornos cerrados mediante E2B, lo que permite ajustes antes de su despliegue.
  • Interfaz estándar: La biblioteca soporta ToolCallingAgent, una interfaz que escribe acciones en formatos estándares como JSON o bloques de texto.
  • Integración con herramientas personalizadas: Los desarrolladores pueden crear herramientas personalizadas utilizando decoradores como @tool, permitiendo especificar entradas, salidas y descripciones detalladas para funciones que pueden ser utilizadas por los agentes. Estas herramientas pueden ser compartidas y reutilizadas a través de la comunidad de Hugging Face.

¿Qué son los agentes de IA y cuándo usarlos?

Hugging Face lanza Smolagents

Hugging Face lanza Smolagents

Un agente de IA es un programa donde los resultados generados por un modelo de lenguaje influyen directamente en el flujo de trabajo de una aplicación. Estos sistemas permiten que los LLMs interactúen con el mundo real mediante herramientas externas, como APIs de búsqueda o software para realizar tareas específicas.

Cuándo usar agentes:

  • Cuando el flujo de trabajo es complejo y requiere flexibilidad.
  • Para integrar decisiones basadas en datos externos.
  • En situaciones donde los flujos predeterminados no son suficientes, como en la atención al cliente personalizada.

Cuándo evitarlos:

  • Si el flujo de trabajo puede resolverse con un código predefinido y predecible.
  • Cuando se prioriza la robustez y simplicidad del sistema sobre la flexibilidad.

Ejemplo práctico: Crear un agente de itinerarios de viaje

Smolagents facilita la creación de agentes que combinan varias herramientas para resolver tareas reales. Por ejemplo, un agente podría calcular duraciones de viaje y planificar itinerarios.

Código para un agente de itinerarios:

from typing import Optional
from smolagents import CodeAgent, HfApiModel, tool

def get_travel_duration(start_location: str, destination_location: str, departure_time: Optional[int] = None) -> str:
    """Calcula el tiempo de viaje entre dos ubicaciones."""
    import googlemaps
    import os

    gmaps = googlemaps.Client(os.getenv("GMAPS_API_KEY"))
    
    directions_result = gmaps.directions(
        start_location,
        destination_location,
        mode="transit",
        departure_time=departure_time
    )
    return directions_result[0]["legs"][0]["duration"]["text"]

agent = CodeAgent(tools=[get_travel_duration], model=HfApiModel())

agent.run("Planifica un itinerario de un día en París utilizando transporte público.")

Este agente combina datos de Google Maps y la capacidad de razonamiento del LLM para ofrecer un itinerario optimizado.

Ventajas de los agentes basados en código frente a JSON

Smolagents destaca por su enfoque en agentes basados en código, en lugar de acciones codificadas en JSON. Esto permite:

  • Composición más sencilla: Definir funciones reutilizables en código es más fácil que anidar estructuras JSON.
  • Gestión de objetos: El manejo de datos complejos es más natural en lenguajes de programación.
  • Generalidad: El código es intrínsecamente más versátil para expresar tareas computacionales.

Futuro de Smolagents y los agentes de IA

Smolagents se posiciona como el sucesor de transformers.agents, marcando un paso adelante en la democratización de la IA. Hugging Face planea expandir esta biblioteca con nuevas integraciones, mejores herramientas y tutoriales avanzados para ayudar a los desarrolladores a explorar todo el potencial de los agentes.