Marco de agentes de IA Smolagents

 NUEVO marco de agentes de HuggingFace: cree potentes agentes de inteligencia artificial con el mínimo esfuerzo.

SmolAgents - Potentes agentes de IA, código mínimo, en el framework Hugging Face | Product Hunt

Deep Research build By Smolagents FREE

Powered By Smolagents

Código Ai Smolagents | FAST&FREE

Desarrollado por Together AI y LlamaCoder

smolagents and tools gallery

best smolagents in huggingface

 ¿Qué son los agentes?

Los agentes de IA son programas en los que las salidas LLM controlan el flujo de trabajo.

El cuadro ilustra cómo varía la agencia según los sistemas:

AgenciaDescripciónCómo se llamaPatrón de ejemplo
☆☆☆El resultado del LLM no influye en el flujo del programaProcesador simpleprocess_llm_output(llm_response)
★☆☆La salida LLM determina el flujo de control básicoRouterif llm_decision(): ruta_a() else: ruta_b()
★★☆La salida LLM determina la ejecución de la funciónLlamada a la herramientarun_function(llm_chosen_tool, llm_chosen_args)
★★★La salida LLM controla la iteración y la continuación del programaAgente de varios pasoswhile llm_should_continue(): execute_next_step()
★★★Un agentic workflow puede iniciar otro agentic workflowMultiagenteif llm_trigger(): ejecutar_agente()

Características de SmolAgents

🤗 Smolagents es un marco de trabajo minimalista para agentes de IA desarrollado por el equipo de Hugging Face, creado para permitir a los desarrolladores desplegar agentes robustos con sólo unas pocas líneas de código. smolagents, que apuesta por la sencillez y la eficiencia, permite a los grandes modelos lingüísticos (LLM) interactuar a la perfección con el mundo real.

✨ Simplicidad

Código base compacto: Con aproximadamente 1.000 líneas de código central en agentes.pysmolagents mantiene las abstracciones al mínimo para facilitar el desarrollo.

Fácil de usar

Los desarrolladores pueden definir rápidamente los agentes, suministrarles las herramientas necesarias y ejecutarlos de inmediato sin complicadas configuraciones.

Código Agentes

 smolagents se centra en agentes de códigodonde los agentes escriben y ejecutan fragmentos de código Python para realizar acciones, en lugar de generar acciones como JSON o blobs de texto.

Alta eficacia

En comparación con los métodos estándar de llamada a herramientas, los agentes de código ofrecen una mayor eficiencia y precisión, reduciendo los pasos y las llamadas a LLM en aproximadamente 30%, y logrando un rendimiento superior en puntos de referencia complejos.

Ejecución segura

 Para garantizar una ejecución segura del código, smolagents permite ejecutar código en entornos aislados como E2B, proporcionando un espacio de ejecución protegido y aislado.

Varios LLM

 smolagents se integra sin esfuerzo con cualquier modelo lingüístico de gran tamaño, incluidos los modelos alojados en Hugging Face Hub a través de Transformers, así como los modelos de OpenAI, Anthropic y otros a través de la integración con LiteLLM.

SmolAgents :Integración con Hugging Face Hub

Compartir y cargar herramientas: La profunda integración con Hugging Face Hub permite a los desarrolladores compartir e importar herramientas fácilmente, fomentando la colaboración y el intercambio dentro de la comunidad.

Crecimiento del ecosistema: Aprovechando las capacidades del Hub, smolagents se amplía continuamente con más funcionalidades y herramientas, ofreciendo un potencial de desarrollo ilimitado.

Apoyo a los agentes de llamadas tradicionales

Variedad de opciones: Además de los agentes de código, smolagents también es compatible con los tradicionales agentes de llamada de herramientas, donde las acciones se escriben como JSON o bloques de texto, adecuados para escenarios y requisitos específicos.

Razones para optar por el Código smolAgents

Composibilidad superior: El código admite de forma natural el anidamiento y la reutilización de funciones, lo que permite expresar una lógica compleja.

Gestión eficaz de objetos: En comparación con JSON, el código simplifica la gestión y transferencia de objetos.

Máxima flexibilidad: El código puede representar cualquier operación que pueda realizar un ordenador, lo que proporciona una inmensa versatilidad.

Amplios datos de formación: Los LLM han recibido formación sobre grandes cantidades de código de alta calidad, lo que mejora su capacidad para generar y comprender código.

Ventajas de rendimiento de smolagents

En varias pruebas comparativas, los smolagent que utilizan modelos de código abierto han igualado el rendimiento de los agentes que utilizan modelos propietarios. Gracias a la eficacia de los agentes de código y a los continuos avances de los modelos de código abierto, los desarrolladores pueden crear potentes sistemas de agentes sin depender de servicios de código cerrado.

Ejemplo de aplicación de SmolAgents

En Smolagents, los agentes se encapsulan en clases que les permiten realizar tareas específicas. Por ejemplo, un agente ManagedAgent se pueden crear para gestionar varias tareas utilizando diferentes tipos de agentes. A continuación se muestra un ejemplo simplificado de cómo se pueden implementar dos agentes: uno para la búsqueda web y otro para la generación de imágenes. A continuación se explica cómo crear una herramienta personalizada que obtenga los tiempos de viaje de Google Maps y cómo utilizarla en un agente planificador de viajes:

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

@tool
def get_travel_duration(start_location: str, destination_location: str, transportation_mode: Optional[str] = None) -> str:
    """Gets the travel time between two places.

    Args:
        start_location: the place from which you start your ride
        destination_location: the place of arrival
        transportation_mode: The transportation mode, in 'driving', 'walking', 'bicycling', or 'transit'. Defaults to 'driving'.
    """
    import os   # All imports are placed within the function, to allow for sharing to Hub.
    import googlemaps
    from datetime import datetime

    gmaps = googlemaps.Client(os.getenv("GMAPS_API_KEY"))

    if transportation_mode is None:
        transportation_mode = "driving"
    try:
        directions_result = gmaps.directions(
            start_location,
            destination_location,
            mode=transportation_mode,
            departure_time=datetime(2025, 6, 6, 11, 0), # At 11, date far in the future
        )
        if len(directions_result) == 0:
            return "No way found between these places with the required transportation mode."
        return directions_result[0]["legs"][0]["duration"]["text"]
    except Exception as e:
        print(e)
        return e

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

agent.run("Can you give me a nice one-day trip around Paris with a few locations and the times? Could be in the city or outside, but should fit in one day. I'm travelling only with a rented bicycle.")

Tras unos cuantos pasos de recopilación de tiempos de viaje y ejecución de cálculos, el agente devuelve esta propuesta final:Itinerario de un día en bicicleta por París:


1. Salida de la Torre Eiffel a las 9:00 h.
2. Visita a la Torre Eiffel hasta las 10:30.
3. Viaje a la catedral de Notre-Dame a las 10:46.
4. Visita a la Catedral de Notre-Dame hasta las 12:16 PM.
5. Viaje a Montmartre a las 12:41 PM.
6. Visita a Montmartre hasta las 14:11.
7. Viaje al Jardín de Luxemburgo a las 14:33.
8. Visita al Jardín de Luxemburgo hasta las 16:03.
9. Viaje al Museo del Louvre a las 16:12.
10. Visita al Museo del Louvre hasta las 17:42.
11. Pausa para comer hasta las 18:12.
12. Hora prevista de finalización: 18:12.

Después de crear una herramienta, compartirla con Hub es tan sencillo como:

get_travel_duration.push_to_hub("{su_nombre_de_usuario}/get-travel-duration-tool")

Recursos de SmolAgents

Preguntas frecuentes sobre los smolagent

smolagents es una biblioteca minimalista de agentes de IA desarrollada por el equipo Hugging Face. Permite a los desarrolladores crear y ejecutar potentes agentes de IA con un código mínimo. Al centrarse en la simplicidad y la eficiencia, smolagents permite que grandes modelos lingüísticos (LLM) interactúen sin problemas con tareas del mundo real.

A diferencia de muchos marcos de agentes de IA que tienen abstracciones y configuraciones complejas, smolagents mantiene una base de código compacta de unas 1.000 líneas. Hace hincapié en la facilidad de uso y admite agentes de código, en los que los agentes ejecutan directamente fragmentos de código Python, lo que mejora la eficiencia y reduce el número de pasos necesarios y de llamadas LLM.

 Los agentes de código son una característica clave de smolagent. En lugar de generar acciones como JSON o blobs de texto, los agentes de código escriben y ejecutan fragmentos de código Python para realizar tareas. Este enfoque aprovecha la capacidad del LLM para generar y comprender código, ofreciendo una mejor composibilidad y flexibilidad a la hora de expresar lógica compleja.

Puede instalar smolagents utilizando pip con el comando:

复制pip install smolagents

Para empezar, defina un agente importando las clases necesarias, proporcione las herramientas requeridas y el modelo LLM, y ejecute sus tareas. Por ejemplo:

python复制from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel

agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel())
agent.run("Su tarea aquí")

 smolagents está diseñado para una amplia compatibilidad con LLMs. Se integra perfectamente con modelos alojados en Hugging Face Hub a través de Transformers, así como con modelos de OpenAI, Anthropic y otros a través de la integración LiteLLM. Esta flexibilidad le permite elegir el LLM más adecuado para las necesidades de su proyecto.

 Sí, además de los agentes de código, smolagents soporta agentes tradicionales de llamada a herramientas. En este modo, las acciones se escriben como JSON o blobs de texto, lo que puede ser adecuado para escenarios específicos en los que ejecutar fragmentos de código puede no ser lo ideal.

 smolagents da prioridad a la ejecución segura de código mediante entornos aislados. Por ejemplo, puede utilizar E2B (Execution to Binary), que proporciona un entorno seguro y aislado para ejecutar fragmentos de código. Esto garantiza que la ejecución del código no comprometa la seguridad del sistema anfitrión.

 Los agentes codificadores ofrecen varias ventajas:

  • Mejor componibilidad: El código permite anidar y reutilizar funciones de forma natural, lo que facilita la expresión de lógicas complejas.
  • Gestión eficiente de objetos: Gestionar y pasar objetos es más sencillo en código comparado con JSON.
  • Gran flexibilidad: El código puede representar cualquier operación computacional, lo que proporciona una inmensa versatilidad.
  • Utilización de datos de entrenamiento enriquecidos: Dado que los LLM se entrenan con grandes cantidades de código, son expertos en generar y comprender fragmentos de código.

 smolagents tiene una profunda integración con Hugging Face Hub, lo que permite a los desarrolladores compartir y cargar herramientas fácilmente. Esto fomenta un ecosistema colaborativo en el que la comunidad puede contribuir y acceder a herramientas y recursos, mejorando la funcionalidad y el alcance de smolagents.

Puede explorar los siguientes recursos para obtener más información sobre los smolagent:

  • Documentación oficial: Visite la documentación de smolagents en la página Página web de Hugging Face.
  • Guías de iniciación: Consulta las guías introductorias y los tutoriales proporcionados por el equipo de Hugging Face.
  • Ejemplos de proyectos: Explore proyectos de muestra y ejemplos de código en GitHub para ver smolagents en acción.
  • Foros comunitarios: Participe en la comunidad de desarrolladores a través de foros y debates para obtener información y apoyo.

Choose from Your languange