Risponderemo a tutte le tue domande!

Applicazioni e Guide

Come installare CrewAI con la GUI

Le capacità dei modelli di reti neurali crescono di giorno in giorno. Ricercatori e aziende commerciali investono sempre di più nella loro formazione. Ma da soli, questi modelli non possono agire in modo autonomo. Per risolvere compiti specifici, hanno bisogno di una guida: estensione del contesto e definizione della direzione. Questo approccio non è sempre efficiente, soprattutto per problemi complessi.

Ma cosa succederebbe se permettessimo a una rete neurale di agire autonomamente? E se le fornissimo molti strumenti per interagire con il mondo esterno? Si otterrebbe un agente AI in grado di risolvere compiti determinando autonomamente quali strumenti utilizzare. Sembra complicato, ma funziona molto bene. Tuttavia, anche per un utente avanzato, creare un agente AI da zero può essere un compito non banale.

Il motivo è che le librerie più diffuse non dispongono di un'interfaccia grafica. Richiedono l'interazione attraverso un linguaggio di programmazione come Python. Questo innalza drasticamente la soglia di ingresso e rende gli agenti di intelligenza artificiale troppo complessi per un'implementazione indipendente. Questo è esattamente il caso di CrewAI.

Cos'è CrewAI

CrewAI è una libreria molto popolare e comoda, ma non è dotata di un'interfaccia grafica predefinita. Questo ha spinto gli sviluppatori indipendenti a creare un'interfaccia non ufficiale. La natura open source di CrewAI ha reso il compito molto più facile e presto la comunità ha rilasciato il progetto CrewAI Studio.

Sviluppatori e appassionati hanno acquisito una conoscenza più approfondita dell'architettura del sistema e hanno potuto creare strumenti su misura per compiti specifici. Gli utenti abituali potevano creare agenti AI senza scrivere una sola riga di codice. È diventato più facile assegnare compiti e gestire l'accesso alle reti neurali e agli strumenti. È stato inoltre possibile esportare e importare agenti da un server all'altro e condividerli con amici, colleghi o con la comunità open source.

Un altro vantaggio di CrewAI Studio è la sua flessibilità di distribuzione. Può essere installato come una normale applicazione o come un contenitore Docker, il metodo preferito in quanto include tutte le librerie e i componenti necessari per l'esecuzione del sistema.

Installazione

Aggiornare i pacchetti del sistema operativo e le applicazioni installate alle versioni più recenti:

sudo apt update && sudo apt -y upgrade

Utilizzare lo script di installazione automatica dei driver o seguire la nostra guida Installa i driver NVIDIA® in Linux:

sudo ubuntu-drivers autoinstall

Riavviare il server per rendere effettive le modifiche:

sudo shutdown - r now

Dopo la riconnessione via SSH, installare le utility del server web Apache 2, che consentiranno di accedere al generatore di file .htpasswd utilizzato per l'autenticazione di base degli utenti:

sudo apt install -y apache2-utils

Installare Docker Engine utilizzando lo script di shell ufficiale:

curl -sSL https://get.docker.com/ | sh

Aggiungere Docker Compose al sistema:

sudo apt install -y docker-compose

Clonare il repository:

git clone https://github.com/strnad/CrewAI-Studio.git

Navigare nella directory scaricata:

cd CrewAI-Studio

Creare un file .htpasswd per l'utente usergpu. Verrà richiesto di inserire la password due volte:

htpasswd -c .htpasswd usergpu

Ora modificare il file di distribuzione del contenitore. Per impostazione predefinita, ci sono due contenitori:

sudo nano docker-compose.yaml

Cancellare la sezione:

ports:
  - "5432:5432"

E aggiungere il seguente servizio:


nginx:
  image: nginx:latest
  container_name: crewai_nginx
  ports:
    - "80:80"
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf:ro
    - ./.htpasswd:/etc/nginx/.htpasswd:ro
  depends_on:
    - web

Nginx avrà bisogno di un file di configurazione, quindi crearne uno:

sudo nano nginx.conf

Incollare quanto segue:

events {}

http {
  server {
    listen 80;

    location / {
      proxy_pass http://web:8501;

      # WebSocket headers
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      # Forward headers
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;

      auth_basic "Restricted Content";
      auth_basic_user_file /etc/nginx/.htpasswd;
    }
  }
}

Tutte le variabili di servizio importanti per CrewAI sono definite nel file .env. Aprire il file .env_example per modificarlo:

nano .env_example

Aggiungere le seguenti righe:

OLLAMA_HOST="http://open-webui:11434"
OLLAMA_MODELS="ollama/llama3.2:latest"

E aggiungere la configurazione di Postgres:

POSTGRES_USER="admin"
POSTGRES_PASSWORD="your_password"
POSTGRES_DB="crewai_db"
AGENTOPS_ENABLED="False"

Ora copiare il file di esempio e rinominarlo in .env, in modo che il sistema possa leggerlo durante la distribuzione del contenitore:

cp .env_example .env

In questo esempio, utilizzeremo modelli locali con inferenza gestita da Ollama. Si consiglia la nostra guida Open WebUI: Tutto in uno, e durante la distribuzione aggiungere -e OLLAMA_HOST=0.0.0.0 per consentire a CrewAI di connettersi direttamente al contenitore Ollama. Scaricare il modello desiderato (per esempio, llama3.2:latest) tramite WebUI o collegandosi alla console del contenitore ed eseguendo:

ollama pull llama3.2:latest

Una volta che tutto è stato configurato, lanciare il deployment:

sudo docker-compose up -d --build

A questo punto, visitando http://[your_server_ip]/ verranno richieste le credenziali di accesso. Una volta inserite correttamente, apparirà l'interfaccia CrewAI.

Caratteristiche

Esploriamo le entità chiave utilizzate da CrewAI. Questo aiuterà a capire come configurare i flussi di lavoro. L'entità centrale di Agent è un task executor autonomo. Ogni agente ha degli attributi che lo aiutano a svolgere i propri compiti:

  • Role. Una breve descrizione del lavoro, di 2-3 parole.
  • Backstory. Opzionale; aiuta il modello linguistico a capire come l'agente deve comportarsi e su quali esperienze basarsi.
  • Goal. L'obiettivo che l'agente deve perseguire.
  • Allow delegation. Consente all'agente di delegare compiti (o parti di essi) ad altri.
  • Verbose. Indica all'agente di registrare azioni dettagliate.
  • LLM Provider and Model. Specifica il modello e il provider da utilizzare.
  • Temperature. Determina la creatività della risposta. Più alto = più creativo.
  • Max iterations. Numero di tentativi che l'agente ha a disposizione per avere successo, agendo come una salvaguardia (ad esempio, contro i loop infiniti).

Gli agenti operano analizzando iterativamente gli input, ragionando e traendo conclusioni utilizzando gli strumenti disponibili.

L'input è definito da un'entità Task. Ogni compito include una descrizione, un agente assegnato e, facoltativamente, un risultato atteso. Per impostazione predefinita, i compiti vengono eseguiti in modo sequenziale, ma possono essere parallelizzati usando il flag Async execution.

Il lavoro autonomo degli agenti è supportato da Tools che consente l'interazione con il mondo reale. CrewAI include strumenti per la ricerca sul web, il parsing dei siti, le chiamate API e la gestione dei file, migliorando il contesto e aiutando gli agenti a raggiungere gli obiettivi.

Infine, c'è Crew entity che unisce agenti con ruoli diversi in una squadra per affrontare problemi complessi. Possono comunicare, delegare, rivedere e correggere l'un l'altro, formando essenzialmente un'intelligenza collettiva.

Utilizzando

Ora che si ha familiarità con le entità, costruiamo ed eseguiamo un flusso di lavoro minimo di CrewAI. In questo esempio, seguiremo i progressi globali nello sviluppo di farmaci contro il cancro.

Utilizzeremo tre agenti:

  1. Oncology Drug Pipeline Analyst - segue i nuovi sviluppi dalle fasi iniziali alla sperimentazione clinica.
  2. Regulatory and Approval Watchdog - monitora le approvazioni di nuovi farmaci e le modifiche normative.
  3. Scientific Literature and Innovation Scout - analizza le pubblicazioni scientifiche e i brevetti relativi all'oncologia.

Aprire la sezione Agenti e creare il primo agente:

Agent creation

Per ora, utilizziamo il modello llama3.2:latest scaricato in precedenza, ma in uno scenario reale, scegliete quello che meglio si adatta all'attività. Ripetere la procedura per gli altri agenti e passare alla creazione dell'attività.

Task creation

Riunire tutti gli agenti in una squadra e assegnare loro il compito preparato:

Crew creation

Attivare gli strumenti necessari dall'elenco:

Tools selection

Infine, andare alla pagina Kickoff! e fare clic su Run Crew! Dopo alcune iterazioni, il sistema restituirà un risultato, ad esempio:

Example CrewAI result

Prima di concludere, controlliamo la sezione Import/export. Il flusso di lavoro o l'equipaggio possono essere esportati come JSON per essere trasferiti a un altro server CrewAI. È anche possibile creare un'applicazione a pagina singola (SPA) con un solo clic, perfetta per la distribuzione in produzione:

Import and export settings

Conclusione

CrewAI semplifica notevolmente la creazione di agenti AI, consentendo l'integrazione in qualsiasi applicazione o l'utilizzo autonomo. La libreria si basa sull'idea di intelligenza distribuita, in cui ogni agente è un esperto di dominio e la squadra combinata supera un singolo agente generalista.

Essendo scritta in Python, CrewAI si integra facilmente con piattaforme e strumenti di ML. La sua natura open source consente l'estensione attraverso moduli di terze parti. La comunicazione tra agenti riduce l'uso di token distribuendo l'elaborazione del contesto.

Di conseguenza, le attività complesse vengono completate in modo più rapido ed efficiente. La barriera d'ingresso più bassa fornita da CrewAI Studio espande la portata degli agenti AI e dei sistemi multi-agente. Il supporto per i modelli locali garantisce un migliore controllo dei dati sensibili.

Vedi anche:



Aggiornato: 12.08.2025

Pubblicato: 23.07.2025