Pattern di ADK Agentic con memoria e MCP

1. Cosa imparerai a fare

Ti diamo il benvenuto nel corso intensivo ADK: il tuo viaggio nei sistemi multi-agente

Stai per entrare nell'entusiasmante mondo degli agenti AI. Dimentica i semplici chatbot che si limitano a rispondere alle domande. Approfondiremo l'utilizzo di Agent Development Kit (ADK) per creare sistemi autonomi e sofisticati in grado di ragionare, pianificare e utilizzare strumenti per svolgere attività complesse.

cover

Al termine di questo tutorial, sarai in grado di:

  • Creare il tuo primo agente AI: parti da zero e arriva a un agente completamente funzionale in grado di comprendere le esigenze di un utente, utilizzare strumenti come la Ricerca Google e generare risposte dettagliate e utili.
  • Costruire sistemi multi-agente: scopri il pattern "Agente come strumento", un concetto rivoluzionario in cui gli agenti delegano le attività ad altri agenti specializzati, creando un team di esperti di AI che lavorano insieme.
  • Orchestrare workflow complessi: vai oltre la semplice delega e padroneggia pattern avanzati come router, catene sequenziali, cicli ed esecuzione parallela per creare applicazioni robuste, efficienti e intelligenti in grado di gestire quasi tutte le richieste.
  • Fornire memoria agli agenti: comprendi il ruolo fondamentale della memoria conversazionale, che consente agli agenti di gestire le domande di approfondimento, imparare dal feedback e gestire senza problemi le attività in più passaggi.
  • Connetterti a MCP: connettiti al toolbox MCP.

Iniziamo. 🚀

2. Configurare Google Cloud e la chiave API Gemini

Configurare il progetto Google Cloud e la chiave API Gemini

Per alimentare i nostri agenti AI, abbiamo bisogno di due cose: un progetto Google Cloud per fornire le basi e una chiave API Gemini per accedere ai potenti modelli di Google.

Passaggio 1: attiva l'account di fatturazione

Per eseguire questo codelab, devi avere un account di fatturazione con un po' di credito. Per iniziare, utilizza i crediti del banner nella parte superiore di questo codelab. Se hai già un collegamento a un account di fatturazione, puoi saltare questo passaggio.

Passaggio 2: crea un nuovo progetto Google Cloud

  • Vai alla console Google Cloud e crea un nuovo progetto.

creare un nuovo account Google Cloud

  • Vai alla console Google Cloud e crea un nuovo progetto.
  • Apri il riquadro di sinistra, fai clic su Billing e controlla se l'account di fatturazione è collegato a questo account Google Cloud.

Collega l'account di fatturazione all'account Google Cloud

Se vedi questa pagina, controlla il manage billing account, scegli la prova senza costi di Google Cloud e collegala.

Passaggio 3: trova l'ID progetto Google Cloud

👉Fai clic su Attiva Cloud Shell nella parte superiore della console Google Cloud (è l'icona a forma di terminale nella parte superiore del riquadro di Cloud Shell), cloud-shell.png

👉Fai clic sul pulsante "Apri editor" (ha l'aspetto di una cartella aperta con una matita). Verrà aperto l'editor di codice di Cloud Shell nella finestra. A sinistra vedrai un Esplora file. open-editor.png

👉Trova l'ID progetto Google Cloud:

  • Apri la console Google Cloud: link
  • Seleziona il progetto che vuoi utilizzare per questo workshop dal menu a discesa del progetto nella parte superiore della pagina.
  • L'ID progetto viene visualizzato nella scheda Informazioni sul progetto della dashboard

03-04-project-id.png

👉💻 Nel terminale, verifica di aver già eseguito l'autenticazione e che il progetto sia impostato sull'ID progetto utilizzando il seguente comando:

gcloud auth list

👉💻 Clona il progetto di bootstrap da GitHub:

git clone https://github.com/cuppibla/adk_tutorial.git

👉💻 Esegui lo script di inizializzazione. Questo script ti chiederà di inserire l'ID progetto Google Cloud. Quando richiesto dallo script setup_venv.sh, inserisci l'ID progetto Google Cloud che hai trovato nel passaggio precedente.

cd ~/adk_tutorial
./setup_venv.sh

gcloud services enable  compute.googleapis.com \
                        artifactregistry.googleapis.com \
                        run.googleapis.com \
                        iam.googleapis.com \
                        aiplatform.googleapis.com \
                        cloudresourcemanager.googleapis.com

3. Sessione 1: il tuo primo agente in ADK Web

Apri ADK Web eseguendo:

cd ~/adk_tutorial
source .adk_env/bin/activate
adk web

Dopo aver eseguito i comandi, dovresti vedere un output nel terminale che indica che il server web ADK è stato avviato, simile a questo:

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://localhost:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

👉 Poi, per accedere all'UI di sviluppo ADK dal browser:

Dall'icona Anteprima web (spesso ha l'aspetto di un occhio o di un quadrato con una freccia) nella barra degli strumenti di Cloud Shell (in genere in alto a destra), seleziona Cambia porta. Nella finestra popup, imposta la porta su 8000 e fai clic su "Cambia e visualizza anteprima". Cloud Shell aprirà una nuova scheda o finestra del browser che mostra l'UI di sviluppo ADK.

webpreview

👉 Il rituale di evocazione è completo e l'agente è ora in esecuzione. L'UI di sviluppo ADK nel browser è la tua connessione diretta al Familiar.

Scegli l'agente del workflow parallelo Nel menu a discesa nella parte superiore dell'UI, scegli parallel_agent.

Puoi selezionare il single_agent qui: tracing picture of single agents

Puoi vedere la traccia qui: tracing picture of single agent

👉 Prompt di test:

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art.

4. Sessione 2: agente del workflow: agente sequenziale, agente parallelo, agente di loop

Agente parallelo

Scegli l'agente del workflow parallelo Nel menu a discesa nella parte superiore dell'UI, scegli parallel_agent.

👉 Prompt di test:

Plan my trip to San Francisco, I want to find some good concert, restaurant and museum.

Puoi selezionare parallel_agent qui: tracing picture of parallel agents

Puoi vedere la traccia qui: tracing picture of parallel agents

Agente sequenziale

Scegli l'agente del workflow sequenziale Nel menu a discesa nella parte superiore dell'UI, scegli sequential_agent.

👉 Prompt di test:

Find a good sushi near Standford and tell me how to get there.

Puoi selezionare sequential_agent qui: tracing picture of sequential agents

Puoi vedere la traccia qui: tracing picture of sequential_agent

Agente di loop

Scegli l'agente del workflow di loop Nel menu a discesa nella parte superiore dell'UI, scegli loop_agent.

👉 Prompt di test:

Plan a trip from Sunnyvale to San Francisco today.

Puoi selezionare loop_agent qui: tracing picture of loop agents

Puoi vedere la traccia qui: tracing picture of loop agents

5. Sessione 3: agente personalizzato

Una volta aperta l'UI web ADK, puoi selezionare l'agente Custom_Agent.

👉 Prompt di test:

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art. Make sure within budget of 100 dollars.

Puoi selezionare il Custom_Agent qui: tracing picture of Custom_Agent

Puoi vedere la traccia qui: tracing picture of Custom_Agent

6. Sessione 4: pattern di orchestratore - agente di routing

Una volta aperta l'UI web ADK, puoi selezionare routing_agent.

👉 Prompt di test:

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

Puoi selezionare il routing_agent qui: tracing picture of routing agents

Puoi vedere la traccia qui: tracing picture of routing agents

7. Sessione 5: agente come strumento

Una volta aperta l'UI web ADK, puoi selezionare l'agente Agent_as_tool.

👉 Prompt di test:

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

Puoi selezionare il agent_as_tool qui: tracing picture of agent as tool

Puoi vedere la traccia qui: tracing picture of routing agents

8. Sessione 6: agente con memoria a lungo termine

👉💻 Testa la memoria a lungo termine andando alla cartella e utilizzando il runner per migliorare l'agente:

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 Prompt di test:

I like Art and Italian food.

Quindi, termina la sessione premendo "Ctrl+C". Riavvia la sessione:

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 Prompt di test:

Plan a trip to San Francisco based on my preference.

9. Sessione 7: potenzia l'agente con MCP

Passaggio 1: prepara il database locale

👉💻 Esegui il seguente comando nel terminale

cd ~/adk_tutorial
source .adk_env/bin/activate
chmod +x setup_trip_database.py
./setup_trip_database.py

Passaggio 2: installa ed esegui il server del toolbox MCP

👉💻 Esegui il seguente comando nel terminale

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox

Al termine del download, esegui

chmod +x toolbox

Passaggio 3

In un terminale Esegui il seguente comando

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/mcp_tool_box
./toolbox --tools-file "trip_tools.yaml" --port 7001

In un altro terminale Esegui il seguente comando

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/g_agents_mcp
python main.py