Creazione di agenti GraphRAG con ADK

1. Panoramica

In questo codelab, creerai un sofisticato sistema di ricerca sugli investimenti multi-agente che combina la potenza di Google Agent Development Kit (ADK), del database a grafi Neo4j e della casella degli strumenti Model Context Protocol (MCP). Questo tutorial pratico mostra come creare agenti intelligenti che comprendono il contesto dei dati tramite le relazioni del grafico e forniscono risposte alle query estremamente accurate.

Perché GraphRAG + sistemi multi-agente?

GraphRAG (Graph-based Retrieval-Augmented Generation) migliora gli approcci RAG tradizionali sfruttando la ricca struttura delle relazioni dei grafi di conoscenza. Invece di cercare solo documenti simili, gli agenti GraphRAG possono:

  • Attraversare relazioni complesse tra entità
  • Comprendere il contesto tramite la struttura del grafico
  • Fornire risultati spiegabili in base ai dati connessi
  • Eseguire il ragionamento multihop nel knowledge graph

I sistemi multi-agente ti consentono di:

  • Decomporre problemi complessi in sotto-attività specializzate
  • Crea applicazioni AI modulari e gestibili
  • Abilitare l'elaborazione parallela e l'utilizzo efficiente delle risorse
  • Creare pattern di ragionamento gerarchico con l'orchestrazione

Cosa creerai

Creerai un sistema completo di ricerca sugli investimenti con:

  1. Agente del database a grafo: esegue query Cypher e comprende lo schema Neo4j
  2. Agente di ricerca degli investitori: scopre le relazioni con gli investitori e i portafogli di investimento
  3. Agente di ricerca sugli investimenti: accede a grafici di conoscenza completi tramite gli strumenti MCP
  4. Agente principale: coordina in modo intelligente tutti gli agenti secondari

Il sistema risponderà a domande complesse come:

  • "Chi sono i principali concorrenti di YouTube?"
  • "Quali aziende sono menzionate con un sentiment positivo a gennaio 2023?"
  • "Chi ha investito in ByteDance e in quali altre aziende ha investito?"

Panoramica dell'architettura

26c67ab72ef077a4.jpeg

In questo codelab imparerai le basi concettuali e l'implementazione pratica della creazione di agenti GraphRAG di livello aziendale.

Cosa imparerai a fare

  • Come creare sistemi multi-agente utilizzando Agent Development Kit (ADK) di Google
  • Come integrare il database di grafici Neo4j con ADK per le applicazioni GraphRAG
  • Come implementare Model Context Protocol (MCP) Toolbox per query di database pre-validate
  • Come creare strumenti e funzioni personalizzati per gli agenti intelligenti
  • Come progettare gerarchie di agenti e pattern di orchestrazione
  • Come strutturare le istruzioni dell'agente per un rendimento ottimale
  • Come eseguire il debug delle interazioni multi-agente in modo efficace

Che cosa ti serve

  • Browser web Chrome
  • Un account Gmail
  • Un progetto Google Cloud con la fatturazione abilitata
  • Conoscenza di base dei comandi del terminale e di Python (utile ma non obbligatoria)

Questo codelab, progettato per sviluppatori di tutti i livelli (inclusi i principianti), utilizza Python e Neo4j nella sua applicazione di esempio. Sebbene una conoscenza di base di Python e dei database grafici possa essere utile, non è necessaria alcuna esperienza precedente per comprendere i concetti o seguire il corso.

2. Informazioni su GraphRAG e sistemi multi-agente

Prima di passare all'implementazione, vediamo i concetti chiave che alimentano questo sistema.

Neo4j è un database a grafo nativo leader che archivia i dati come una rete di nodi (entità) e relazioni (connessioni tra entità), il che lo rende ideale per i casi d'uso in cui la comprensione delle connessioni è fondamentale, ad esempio consigli, rilevamento delle frodi, Knowledge Graph e altro ancora. A differenza dei database relazionali o basati su documenti che si basano su tabelle rigide o strutture gerarchiche, il modello a grafo flessibile di Neo4j consente una rappresentazione intuitiva ed efficiente di dati complessi e interconnessi.

Invece di organizzare i dati in righe e tabelle come i database relazionali, Neo4j utilizza un modello a grafo, in cui le informazioni sono rappresentate come nodi (entità) e relazioni (connessioni tra queste entità). Questo modello rende eccezionalmente intuitivo l'utilizzo di dati intrinsecamente collegati, come persone, luoghi, prodotti o, nel nostro caso, film, attori e generi.

Ad esempio, in un set di dati sui film:

  • Un nodo può rappresentare un Movie, un Actor o un Director
  • Una relazione può essere ACTED_IN o DIRECTED

b340d5e06fac5f47.jpeg

Questa struttura ti consente di porre facilmente domande come:

  • In quali film ha recitato questo attore?
  • Chi ha lavorato con Christopher Nolan?
  • Quali sono i film simili basati su attori o generi condivisi?

Che cos'è GraphRAG?

La Retrieval-Augmented Generation (RAG) migliora le risposte degli LLM recuperando informazioni pertinenti da fonti esterne. La RAG tradizionale in genere:

  1. Incorpora i documenti in vettori
  2. Ricerca vettori simili
  3. Trasferisce i documenti recuperati all'LLM

GraphRAG estende questo concetto utilizzando i grafi della conoscenza:

  1. Incorpora entità e relazioni
  2. Attraversa le connessioni del grafico
  3. Recupera le informazioni contestuali multi-hop
  4. Fornisce risultati strutturati e spiegabili

Perché i grafici per gli agenti AI?

Considera questa domanda: "Chi sono i concorrenti di YouTube e quali investitori hanno finanziato sia YouTube che i suoi concorrenti?"

Cosa succede in un approccio RAG tradizionale:

  • Ricerche di documenti sui concorrenti di YouTube
  • Cerca separatamente le informazioni sugli investitori
  • Difficoltà a collegare queste due informazioni
  • Potrebbe non rilevare le relazioni implicite

Cosa succede in un approccio GraphRAG:

MATCH (youtube:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor:Company)
MATCH (investor:Investor)-[:INVESTED_IN]->(youtube)
MATCH (investor)-[:INVESTED_IN]->(competitor)
RETURN youtube, competitor, investor

Il grafico rappresenta naturalmente le relazioni, rendendo le query multi-hop semplici ed efficienti.

Sistemi multi-agente in ADK

Agent Development Kit (ADK) è il framework open source di Google per la creazione e il deployment di agenti AI di livello di produzione. Fornisce primitive intuitive per l'orchestrazione multi-agente, l'integrazione di strumenti e la gestione del flusso di lavoro, semplificando la composizione di agenti specializzati in sistemi sofisticati. ADK funziona perfettamente con Gemini e supporta il deployment su Cloud Run, Kubernetes o qualsiasi infrastruttura.

Agent Development Kit (ADK) fornisce primitive per la creazione di sistemi multi-agente:

  1. Gerarchia degli agenti:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
    name="RootAgent",
    sub_agents=[
        graph_db_agent,
        investor_agent,
        investment_agent
    ]
)
  1. Agenti specializzati: ogni agente ha
  • Strumenti specifici: funzioni che può chiamare
  • Istruzioni chiare: il suo ruolo e le sue funzionalità
  • Competenza nel dominio: conoscenza del suo settore
  1. Pattern di orchestrazione:
  • Sequenziale: esegui gli agenti in ordine
  • Parallel: Run multiple agents simultaneously
  • Condizionale: route in base al tipo di query

MCP Toolbox per i database

Il Model Context Protocol (MCP) è uno standard aperto per connettere i sistemi di AI a strumenti e origini dati esterni. MCP Toolbox for Databases è l'implementazione di Google che consente la gestione dichiarativa delle query di database, permettendoti di definire query pre-validate e create da esperti come strumenti riutilizzabili. Anziché consentire ai LLM di generare query potenzialmente non sicure, MCP Toolbox fornisce query preapprovate con la convalida dei parametri, garantendo sicurezza, prestazioni e affidabilità, mantenendo al contempo la flessibilità per gli agenti AI.

Approccio tradizionale:

# LLM generates query (may be incorrect/unsafe)
query = llm.generate("SELECT * FROM users WHERE...")
db.execute(query)  # Risk of errors/SQL injection

Approccio MCP:

# Pre-validated query definition
- name: get_industries
  description: Fetch all industries from database
  query: |
    MATCH (i:Industry)
    RETURN i.name, i.id

Vantaggi:

  • Prevalidato da esperti
  • Protezione dagli attacchi di injection
  • Prestazioni ottimizzate
  • Gestito centralmente
  • Riutilizzabile in più agenti

Finalizza la tua creazione

La combinazione di GraphRAG + Multi-Agent Framework di ADK + MCP crea un sistema potente:

  1. L'agente principale riceve la query dell'utente
  2. Inoltra le richieste a un agente specializzato in base al tipo di query
  3. L'agente utilizza gli strumenti MCP per recuperare i dati in modo sicuro
  4. La struttura del grafico fornisce un contesto ricco
  5. L'LLM genera una risposta fondata e spiegabile

Ora che abbiamo compreso l'architettura, iniziamo a creare.

3. Configura il progetto Google Cloud

Crea un progetto

  1. Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud.
  2. Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto .
  3. Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione in Google Cloud. Fai clic su Attiva Cloud Shell nella parte superiore della console Google Cloud. Puoi passare dal terminale Cloud Shell (per eseguire comandi cloud) all'editor (per creare progetti) facendo clic sul pulsante corrispondente in Cloud Shell.

Immagine del pulsante Attiva Cloud Shell

  1. Una volta eseguita la connessione a Cloud Shell, verifica di essere già autenticato e che il progetto sia impostato sul tuo ID progetto utilizzando il seguente comando:
gcloud auth list
  1. Esegui questo comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto.
gcloud config list project
  1. Se il progetto non è impostato, utilizza il seguente comando per impostarlo:
gcloud config set project <YOUR_PROJECT_ID>

Consulta la documentazione per i comandi e l'utilizzo di gcloud.

Ottimo. Ora possiamo passare al passaggio successivo: comprendere il set di dati.

4. Informazioni sul set di dati Aziende

Per questo codelab, utilizziamo un database Neo4j di sola lettura precompilato con dati di investimenti e aziende provenienti dal Knowledge Graph di Diffbot.

Il set di dati contiene:

  • 237.358 nodi che rappresentano:
  • Organizzazioni (aziende)
  • Persone (dirigenti, dipendenti)
  • Articoli (notizie e menzioni)
  • Settori
  • Tecnologie
  • Investitori
  • Relazioni, tra cui:
  • INVESTED_IN - Investment connections
  • COMPETES_WITH - Competitive relationships
  • MENTIONS - Riferimenti agli articoli
  • WORKS_AT - Rapporti di lavoro
  • IN_INDUSTRY - Classificazioni di settore

5c5fee2a9823601f.jpeg

Accedere al database demo

Per questo codelab, utilizzeremo un'istanza demo ospitata. Aggiungi queste credenziali alle tue note:

URI: neo4j+s://demo.neo4jlabs.com
Username: companies
Password: companies
Database: companies

Accesso al browser:

Puoi esplorare i dati visivamente all'indirizzo: https://demo.neo4jlabs.com:7473

Accedi con le stesse credenziali e prova a eseguire:

// Sample query to explore the graph
MATCH (o:Organization)-[:HAS_COMPETITOR]->(competitor:Organization)
RETURN o.name, competitor.name
LIMIT 10

Visualizzare la struttura del grafico

Prova questa query in Neo4j Browser per visualizzare i pattern di relazione:

// Find investors and their portfolio companies
MATCH (investor:Organization)-[:HAS_INVESTOR]->(company:Organization)
WITH investor, collect(company.name) as portfolio
RETURN investor.name, size(portfolio) as num_investments, portfolio
ORDER BY num_investments DESC
LIMIT 5

Questa query restituisce i 5 investitori più attivi e i loro portafogli.

Perché questo database per GraphRAG?

Questo set di dati è perfetto per dimostrare GraphRAG perché:

  1. Relazioni avanzate: connessioni complesse tra entità
  2. Dati reali: aziende, persone e articoli di notizie reali
  3. Query multi-hop: richiedono l'attraversamento di più tipi di relazione
  4. Dati temporali: articoli con timestamp per l'analisi basata sul tempo
  5. Analisi del sentiment: punteggi del sentiment precalcolati per gli articoli

Ora che hai compreso la struttura dei dati, configuriamo l'ambiente di sviluppo.

5. Clona il repository e configura l'ambiente

Clona il repository

Nel terminale Cloud Shell, esegui:

# Clone the repository
git clone https://github.com/sidagarwal04/neo4j-adk-multiagents.git

# Navigate into the directory
cd neo4j-adk-multiagents

Esplora la struttura del repository

Dedica un momento a comprendere il layout del progetto:

neo4j-adk-multiagents/
├── investment_agent/       # Main agent code
   ├── agent.py           # Agent definitions
   ├── tools.py           # Custom tool functions
   └── .adk/              # ADK configuration
       └── tools.yaml     # MCP tool definitions
├── main.py                # Application entry point
├── setup_tools_yaml.py    # Configuration generator
├── requirements.txt       # Python dependencies
├── example.env           # Environment template
└── README.md             # Project documentation

Configura l'ambiente virtuale

Prima di creare e attivare gli ambienti virtuali Python, assicurati di aver già installato il pacchetto uv nel tuo sistema:

# Install uv if not already installed
pip install uv

Crea e attiva un ambiente virtuale Python utilizzando uv:

# Create virtual environment
uv venv

# Activate the environment
source .venv/bin/activate  # On macOS/Linux
# or
.venv\Scripts\activate  # On Windows

Dovresti vedere (.venv) anteposto al prompt del terminale.

Installa le dipendenze

Installa tutti i pacchetti richiesti:

uv pip install -r requirements.txt

Le dipendenze chiave includono:

google-adk>=1.21.0          # Agent Development Kit
neo4j>=6.0.3               # Neo4j Python driver
python-dotenv>=1.0.0       # Environment variables

Configura le variabili di ambiente

  1. Crea il file .env:
cp example.env .env
  1. Modifica il file .env:

Se utilizzi Cloud Shell, fai clic su Apri editor nella barra degli strumenti, poi vai a .env e aggiorna:

# Neo4j Configuration (Demo Database)
NEO4J_URI=neo4j+ssc://demo.neo4jlabs.com
NEO4J_USERNAME=companies
NEO4J_PASSWORD=companies
NEO4J_DATABASE=companies

# Google AI Configuration
# Choose ONE of the following options:

# Option 1: Google AI API (Recommended)
GOOGLE_GENAI_USE_VERTEXAI=0
GOOGLE_API_KEY=your_api_key_here  # Get from https://aistudio.google.com/app/apikey

# Option 2: Vertex AI (If using GCP)
# GOOGLE_GENAI_USE_VERTEXAI=1
# GOOGLE_CLOUD_PROJECT=your-project-id
# GOOGLE_CLOUD_LOCATION=us-central1

# ADK Configuration
GOOGLE_ADK_MODEL=gemini-3-pro-preview  # or gemini-3-flash-preview

# MCP Toolbox Configuration
MCP_TOOLBOX_URL=https://toolbox-990868019953.us-central1.run.app/mcp/sse
  1. Configurazione di MCP Toolbox (preconfigurata, non è necessario eseguirla):

In questo lab, MCP Toolbox è già ospitata e preconfigurata, quindi non devi generare o gestire un file tools.yaml localmente.

Normalmente, esegui il seguente comando per generare tools.yaml dalle variabili di ambiente dopo aver aggiornato investment_agent/.adk/tools.yaml.template in base alle esigenze:

python setup_tools_yaml.py

In questo modo viene generato investment_agent/.adk/tools.yaml con le tue credenziali Neo4j configurate correttamente per MCP Toolbox.

Esegui lo script precedente solo se:

  • Esegui l'hosting autonomo di MCP Toolbox
  • Ti stai connettendo a un database o a un set di dati Neo4j diverso
  • Vuoi definire strumenti o credenziali personalizzati

In questi casi, l'URL di MCP Toolbox e la configurazione di tools.yaml dovranno essere aggiornati di conseguenza.

Verifica la configurazione

Verifica che tutto sia configurato correttamente:

# Verify .env file exists
ls -la .env

# Verify tools.yaml was generated
ls -la investment_agent/.adk/tools.yaml

# Test Python environment
python -c "import google.adk; print('ADK installed successfully')"

# Test Neo4j connection
python -c "from neo4j import GraphDatabase; print('Neo4j driver installed')"

Il tuo ambiente di sviluppo è ora completamente configurato. Successivamente, esamineremo l'architettura multi-agente.

6. Informazioni sull'architettura multi-agente

Il sistema a quattro agenti

Il nostro sistema di ricerca sugli investimenti utilizza un'architettura multi-agente gerarchica con quattro agenti specializzati che lavorano insieme per rispondere a query complesse su aziende, investitori e market intelligence.

                ┌──────────────┐
                │  Root Agent  │ ◄── User Query
                └──────┬───────┘
                       │
      ┌────────────────┼────────────────┐
      │                │                │
┌─────▼─────┐     ┌────▼─────┐     ┌────▼──────────┐
│ Graph DB  │     │ Investor │     │  Investment   │
│  Agent    │     │ Research │     │  Research     │
└───────────┘     │  Agent   │     │  Agent        │
                  └──────────┘     └───────────────┘
  1. Agente principale (orchestratore):

L'agente root funge da coordinatore intelligente dell'intero sistema. Riceve le query degli utenti, analizza l'intento e indirizza le richieste all'agente specializzato più appropriato. Consideralo un project manager che sa quale membro del team è più adatto a ogni attività. Gestisce anche l'aggregazione delle risposte, la formattazione dei risultati come tabelle o grafici quando richiesto e il mantenimento del contesto conversazionale in più query. L'agente principale preferisce sempre gli agenti specializzati rispetto all'agente di database generale, garantendo che le query vengano gestite dal componente più esperto disponibile.

  1. Agente del database a grafo:

L'agente del database a grafo è la tua connessione diretta alle potenti funzionalità grafiche di Neo4j. Comprende lo schema del database, genera query Cypher dal linguaggio naturale ed esegue attraversamenti complessi del grafico. Questo agente è specializzato in domande strutturali, aggregazioni e ragionamenti multi-hop nel knowledge graph. È l'esperto di fallback quando le query richiedono una logica personalizzata che gli strumenti predefiniti non sono in grado di gestire, il che lo rende essenziale per l'analisi esplorativa e le query analitiche complesse che non erano previste nella progettazione del sistema.

  1. Agente di ricerca per gli investitori:

L'agente di ricerca sugli investitori si concentra esclusivamente sulle relazioni di investimento e sull'analisi del portafoglio. Può scoprire chi ha investito in società specifiche utilizzando la corrispondenza esatta del nome, recuperare portafogli di investitori completi che mostrano tutti i loro investimenti e analizzare i modelli di investimento nei vari settori. Questa specializzazione lo rende estremamente efficiente nel rispondere a domande come "Chi ha investito in ByteDance?" o "In che altro ha investito Sequoia Capital?" L'agente utilizza funzioni Python personalizzate che eseguono query direttamente nel database Neo4j per le relazioni correlate agli investitori.

  1. Investment Research Agent:

L'agente di ricerca sugli investimenti utilizza la casella degli strumenti Model Context Protocol (MCP) per accedere a query pre-convalidate e create da esperti. Può recuperare tutti i settori disponibili, recuperare le aziende all'interno di settori specifici, trovare articoli con analisi del sentiment, scoprire le menzioni di organizzazioni nelle notizie e ottenere informazioni sulle persone che lavorano nelle aziende. A differenza dell'agente del database a grafo che genera query in modo dinamico, questo agente utilizza query predefinite sicure e ottimizzate, gestite e convalidate centralmente. Ciò lo rende sicuro e performante per i flussi di lavoro di ricerca comuni.

7. Esecuzione e test del sistema multi-agente

Avvia l'applicazione

Ora che hai compreso l'architettura, eseguiamo il sistema completo e interagiamo con esso.

Avvia l'interfaccia web di ADK:

# Make sure you're in the project directory with activated virtual environment
cd ~/neo4j-adk-multiagents
source .venv/bin/activate  # If not already activated
# Launch the application
uv run adk web

Dovresti visualizzare un output simile al seguente:

INFO:     Started server process [2542]
INFO:     Waiting for application startup.

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

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

Una volta avviato correttamente il server, apri il browser e vai a http://127.0.0.1:8000 per accedere all'applicazione.

Query di test e comportamento previsto

Esploriamo le funzionalità del sistema con query progressivamente più complesse:

Query di base (singolo agente)

Query 1: Discover Industries

What industries are available in the database?

Comportamento previsto:

  • L'agente principale indirizza all'agente di ricerca sugli investimenti
  • Utilizza lo strumento MCP: get_industries()
  • Restituisce un elenco formattato di tutti i settori

Cosa osservare:

Nell'interfaccia utente dell'ADK, espandi i dettagli dell'esecuzione per visualizzare:

  • Decisione sulla selezione dell'agente
  • Chiamata allo strumento: get_industries()
  • Risultati non elaborati di Neo4j
  • Risposta formattata

Query 2: Find Investors

Who invested in ByteDance?

Comportamento previsto:

  • L'agente principale identifica questa query come correlata agli investitori
  • Percorsi per l'agente di ricerca degli investitori
  • Utilizza lo strumento: find_investor_by_name("ByteDance")
  • Restituisce gli investitori con i relativi tipi (Persona/Organizzazione)

Che cosa aspettarsi:

  • Un elenco di investitori associati a ByteDance
  • Ogni investitore viene restituito con il proprio nome e il tipo di entità (Persona o Organizzazione)
  • Un riepilogo conciso e leggibile dei risultati
  • Un prompt di follow-up che offre di esplorare investimenti correlati o portafogli di investitori (potrebbe essere)

Query 3: Aziende per settore

Show me companies in the Artificial Intelligence industry

Comportamento previsto:

  • L'agente principale indirizza all'agente di ricerca sugli investimenti
  • Utilizza lo strumento MCP: get_companies_in_industry("Artificial Intelligence")
  • Restituisce l'elenco delle società di AI con ID e date di fondazione

Cosa osservare:

  • Nota come l'agente utilizza la corrispondenza esatta del nome del settore
  • I risultati sono limitati per evitare un output eccessivo
  • I dati sono formattati in modo chiaro per una facile lettura

Query intermedie (più passaggi all'interno di un agente)

Query 4: analisi del sentiment

Find articles with positive sentiment from January 2023

Comportamento previsto:

  • Percorsi per l'agente di ricerca sugli investimenti
  • Utilizza lo strumento MCP: get_articles_with_sentiment(0.7, 2023, 1)
  • Restituisce articoli con titoli, punteggi del sentiment e date di pubblicazione

Suggerimento per il debug:

Esamina i parametri di chiamata dello strumento:

  • min_sentiment: 0,7 (l'agente interpreta "positivo" come >= 0,7)
  • year: 2023
  • month: 1

Query 5: query complessa del database

How many companies are in the database?

Comportamento previsto:

  • L'agente principale esegue il routing all'agente di database a grafo
  • L'agente chiama get_neo4j_schema() per primo per comprendere la struttura
  • Genera Cypher: MATCH (c:Company) RETURN count(c)
  • Esegue la query e restituisce il conteggio

Risposta prevista:

There are 46,088 companies in the database.

Query avanzate (coordinamento multi-agente)

Query 6: analisi del portafoglio

Who invested in ByteDance and what else have they invested in?

Comportamento previsto:

Questa è una query in due parti che richiede il coordinamento dell'agente:

  • Passaggio 1: Root Agent → Investor Research Agent
  • Chiamate find_investor_by_name("ByteDance")
  • Ottiene l'elenco degli investitori: [Rong Yue, Wendi Murdoch]
  • Passaggio 2: per ogni investitore → Agente di ricerca degli investitori
  • Chiamate find_investor_by_id(investor_id)
  • Recupera il portafoglio completo
  • Passaggio 3: l'agente root aggrega e formatta

Che cosa aspettarsi:

  • Un elenco di investitori che hanno investito in ByteDance
  • Per ciascun investitore:
  • Il nome e il tipo di entità (Persona o Organizzazione)
  • Un elenco di altre società in cui ha investito, in base ai dati disponibili
  • Un riepilogo strutturato e facile da leggere raggruppato per investitore

Cosa osservare:

  • Più chiamate di strumenti in sequenza
  • Contesto mantenuto tra i passaggi
  • Risultati aggregati in modo intelligente

Query 7: ricerca su più domini

What are 5 AI companies mentioned in positive articles, and who are their CEOs?

Comportamento previsto:

Questa query complessa richiede più agenti e strumenti:

  • Passaggio 1: Investment Research Agent
  • get_companies_in_industry("Artificial Intelligence")
  • Restituisce l'elenco delle società di AI
  • Passaggio 2: Investment Research Agent
  • get_articles_with_sentiment(0.8)
  • Restituisce articoli positivi
  • Passaggio 3: filtri agente root
  • Identifica le aziende di AI che compaiono in articoli positivi
  • Seleziona le prime 5
  • Passaggio 4: Investment Research Agent
  • get_people_in_organizations([company_names], "CEO")
  • Restituisce i dati del CEO
  • Passaggio 5: l'agente principale formatta la risposta

Che cosa aspettarsi:

  • Un elenco di cinque società nel settore dell'intelligenza artificiale
  • Solo le aziende che compaiono negli articoli con punteggio positivo
  • Per ogni azienda:
  • Nome azienda
  • Settore
  • Nome del CEO
  • Un punteggio di sentiment aggregato o rappresentativo

Cosa osservare:

  • Più chiamate di strumenti su agenti diversi
  • Logica di combinazione e filtraggio dei dati

Query 8: analisi della concorrenza

Who are YouTube's main competitors?

Comportamento previsto:

  • L'agente principale esegue il routing all'agente del database a grafo (query sulle relazioni)
  • L'agente genera Cypher migliorato con GraphRAG:
MATCH (c:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor)
RETURN competitor.name as competitor_name
  • Restituisce l'elenco delle società concorrenti

Risposta prevista:

YouTube's main competitors are:

- TikTok (ByteDance)
- Dailymotion
- Twitter
- BuzzFeed
- Mixer
- OpenAI (for video content)

Query di follow-up sensibili al contesto

Query 9: domanda di follow-up (dopo la query 8)

Which investors funded both YouTube and its competitors?

Comportamento previsto:

  • L'agente principale ricorda il contesto precedente (YouTube e i suoi concorrenti)
  • Percorsi per l'agente di ricerca degli investitori
  • Per YouTube e ogni concorrente, trova gli investitori
  • Identifica gli investitori che compaiono in più società

Che cosa aspettarsi:

  • Il sistema utilizza il contesto conversazionale esistente (YouTube e i suoi concorrenti)
  • Un elenco di investitori che hanno investito in più di un'azienda in questo panorama competitivo
  • Per ciascun investitore:
  • Nome dell'investitore
  • Un elenco raggruppato delle società pertinenti in cui ha investito
  • Un breve riepilogo interpretativo che evidenzia sovrapposizioni o pattern strategici (forse)

Query 10: Riepilogo della ricerca

Summarize our research findings so far

Comportamento previsto:

  • L'agente principale esamina la cronologia delle conversazioni
  • Sintetizza i risultati chiave delle query precedenti
  • Fornisce un riepilogo coerente

Che cosa aspettarsi:

  • Un riepilogo conciso e ben strutturato degli approfondimenti raccolti dalle query precedenti
  • Risultati chiave raggruppati per temi (panoramica del settore, analisi dell'azienda, sentiment, concorrenza, leadership)
  • Punti elenco evidenziati in modo chiaro:
  • Settori esplorati
  • Aziende e investitori di spicco
  • Modelli di investimento tra aziende
  • Tendenze del sentiment di mercato
  • Una narrazione coerente che rifletta la sintesi sensibile al contesto durante la sessione

Informazioni sulle interazioni dell'agente nella visualizzazione di debug

L'interfaccia web dell'ADK fornisce una visibilità dettagliata dell'esecuzione. Ecco cosa cercare:

  1. Cronologia degli eventi

Mostra il flusso cronologico:

[USER] Query received
[ROOT_AGENT] Analyzing query intent
[ROOT_AGENT] Routing to investment_research_agent
[INVESTMENT_RESEARCH_AGENT] Tool call: get_companies_in_industry
[TOOL] Executing with params: {"industry_name": "Artificial Intelligence"}
[TOOL] Returned 47 results
[INVESTMENT_RESEARCH_AGENT] Formatting response
[ROOT_AGENT] Presenting to user
  1. Dettagli chiamata dello strumento

Fai clic su una chiamata allo strumento per visualizzare:

  • Nome funzione
  • Parametri di input
  • Valore restituito
  • Tempo di esecuzione
  • Eventuali errori
  1. Agent Decision Making

Osserva il ragionamento dell'LLM:

  • Perché ha scelto un agente specifico
  • Come ha interpretato la query
  • Quali strumenti ha preso in considerazione
  • Perché ha formattato i risultati in un determinato modo

Osservazioni e approfondimenti comuni

Pattern di routing delle query:

  • Parole chiave come "investitore", "investito" → Agente di ricerca degli investitori
  • Parole chiave come "settore", "aziende", "articoli" → Agente di ricerca sugli investimenti
  • Aggregazioni, conteggi, logica complessa → Agente del database di grafici

Note sul rendimento:

  • Gli strumenti MCP sono in genere più veloci (query pre-ottimizzate)
  • La generazione di Cypher complessi richiede più tempo (tempo di elaborazione dell'LLM)
  • Più chiamate di strumenti aggiungono latenza, ma forniscono risultati più ricchi

Gestione degli errori:

Se una query non riesce:

  • L'agente spiega cosa è andato storto
  • Suggerisce correzioni (ad es. "Nome dell'azienda non trovato, controlla l'ortografia")
  • Potrebbe provare approcci alternativi

Suggerimenti per test efficaci

  1. Inizia in modo semplice: testa la funzionalità principale di ogni agente prima di passare a query complesse
  2. Utilizza i follow-up: verifica la conservazione del contesto con domande di follow-up
  3. Osserva il routing: guarda quale agente gestisce ogni query per comprendere la logica
  4. Controlla le chiamate agli strumenti: verifica che i parametri vengano estratti correttamente dal linguaggio naturale
  5. Testa i casi limite: prova query ambigue, errori ortografici o richieste insolite.

Ora hai un sistema GraphRAG multi-agente completamente funzionante. Sperimenta con le tue domande per esplorare le sue funzionalità.

8. Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo post, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.
  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.

9. Complimenti

🎉 Complimenti! Hai creato correttamente un sistema GraphRAG multi-agente di qualità di produzione utilizzando Agent Development Kit, Neo4j e MCP Toolbox di Google.

Combinando le funzionalità di orchestrazione intelligente di ADK con il modello di dati ricco di relazioni di Neo4j e la sicurezza delle query MCP pre-convalidate, hai creato un sistema sofisticato che va oltre le semplici query di database: comprende il contesto, i motivi delle relazioni complesse e coordina agenti specializzati per fornire informazioni complete e accurate.

In questo codelab hai imparato a:

Creazione di un sistema multi-agente utilizzando Agent Development Kit (ADK) di Google con orchestrazione gerarchica

Database di grafici Neo4j integrato per sfruttare le query sensibili alle relazioni e il ragionamento multihop

Implementazione di MCP Toolbox per query di database sicure e pre-validate come strumenti riutilizzabili

Creati agenti specializzati per la ricerca di investitori, l'analisi degli investimenti e le operazioni sui database grafici

Progettato un routing intelligente che delega automaticamente le query all'agente esperto più appropriato

Gestione di tipi di dati complessi con la corretta serializzazione dei tipi Neo4j per un'integrazione perfetta di Python

Applicazione delle best practice di produzione per la progettazione di agenti, la gestione degli errori e il debug del sistema

Passaggi successivi

Questa architettura GraphRAG multi-agente non è limitata alla ricerca sugli investimenti, ma può essere estesa a:

  • Servizi finanziari: ottimizzazione del portafoglio, valutazione dei rischi, rilevamento di frodi
  • Sanità: coordinamento dell'assistenza ai pazienti, analisi delle interazioni farmacologiche, ricerca clinica
  • E-commerce: consigli personalizzati, ottimizzazione della catena di fornitura, approfondimenti sui clienti
  • Aspetti legali e conformità: analisi dei contratti, monitoraggio delle normative, ricerca di giurisprudenza
  • Ricerca accademica: revisione della letteratura, scoperta di collaborazioni, analisi delle citazioni
  • Enterprise Intelligence: analisi della concorrenza, ricerche di mercato, knowledge graph organizzativi

Ovunque tu abbia dati interconnessi complessi + esperienza nel dominio + interfacce in linguaggio naturale, questa combinazione di sistemi multi-agente ADK + grafici della conoscenza Neo4j + query convalidate da MCP può alimentare la prossima generazione di applicazioni aziendali intelligenti.

Man mano che il kit di sviluppo di agenti e i modelli Gemini di Google continuano a evolversi, potrai incorporare pattern di ragionamento ancora più sofisticati, integrazione di dati in tempo reale e funzionalità multimodali per creare sistemi veramente intelligenti e sensibili al contesto.

Continua a esplorare e a creare e porta le tue applicazioni di agenti intelligenti a un livello superiore.

Esplora altri tutorial pratici sui grafici della conoscenza su Neo4j GraphAcademy e scopri altri pattern di agenti nel repository di esempi di ADK.

🚀 Vuoi creare il tuo prossimo sistema di agenti intelligenti?

Documenti di riferimento