Programma
Gli agenti IA sono assistenti in grado di svolgere compiti e interagire con il mondo. A differenza dei sistemi tradizionali che seguono regole fisse, possono imparare e adattarsi a nuove situazioni. Pensali come programmi software che possono percepire l'ambiente e intraprendere azioni.
Ma cosa distingue gli agenti IA da altre entità di IA, come i popolari modelli linguistici di cui abbiamo tutti sentito parlare?
In questo articolo risponderò a questa domanda e presenterò CrewAI, un framework Python gratuito e open-source progettato per semplificare lo sviluppo di sistemi IA multi-agente. Esploreremo la distinzione tra agenti e modelli linguistici, discuteremo perché i framework per agenti sono importanti per sviluppare applicazioni di IA e mostreremo come CrewAI consente agli agenti di collaborare e ottenere ottimi risultati.
Agenti IA vs LLM
Sfatiamo un equivoco comune sulla differenza tra agenti e large language model (LLM). Entrambi appartengono alla famiglia dell'intelligenza artificiale, ma possiedono capacità distinte.

I modelli linguistici, come ChatGPT e Gemini, sono estremamente abili nell'uso del linguaggio. Sono stati addestrati su enormi quantità di testo e codice, acquisendo la capacità di comprendere e produrre linguaggio molto simile alla comunicazione umana.
Gli LLM sono i maestri di parole dell'intelligenza artificiale: producono un'ampia gamma di contenuti, tra cui traduzioni, riassunti, narrazioni creative o persino poesia. Il loro ambito è tipicamente limitato ai compiti legati al linguaggio.
Gli agenti, invece, sono focalizzati principalmente sull'azione. Sono in grado di navigare, interagire con gli oggetti e prendere decisioni in base alle loro percezioni.
In breve, i modelli linguistici sono il cervello e gli agenti sono le mani. Insieme formano una coppia potente.
Dunque, con gli agenti che svolgono un ruolo così vitale nelle applicazioni di IA, come gestiamo la complessità quando più agenti devono lavorare insieme? È qui che entrano in gioco i framework per agenti.
La necessità di un framework per agenti
La necessità di framework per agenti nasce dalla crescente complessità delle applicazioni di IA, in particolare quelle che coinvolgono più agenti che lavorano in collaborazione per raggiungere un obiettivo comune. Vediamo perché i framework per agenti sono essenziali.
Orchestrazione e coordinamento
Man mano che i sistemi di IA crescono di scala, spesso includono numerosi agenti con capacità diverse. Gestire queste interazioni e assicurarsi che lavorino in armonia diventa sempre più difficile.
I framework per agenti offrono un ambiente strutturato che consente l'orchestrazione delle attività degli agenti, definendo ruoli e responsabilità e migliorando la comunicazione.
Nei sistemi multi-agente, un aspetto importante è l'allocazione efficiente dei compiti agli agenti più adatti e la gestione efficace delle risorse condivise. I framework per agenti forniscono meccanismi dinamici per l'assegnazione dei compiti, la negoziazione delle risorse e la risoluzione dei conflitti.
Modularità e riutilizzo
I framework per agenti promuovono un approccio modulare allo sviluppo di IA, in cui gli agenti sono progettati e implementati come componenti indipendenti. Questa modularità consente una migliore organizzazione del codice e permette di riutilizzare i moduli degli agenti in vari progetti, semplificando così lo sviluppo e la manutenzione di sistemi complessi. Con questa struttura basata su componenti, gli sviluppatori di IA possono concentrarsi sui singoli agenti senza interrompere il sistema più ampio.
Inoltre, i framework per agenti spesso adottano un'architettura basata sui ruoli, consentendo agli sviluppatori di assegnare ruoli specifici agli agenti, che definiscono le loro capacità e autorizzazioni. Questo design basato sui ruoli porta a un sistema più organizzato e gestibile, in cui gli agenti possono essere aggiunti, rimossi o modificati con un impatto minimo sull'architettura complessiva. Questa flessibilità garantisce che i sistemi possano evolversi e adattarsi a nuovi requisiti senza un'importante reingegnerizzazione.
Adattabilità e apprendimento
Gli ambienti del mondo reale sono spesso dinamici, imprevedibili e in continua evoluzione. I framework per agenti dotano gli agenti della capacità di percepire i cambiamenti nell'ambiente circostante e adattare di conseguenza i propri comportamenti. Questa adattabilità assicura che gli agenti possano funzionare efficacemente anche in scenari complessi e in costante mutamento, rendendoli più adatti ad affrontare le sfide reali.
Inoltre, i framework per agenti incorporano spesso meccanismi di apprendimento che consentono agli agenti di migliorare le loro prestazioni nel tempo. Imparando dal feedback e dalle esperienze, gli agenti possono ottimizzare continuamente i loro processi decisionali e adattarsi a nuove sfide man mano che emergono. Questo miglioramento continuo permette agli agenti di diventare più efficaci e preziosi, contribuendo all'efficienza e al successo a lungo termine del sistema.
E a proposito di framework per agenti, presentiamone uno che sta facendo parlare di sé nella community dell'IA: CrewAI.
Che cos'è CrewAI?
CrewAI è un framework Python open-source costruito attorno a due blocchi complementari:
- Crews — team di agenti IA che collaborano in modo autonomo tramite decisioni basate sui ruoli — e
- Flows — workflow pronti per la produzione, guidati da eventi, che ti danno il controllo sulle automazioni.
Insieme, ti permettono di costruire qualsiasi cosa, da una semplice pipeline di ricerca a un sistema multi-agente completamente autonomo.

Questo framework include una gamma di strumenti, tra cui motori di ricerca web e modelli linguistici, che consentono agli agenti di interagire con il mondo esterno, raccogliere informazioni e agire per raggiungere i propri obiettivi.
Il design e la scalabilità di CrewAI lo rendono perfetto per sviluppare sia applicazioni multi-agente di base sia complesse, promuovendo un approccio collaborativo all'affrontare le sfide e a prendere decisioni all'interno dei sistemi di IA.
Diamo un'occhiata ad alcune delle funzionalità chiave che rendono CrewAI uno strumento potente per costruire sistemi multi-agente.
- Orchestrazione degli agenti: CrewAI assicura che ogni agente conosca la propria parte nello spettacolo. Fornisce gli strumenti per definire e coordinare i comportamenti degli agenti, facendo sì che tutti suonino all'unisono.
- Architettura basata sui ruoli: Come assegnare strumenti diversi ai musicisti, CrewAI ti consente di assegnare ruoli specifici agli agenti, definendone capacità e permessi. Questo crea un sistema modulare e ben strutturato, anche quando le cose si complicano.
- Comunicazione flessibile: CrewAI supporta vari canali di comunicazione, consentendo agli agenti di scambiarsi informazioni senza attriti. Pensalo come avere una chat privata, una discussione di gruppo e un megafono tutto in uno.
- Integrazione degli strumenti: CrewAI permette agli agenti di interagire con il mondo tramite vari strumenti. Questi strumenti consentono agli agenti di cercare sul web, comprendere il linguaggio, analizzare i dati ed eseguire compiti personalizzati.
- Scalabilità: CrewAI è progettato per scalare senza sforzo, assicurando che il tuo sistema multi-agente rimanga reattivo ed efficiente man mano che cresce.
Ma quali benefici porta concretamente CrewAI? Esploriamone i vantaggi.
CrewAI Flows e Crews
CrewAI è costruito attorno a due blocchi complementari che lavorano insieme per gestire tutto, dai semplici compiti degli agenti fino a pipeline di produzione complesse.
Le Crews sono team di agenti IA che collaborano in modo autonomo. Ogni agente in una Crew ha un ruolo, un obiettivo e una backstory definiti — e lavorano insieme per completare i compiti, delegare tra loro e prendere decisioni senza che tu debba scrivere ogni singolo passaggio. Una Crew è quello a cui ricorri quando vuoi che gli agenti capiscano come portare a termine qualcosa.
I Flows sono il livello di orchestrazione sopra le Crews. Un Flow ti permette di concatenare più Crews, aggiungere logica condizionale tra i passaggi, gestire lo stato lungo la pipeline e attivare azioni in base agli eventi. Dove una Crew ti dà autonomia, un Flow ti dà controllo.
| Crews | Flows | |
|---|---|---|
| Ideale per | Compiti autonomi e collaborativi tra agenti | Pipeline multi-fase con esecuzione controllata |
| Livello di controllo | Guidato dagli agenti | Definito dallo sviluppatore |
| Usa quando | Vuoi che gli agenti capiscano il come | Devi controllare il cosa, quando e se |
Per la maggior parte dei principianti, inizierai con le Crews. Solo quando ti serve affidabilità a livello di produzione userai i Flows. I Flows sono il modo per scalare.
Vantaggi dell'uso di CrewAI
CrewAI consente a più agenti IA di collaborare, condividere conoscenze e coordinare le proprie azioni verso un obiettivo comune.
Automatizzando la distribuzione dei compiti e la gestione delle risorse, CrewAI permette agli agenti di concentrarsi sui propri ruoli specifici con un sovraccarico minimo.
Il framework supporta anche l'adattabilità, consentendo agli agenti di regolare il proprio comportamento in base a condizioni o obiettivi che cambiano.
Inoltre, CrewAI semplifica il processo di sviluppo con una piattaforma intuitiva per creare e gestire sistemi multi-agente.

Un altro punto di forza di CrewAI è la sua integrazione con un'ampia gamma di strumenti. Questo estende le capacità degli agenti, consentendo loro di interagire con il mondo esterno e raccogliere informazioni.
CrewAI supporta strumenti come motori di ricerca web, modelli linguistici, tool di analisi dei dati e perfino funzionalità personalizzate. Questo permette agli agenti di svolgere compiti oltre le loro capacità di base, come recuperare informazioni dal web o eseguire analisi dati complesse.
Pratica: creare uno strumento di ricerca web con CrewAI
Rimbocchiamoci le maniche e costruiamo un workflow usando gli strumenti di CrewAI per fare scraping dei contenuti di un sito web e poi eseguire RAG su di essi.
Dobbiamo scrivere il codice che farà funzionare lo strumento. Prima di iniziare, installiamo i pacchetti crewai-tools e crewai usando pip:
# Install CrewAI with tools support
pip install 'crewai[tools]'
# Or using uv (recommended by CrewAI for dependency management)
uv add 'crewai[tools]'
Una volta installati i pacchetti, segui i passaggi qui sotto. In questo esempio useremo tre strumenti diversi: ScrapeWebsiteTool per fare lo scraping del sito, FileWriterTool per scrivere il file e TXTSearchTool per cercare il contesto per il RAG. Iniziamo.
Passaggio 1: fare scraping di un sito web
Per prima cosa importiamo le librerie necessarie e inizializziamo ScrapeWebsiteTool. Questo strumento viene usato per estrarre contenuti da un sito. In questo caso è impostato per prelevare contenuti dalla pagina "Artificial Intelligence" di Wikipedia:
from crewai_tools import ScrapeWebsiteTool, FileWriterTool, TXTSearchTool
import requests
# Initialize the tool, potentially passing the session
tool = ScrapeWebsiteTool(website_url='https://en.wikipedia.org/wiki/Artificial_intelligence')
# Extract the text
text = tool.run()
print(text)
Passaggio 2: scrivere il testo estratto su un file
Ora usiamo FileWriterTool per salvare il testo estratto in un file chiamato ai.txt.
# Initialize the tool
file_writer_tool = FileWriterTool()
# Write content to a file in a specified directory
result = file_writer_tool._run(filename='ai.txt', content = text, directory = '', overwrite=True)
print(result)
Passaggio 3: configurare lo strumento di ricerca nel testo
Configuriamo un altro strumento per cercare nel contenuto del file ai.txt appena salvato. Impostiamo anche la variabile d'ambiente per la chiave API di OpenAI.
import os
from crewai_tools import TXTSearchTool
os.environ['OPENAI_API_KEY'] = 'API-KEY'
# Initialize the tool with a specific text file, so the agent can search within the given text file's content
tool = TXTSearchTool(txt='ai.txt')
Passaggio 4: creare un agente per il compito ed eseguirlo
Creiamo un agente data analyst con il ruolo di educatore. Il compito di questo agente è rispondere alla domanda "Che cos'è l'elaborazione del linguaggio naturale?" basandosi sul testo che abbiamo cercato nel file.
from crewai import Agent, Task, Crew
context = tool.run('What is natural language processing?')
data_analyst = Agent(
role='Educator',
goal=f'Based on the context provided, answer the question - What is Natural Language Processing? Context - {context}',
backstory='You are a data expert',
verbose=True,
allow_delegation=False,
tools=[tool]
)
test_task = Task(
description="Using the provided context, answer the question: What is Natural Language Processing?",
tools=[tool],
agent=data_analyst,
expected_output='A clear, 2-3 paragraph explanation of Natural Language Processing, covering its definition, key techniques, and common applications.'
)
crew = Crew(
agents=[data_analyst],
tasks=[test_task]
)
output = crew.kickoff()

Come si confronta CrewAI con LangGraph e AutoGen
Le principali alternative a CrewAI sono LangGraph e AutoGen di Microsoft. Il più grande vantaggio di CrewAI è il suo paradigma di agenti basato sui ruoli. Vale a dire che, definendo agenti con ruoli, obiettivi e backstory, ottieni un comportamento che rispecchia da vicino il modo in cui collaborano i team umani.
LangGraph offre un maggiore controllo sul flusso di esecuzione attraverso un approccio basato su grafi, ma richiede di comprendere concetti come grafi diretti e gestione dello stato. Per la maggior parte degli sviluppatori alle prime armi con i sistemi multi-agente, CrewAI è la via più rapida a un prototipo funzionante.
Conclusione
CrewAI offre una piattaforma pratica per gestire sistemi multi-agente. Che si tratti di fare scraping dei contenuti o di delegare i compiti, questo framework supporta la collaborazione tra agenti e li aiuta ad adattarsi e migliorare.
Integrando strumenti e fornendo una struttura organizzata, CrewAI rende più semplice per gli sviluppatori gestire le interazioni tra agenti, distribuire i compiti e garantire prestazioni ottimali.
Senior GenAI Engineer e Content Creator che ha totalizzato 20 milioni di visualizzazioni condividendo conoscenze su GenAI e data science.


