Creare un Agente AI da Zero (Guida Passo Passo)
Questa nota di insight su YouTube è stata creata con LilysAI. Iscriviti gratis e ottieni insight 10× più rapidi e approfonditi dai video.
Q: Come costruire un agente AI da zero?
Q: Cos'è un agente AI e perché è utile?
Questo video mostra come creare un agente AI da zero, integrando un Large Language Model (LLM) con la capacità di chiamare strumenti esterni per recuperare dati in tempo reale, come le previsioni meteo. Imparerai a gestire le decisioni dell'agente, se rispondere direttamente o utilizzare un tool, e a costruire un'interfaccia utente da riga di comando per interagire con esso, dimostrando il potere del tool calling per espandere le capacità dell'IA.
1. Cos'è un Agente AI e Come Funziona
1.1. Definizione di Agente AI
- Un agente AI è un sistema che integra un LLM con la capacità di chiamare strumenti esterni per ottenere dati in tempo reale, come le previsioni del tempo.
- Questo permette all'agente di elaborare input in modo intelligente e decidere autonomamente se rispondere direttamente o utilizzare uno strumento.
- Ad esempio, un agente meteo può recuperare dati aggiornati sul tempo, ma può anche rispondere a domande semplici come "2 + 2" senza bisogno di strumenti esterni.
- L'LLM possiede una propria "mente", e il tool calling espande le sue capacità, trasformandolo in un assistente più potente.
2. Creazione di un Agente Meteo AI da Zero
2.1. Configurazione del Progetto e delle Dipendenze
- Il progetto inizia con la creazione di una cartella e l'inizializzazione di un nuovo progetto Node.js eseguendo
npm init -yper generare un filepackage.json. - Viene creato un file
index.jsper contenere il codice principale dell'agente. - Sono necessarie le seguenti librerie Node.js:
dotenvper gestire le chiavi API in modo sicuro.axiosper effettuare chiamate API esterne (tool calling).readline(integrato in Node.js) per acquisire input dall'utente tramite la riga di comando.
- Le dipendenze vengono installate eseguendo
npm install dotenv axios.
2.2. Inizializzazione del Client OpenAI
- Per interagire con OpenAI, è necessario inizializzare il client
OpenAIpassando la propria chiave API. - La chiave API OpenAI viene memorizzata in un file
.envper motivi di sicurezza. - Le chiavi API possono essere generate accedendo alla piattaforma API di OpenAI, creando una nuova chiave segreta e copiandola.
- È importante notare che l'utilizzo dell'API OpenAI non è gratuito e richiede un saldo disponibile.
2.3. Definizione della Funzione per il Recupero Dati Meteo
- Viene creata una funzione chiamata
get_current_weather_datache accetta unalocationcome parametro. - Questa funzione utilizza
axiosper effettuare una chiamata API a un servizio meteo esterno, recuperando i dati meteorologici per la località specificata. - È incluso un blocco
catchper gestire eventuali errori durante la chiamata API e registrarli.
2.4. Gestione dell'Interazione con l'Utente (Chat Loop)
- Viene definita una funzione
chat_loopche utilizza il moduloreadlineper acquisire l'input dell'utente dalla riga di comando. - Se l'input dell'utente, convertito in minuscolo, è "exit", il loop viene interrotto, viene stampato "goodbye" e la lettura da riga di comando viene chiusa.
- In caso contrario, l'input dell'utente viene passato alla funzione
run_conversationinsieme alla cronologia delle conversazioni. - La risposta ricevuta dall'agente viene stampata come output dell'assistente e aggiunta alla cronologia della conversazione.
- La cronologia della conversazione è un array che memorizza sia gli input dell'utente (
role: user) sia le risposte dell'assistente (role: assistant). - In caso di errore durante l'elaborazione, viene visualizzato un messaggio di scuse e il
chat_loopviene richiamato per continuare l'interazione.
2.5. Funzione di Esecuzione della Conversazione con OpenAI
- La funzione
run_conversationriceve il messaggio dell'utente e la cronologia della conversazione. - Viene preparato un array di messaggi da inviare a OpenAI, includendo la cronologia e il nuovo input dell'utente con il ruolo di "user".
- Viene definita una struttura per il tool calling, che è un array di oggetti, poiché possono esserci più strumenti disponibili.
- Ogni strumento ha un
type(funzione), unname(che deve corrispondere esattamente al nome della funzione JavaScript che esegue l'azione), unadescription(spiega all'AI quando usare lo strumento e cosa fa) eparameters(descrive gli argomenti richiesti dallo strumento, come lalocationper il meteo). - Viene effettuata una chiamata a
openai.completions.createpassando:- Il
model(es.gpt-4o). - I
messagespreparati in precedenza. - Gli
toolsdefiniti. tool_choice: "auto"per permettere all'AI di decidere se e quale strumento chiamare.
- Il
- Dopo la chiamata, si controlla se la risposta contiene
tool_calls(ovvero, se l'AI ha deciso di usare uno strumento). - Se vengono rilevate
tool_calls:- Si itera attraverso le chiamate allo strumento.
- Si verifica se il nome della funzione dello strumento corrisponde a
get_current_weather_data. - Viene eseguita la funzione JavaScript
get_weather_datapassando gli argomenti estratti dalla risposta dell'AI (es. lalocation, che potrebbe richiedereJSON.parsese è una stringa JSON). - L'output dello strumento viene aggiunto alla cronologia dei messaggi come una risposta dell'assistente, includendo
tool_call_id,tool,function_nameecontent(l'output dell'API meteo). - Questa nuova sequenza di messaggi viene inviata nuovamente a OpenAI per consentire all'AI di formulare la risposta finale all'utente.
- Viene restituito il messaggio finale generato da OpenAI.
- Se non ci sono
tool_calls(l'AI risponde direttamente), viene restituito il messaggio originale della risposta di OpenAI. - In caso di errori durante l'interazione con OpenAI, viene registrato l'errore e restituito un messaggio di scuse all'utente.
- Sia le risposte dirette che quelle derivanti dal tool calling vengono aggiunte alla cronologia della conversazione.
2.6. Esecuzione e Test dell'Agente AI
- Per eseguire lo script, viene aggiunto uno script
devnelpackage.json(node index.js). - Durante l'esecuzione, potrebbero verificarsi errori comuni come la necessità di specificare
"type": "module"nelpackage.jsonse si utilizzano importazioni ES6, o errori di variabili non definite comeRLse l'interfacciareadlinenon è stata creata correttamente. - Dopo aver corretto gli errori, l'agente viene testato con diverse domande:
- "What is the weather in Delhi?" (Qual è il tempo a Delhi?) -> L'agente rileva la necessità di una chiamata allo strumento, esegue
get_weather_dataper Delhi e risponde con la temperatura attuale (es. 31°C). - "What is 2 + 2?" (Quanto fa 2 + 2?) -> L'agente risponde direttamente "4" senza utilizzare strumenti, dimostrando la sua capacità decisionale.
- "And in Paris?" (E a Parigi?) -> L'agente recupera e fornisce la temperatura attuale a Parigi (es. 20°C).
- "What is the weather in Delhi?" (Qual è il tempo a Delhi?) -> L'agente rileva la necessità di una chiamata allo strumento, esegue
- Il codice sorgente completo è disponibile su GitHub per consentire ad altri di provare a creare i propri agenti AI.
2.7. Riepilogo del Processo di Costruzione
- Il processo inizia con la configurazione di un file
.envper la chiave API OpenAI. - Segue l'inizializzazione del client OpenAI e la definizione di funzioni per le chiamate API (come il recupero dati meteo) all'interno di blocchi
try-catch. - Viene creata un'interfaccia
readlineper gestire l'input dell'utente dalla riga di comando, passando l'input a una funzione che gestisce la conversazione e mantiene la cronologia. - Gli strumenti che l'AI può utilizzare vengono definiti con nome, descrizione e parametri.
- L'AI viene chiamata due volte: la prima volta per decidere se rispondere direttamente o usare uno strumento, e la seconda volta (dopo l'esecuzione dello strumento, se necessario) per formulare la risposta finale all'utente.
- La gestione degli errori è implementata per fornire feedback all'utente in caso di problemi.
2.8. Risorse Aggiuntive e Conclusione
- È possibile connettersi con l'autore per interviste simulate o discussioni tramite un link fornito (es. top.gg).
- Il video incoraggia gli spettatori a mettere "mi piace" e iscriversi se hanno imparato qualcosa di nuovo.
Comprendi enormi quantità di materiale come un genio — con LilysAI
Oltre 1.000.000 di cercatori di conoscenza usano Lilys AI.
