Struttura per agenti AI Smolagents

 Il nuovo framework per agenti di HuggingFace crea potenti agenti di intelligenza artificiale con il minimo sforzo.

SmolAgents - Agenti AI potenti, codice minimo, su framework Hugging Face | Product Hunt

Deep Research build By Smolagents FREE

Powered By Smolagents

Codice Ai Smolagents | FAST&FREE

Realizzato da Together AI e LlamaCoder

smolagents and tools gallery

best smolagents in huggingface

 Cosa sono gli agenti?

Gli agenti AI sono programmi in cui gli output LLM controllano il flusso di lavoro.

La tabella illustra come l'agenzia vari da un sistema all'altro:

Livello dell'agenziaDescrizioneCome si chiamaEsempio di modello
☆☆☆L'output del LLM non ha alcun impatto sul flusso del programmaProcessore sempliceprocess_llm_output(llm_response)
★☆☆L'uscita LLM determina il flusso di controllo di baseRouterif llm_decision(): percorso_a() else: percorso_b()
★★☆L'uscita LLM determina l'esecuzione della funzioneChiamata allo strumentorun_function(llm_chosen_tool, llm_chosen_args)
★★★L'uscita LLM controlla l'iterazione e la continuazione del programmaAgente multi-fasewhile llm_should_continue(): execute_next_step()
★★★Un flusso di lavoro agenziale può avviare un altro flusso di lavoro agenzialeMulti-agentese llm_trigger(): execute_agent()

Caratteristiche di SmolAgents

🤗 Smolagents è un framework di agenti AI minimalista sviluppato dal team di Hugging Face, realizzato per consentire agli sviluppatori di distribuire agenti robusti con poche righe di codice. Grazie alla semplicità e all'efficienza, smolagents consente ai modelli linguistici di grandi dimensioni (LLM) di interagire senza problemi con il mondo reale.

✨ Semplicità

Base di codice compatta: Con circa 1.000 righe di codice principale in agenti.pysmolagents riduce al minimo le astrazioni per uno sviluppo semplice.

Facile da usare

Gli sviluppatori possono definire rapidamente gli agenti, fornire gli strumenti necessari ed eseguirli immediatamente senza complicate configurazioni.

Codice Agenti

 smolagents si concentra su codice agentiin cui gli agenti scrivono ed eseguono snippet di codice Python per eseguire azioni, invece di generare azioni come JSON o blob di testo.

Alta efficienza

Rispetto ai metodi standard di chiamata degli strumenti, gli agenti di codice offrono una maggiore efficienza e precisione, riducendo i passaggi e le chiamate LLM di circa 30% e ottenendo prestazioni superiori su benchmark complessi.

Esecuzione sicura

 Per garantire un'esecuzione sicura del codice, smolagents supporta l'esecuzione del codice in ambienti sandbox, come ad esempio E2B, fornendo uno spazio di esecuzione protetto e isolato.

Vari LLM

 smolagents si integra facilmente con qualsiasi modello linguistico di grandi dimensioni, compresi i modelli ospitati su Hugging Face Hub tramite Transformers, nonché i modelli di OpenAI, Anthropic e altri attraverso l'integrazione con LiteLLM.

SmolAgents :Integrazione con Hugging Face Hub

Strumenti di condivisione e caricamento: La profonda integrazione con Hugging Face Hub consente agli sviluppatori di condividere e importare facilmente gli strumenti, favorendo la collaborazione e la condivisione all'interno della comunità.

Crescita dell'ecosistema: Sfruttando le capacità dell'Hub, smolagents si espande continuamente con ulteriori funzionalità e strumenti, offrendo un potenziale di sviluppo illimitato.

Supporto per gli strumenti tradizionali che chiamano gli agenti

Varietà di scelte: Oltre agli agenti di codice, smolagents supporta anche gli agenti tradizionali. agenti di chiamata degli strumenti, dove le azioni sono scritte come JSON o blocchi di testo, adatti a scenari e requisiti specifici.

Motivi per optare per Codice smolAgents

Compostezza superiore: Il codice supporta naturalmente la nidificazione e il riutilizzo delle funzioni, consentendo l'espressione di una logica complessa.

Gestione efficiente degli oggetti: Rispetto a JSON, il codice semplifica la gestione e il trasferimento degli oggetti.

Massima flessibilità: Il codice può rappresentare qualsiasi operazione che un computer può eseguire, offrendo un'immensa versatilità.

Ampi dati di formazione: I LLM sono stati formati su grandi quantità di codice di alta qualità, migliorando la loro capacità di generare e comprendere il codice.

Vantaggi in termini di prestazioni di smolagents

In diversi benchmark, gli smolagent che utilizzano modelli open-source hanno eguagliato le prestazioni degli agenti che utilizzano modelli proprietari. Grazie all'efficienza degli agenti di codice e ai continui progressi dei modelli open-source, gli sviluppatori possono costruire potenti sistemi di agenti senza affidarsi a servizi closed-source.

Esempio di applicazione degli SmolAgent

In Smolagents, gli agenti sono incapsulati in classi che consentono loro di eseguire compiti specifici. Ad esempio, un agente Agente gestito possono essere creati per gestire varie attività utilizzando diversi tipi di agenti. Ecco un esempio semplificato di come si possono implementare due agenti, uno per la ricerca sul Web e l'altro per la generazione di immagini. Ecco come creare uno strumento personalizzato che ottiene gli orari di viaggio da Google Maps e come utilizzarlo in un agente di pianificazione dei viaggi:

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.")

Dopo alcune fasi di raccolta dei tempi di viaggio e di esecuzione dei calcoli, l'agente restituisce questa proposta finale: Itinerario di un giorno per Parigi in bicicletta:


1. Partenza dalla Torre Eiffel alle 9:00.
2. Visita alla Torre Eiffel fino alle 10:30.
3. Viaggio verso la Cattedrale di Notre-Dame alle 10:46.
4. Visita alla Cattedrale di Notre-Dame fino alle 12:16.
5. Viaggio a Montmartre alle 12:41.
6. Visita di Montmartre fino alle 14:11.
7. Viaggio verso il Jardin du Luxembourg alle 14:33.
8. Visita al Jardin du Luxembourg fino alle 16.03.
9. Viaggio al Museo del Louvre alle 16:12.
10. Visita al Museo del Louvre fino alle 17:42.
11. Pausa pranzo fino alle 18:12.
12. Orario di fine previsto: 18:12.

Dopo aver costruito uno strumento, condividerlo nell'Hub è semplicissimo:

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

Risorse di SmolAgents

Domande frequenti sugli smolagent

smolagents è una libreria di agenti AI minimalista sviluppata dal team di Hugging Face. Consente agli sviluppatori di creare ed eseguire potenti agenti di intelligenza artificiale con un codice minimo. Concentrandosi sulla semplicità e sull'efficienza, smolagents consente ai modelli linguistici di grandi dimensioni (LLM) di interagire senza problemi con le attività del mondo reale.

A differenza di molti framework di agenti di intelligenza artificiale che presentano astrazioni e configurazioni complesse, smolagents mantiene una base di codice compatta di circa 1.000 linee. Enfatizza la facilità d'uso e supporta gli agenti di codice, dove gli agenti eseguono direttamente frammenti di codice Python, migliorando l'efficienza e riducendo il numero di passaggi necessari e di chiamate LLM.

 Gli agenti di codice sono una caratteristica fondamentale di smolagent. Invece di generare azioni come JSON o blob di testo, gli agenti di codice scrivono ed eseguono frammenti di codice Python per eseguire le attività. Questo approccio sfrutta la capacità dell'LLM di generare e comprendere il codice, offrendo una migliore componibilità e flessibilità nell'espressione di logiche complesse.

È possibile installare smolagents utilizzando pip con il comando:

复制pip installare smolagents

Per iniziare, definire un agente importando le classi necessarie, fornire gli strumenti e il modello LLM richiesti ed eseguire le attività. Ad esempio:

python复制da smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel

agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel())
agent.run("Il vostro compito qui")

 smolagents è progettato per un'ampia compatibilità con i LLM. Si integra perfettamente con i modelli ospitati su Hugging Face Hub tramite Transformers, nonché con i modelli di OpenAI, Anthropic e altri attraverso l'integrazione con LiteLLM. Questa flessibilità consente di scegliere l'LLM più adatto alle esigenze del progetto.

 Sì, oltre agli agenti di codice, smolagents supporta gli agenti di chiamata di strumenti tradizionali. In questa modalità, le azioni sono scritte come JSON o blob di testo, il che può essere adatto a scenari specifici in cui l'esecuzione di frammenti di codice potrebbe non essere ideale.

 smolagents dà priorità all'esecuzione sicura del codice supportando ambienti sandbox. Ad esempio, può utilizzare E2B (Execution to Binary), che fornisce un ambiente sicuro e isolato per l'esecuzione di frammenti di codice. Questo garantisce che l'esecuzione del codice non comprometta la sicurezza del sistema host.

 Gli agenti di codice offrono diversi vantaggi:

  • Migliore componibilità: Il codice consente naturalmente l'annidamento e il riutilizzo delle funzioni, facilitando l'espressione di logiche complesse.
  • Gestione efficiente degli oggetti: La gestione e il passaggio di oggetti è più semplice nel codice rispetto a JSON.
  • Alta flessibilità: Il codice può rappresentare qualsiasi operazione di calcolo, offrendo un'immensa versatilità.
  • Utilizzo di dati di formazione ricchi: Poiché i LLM sono addestrati su grandi quantità di codice, sono abili nel generare e comprendere gli snippet di codice.

 smolagents è profondamente integrato con Hugging Face Hub, che consente agli sviluppatori di condividere e caricare facilmente gli strumenti. Questo favorisce un ecosistema collaborativo in cui gli strumenti e le risorse possono essere apportati e accessibili dalla comunità, migliorando la funzionalità e la portata di smolagents.

Per saperne di più sugli smolagent, potete consultare le seguenti risorse:

  • Documentazione ufficiale: Visitate la documentazione di smolagents sul sito Sito web di Hugging Face.
  • Guide introduttive: Consultate le guide introduttive e le esercitazioni fornite dal team di Hugging Face.
  • Progetti di esempio: Esplorate i progetti campione e gli esempi di codice su GitHub per vedere smolagent in azione.
  • Forum della comunità: Impegnarsi con la comunità degli sviluppatori attraverso forum e discussioni per ottenere approfondimenti e supporto.

Choose from Your languange