Tworzenie agentów GraphRAG za pomocą pakietu ADK

1. Przegląd

W tym module dowiesz się, jak zbudować zaawansowany system badań inwestycyjnych z wieloma agentami, który łączy możliwości pakietu Google Agent Development Kit (ADK), bazy danych grafów Neo4j i zestawu narzędzi Model Context Protocol (MCP). Ten praktyczny samouczek pokazuje, jak tworzyć inteligentne agenty, które rozumieją kontekst danych dzięki relacjom w grafie i udzielają bardzo dokładnych odpowiedzi na zapytania.

Dlaczego GraphRAG + systemy wieloagentowe?

GraphRAG (Graph-based Retrieval-Augmented Generation) ulepsza tradycyjne podejścia RAG, wykorzystując bogatą strukturę relacji w grafach wiedzy. Zamiast tylko wyszukiwać podobne dokumenty, agenci GraphRAG mogą:

  • przechodzenie między złożonymi relacjami między encjami,
  • Poznawanie kontekstu za pomocą struktury wykresu
  • Wyświetlanie wyników, które można wyjaśnić na podstawie połączonych danych
  • Przeprowadzanie rozumowania wieloetapowego w grafie wiedzy

Systemy z wieloma agentami umożliwiają:

  • Dzielenie złożonych problemów na wyspecjalizowane podzadania
  • Tworzenie modułowych aplikacji AI, które można łatwo utrzymywać
  • Włączanie przetwarzania równoległego i efektywnego wykorzystania zasobów
  • Tworzenie hierarchicznych wzorców rozumowania za pomocą aranżacji

Co utworzysz

Utworzysz kompletny system badań inwestycyjnych, który będzie obejmować:

  1. Agent bazy danych wykresu: wykonuje zapytania w języku Cypher i rozumie schemat Neo4j.
  2. Investor Research Agent: wykrywa relacje z inwestorami i portfele inwestycyjne.
  3. Agent ds. badań inwestycyjnych: uzyskuje dostęp do kompleksowych grafów wiedzy za pomocą narzędzi MCP.
  4. Agent główny: inteligentnie zarządza wszystkimi agentami podrzędnymi.

System odpowie na złożone pytania, takie jak:

  • „Kim są główni konkurenci YouTube?”
  • „Jakie firmy są wymieniane w pozytywnym kontekście w styczniu 2023 r.?”
  • „Kto zainwestował w ByteDance i w jakie inne firmy zainwestował?”

Omówienie architektury

26c67ab72ef077a4.jpeg

Z tego modułu dowiesz się, jak tworzyć agentów GraphRAG klasy korporacyjnej, zarówno pod względem teoretycznym, jak i praktycznym.

Czego się nauczysz

  • Jak tworzyć systemy wieloagentowe za pomocą pakietu Agent Development Kit (ADK) od Google
  • Jak zintegrować bazę danych wykresu Neo4j z ADK na potrzeby aplikacji GraphRAG
  • Jak wdrożyć zestaw narzędzi Model Context Protocol (MCP) do wstępnie zweryfikowanych zapytań do bazy danych
  • Jak tworzyć niestandardowe narzędzia i funkcje dla inteligentnych agentów
  • Projektowanie hierarchii agentów i wzorców aranżacji
  • Jak tworzyć instrukcje dla agenta, aby uzyskać optymalną skuteczność
  • Jak skutecznie debugować interakcje między wieloma agentami

Czego potrzebujesz

  • przeglądarki Chrome,
  • konto Gmail,
  • Projekt Google Cloud z włączonymi płatnościami
  • Podstawowa znajomość poleceń terminala i języka Python (pomocna, ale nie wymagana)

Ten samouczek jest przeznaczony dla deweloperów na wszystkich poziomach zaawansowania (w tym dla początkujących). W przykładowej aplikacji wykorzystuje Pythona i Neo4j. Podstawowa znajomość języka Python i baz danych grafów może być przydatna, ale nie jest wymagana do zrozumienia koncepcji ani do śledzenia treści.

2. Informacje o GraphRAG i systemach wieloagentowych

Zanim przejdziemy do wdrożenia, poznajmy najważniejsze pojęcia, na których opiera się ten system.

Neo4j to wiodąca natywna grafowa baza danych, która przechowuje dane jako sieć węzłów (encji) i relacji (połączeń między encjami). Dzięki temu idealnie nadaje się do zastosowań, w których kluczowe jest zrozumienie połączeń, takich jak rekomendacje, wykrywanie oszustw, grafy wiedzy i inne. W przeciwieństwie do relacyjnych lub dokumentowych baz danych, które opierają się na sztywnych tabelach lub strukturach hierarchicznych, elastyczny model grafu Neo4j umożliwia intuicyjne i wydajne przedstawianie złożonych, połączonych danych.

Zamiast porządkować dane w wierszach i tabelach, jak w relacyjnych bazach danych, Neo4j używa modelu grafu, w którym informacje są reprezentowane jako węzły (jednostki) i relacje (połączenia między tymi jednostkami). Dzięki temu modelowi praca z danymi, które są ze sobą powiązane, jest wyjątkowo intuicyjna. Dotyczy to np. osób, miejsc, produktów, a w naszym przypadku – filmów, aktorów i gatunków.

Na przykład w zbiorze danych o filmach:

  • Węzeł może reprezentować Movie, Actor lub Director.
  • Relacja może być ACTED_IN lub DIRECTED.

b340d5e06fac5f47.jpeg

Ta struktura umożliwia łatwe zadawanie pytań takich jak:

  • W jakich filmach wystąpił ten aktor?
  • Z kim współpracował Christopher Nolan?
  • Jakie są podobne filmy na podstawie wspólnych aktorów lub gatunków?

Co to jest GraphRAG?

Generowanie z wyszukiwaniem (RAG) ulepsza odpowiedzi LLM, pobierając odpowiednie informacje ze źródeł zewnętrznych. Tradycyjny RAG zwykle:

  1. osadza dokumenty w wektorach,
  2. Wyszukiwanie podobnych wektorów
  3. przekazuje pobrane dokumenty do LLM,

GraphRAG rozszerza tę metodę, wykorzystując grafy wiedzy:

  1. Osadzanie encji i relacji
  2. Przechodzenie połączeń na wykresie
  3. Pobieranie informacji kontekstowych z wielu przeskoków
  4. Udostępnia uporządkowane i wyjaśnialne wyniki

Dlaczego wykresy są przydatne w przypadku agentów AI?

Zastanów się nad tym pytaniem: „Kim są konkurenci YouTube i którzy inwestorzy finansowali zarówno YouTube, jak i jego konkurentów?”.

Co się dzieje w przypadku tradycyjnego podejścia RAG:

  • wyszukiwanie dokumentów dotyczących konkurencji YouTube;
  • Osobno wyszukuje informacje o inwestorach
  • trudności z powiązaniem tych dwóch informacji,
  • Może pomijać relacje domyślne

Co się dzieje w przypadku podejścia 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

Graf naturalnie odzwierciedla relacje, dzięki czemu zapytania wieloetapowe są proste i wydajne.

Systemy wieloagentowe w pakiecie ADK

Agent Development Kit (ADK) to platforma open source od Google do tworzenia i wdrażania agentów AI klasy produkcyjnej. Zapewnia intuicyjne elementy do zarządzania wieloma agentami, integracji narzędzi i zarządzania przepływami pracy, co ułatwia tworzenie wyspecjalizowanych agentów w zaawansowanych systemach. ADK bezproblemowo współpracuje z Gemini i obsługuje wdrażanie w Cloud Run, Kubernetes lub dowolnej infrastrukturze.

Pakiet Agent Development Kit (ADK) udostępnia elementy do tworzenia systemów z wieloma agentami:

  1. Hierarchia agentów:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
    name="RootAgent",
    sub_agents=[
        graph_db_agent,
        investor_agent,
        investment_agent
    ]
)
  1. Wyspecjalizowani pracownicy obsługi klienta: każdy pracownik obsługi klienta ma
  • Konkretne narzędzia: funkcje, które może wywoływać
  • Jasne instrukcje: rola i możliwości
  • Wiedza specjalistyczna: znajomość danego obszaru
  1. Wzorce administracji:
  • Sekwencyjne: wykonywanie agentów w określonej kolejności
  • Równolegle: uruchamiaj wielu agentów jednocześnie
  • Warunkowe: kierowanie na podstawie typu zapytania

Zestaw narzędzi MCP do baz danych

Model Context Protocol (MCP) to otwarty standard łączenia systemów AI z zewnętrznymi źródłami danych i narzędziami. MCP Toolbox for Databases to implementacja Google, która umożliwia deklaratywne zarządzanie zapytaniami do bazy danych. Pozwala ona definiować wstępnie zweryfikowane zapytania opracowane przez ekspertów jako narzędzia wielokrotnego użytku. Zamiast pozwalać dużym modelom językowym generować potencjalnie niebezpieczne zapytania, MCP Toolbox udostępnia wstępnie zatwierdzone zapytania z weryfikacją parametrów, co zapewnia bezpieczeństwo, wydajność i niezawodność przy zachowaniu elastyczności dla agentów AI.

Podejście tradycyjne:

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

Podejście MCP:

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

Zalety:

  • Wstępnie zweryfikowane przez ekspertów
  • Ochrona przed atakami typu „wstrzykiwanie kodu”
  • Optymalizacja pod kątem skuteczności
  • Zarządzane centralnie
  • Można używać w przypadku różnych agentów

Złożenie wszystkiego w całość

Połączenie GraphRAG + Multi-Agent Framework by ADK + MCP tworzy potężny system:

  1. Agent główny otrzymuje zapytanie użytkownika.
  2. Kierowanie do specjalisty na podstawie typu zapytania
  3. Agent używa narzędzi MCP do bezpiecznego pobierania danych.
  4. Struktura wykresu zapewnia bogaty kontekst
  5. LLM generuje odpowiedź opartą na faktach i wyjaśnioną

Znasz już architekturę, więc zacznijmy tworzyć.

3. Konfigurowanie projektu Google Cloud

Utwórz projekt

  1. W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt Google Cloud.
  2. Sprawdź, czy w projekcie Cloud włączone są płatności. Dowiedz się, jak sprawdzić, czy w projekcie są włączone płatności .
  3. Będziesz używać Cloud Shell, czyli środowiska wiersza poleceń działającego w Google Cloud. U góry konsoli Google Cloud kliknij Aktywuj Cloud Shell. Możesz przełączać się między terminalem Cloud Shell (do uruchamiania poleceń w chmurze) a edytorem (do tworzenia projektów), klikając odpowiedni przycisk w Cloud Shell.

Obraz przycisku aktywacji Cloud Shell

  1. Po połączeniu z Cloud Shell sprawdź, czy jesteś już uwierzytelniony i czy projekt jest ustawiony na Twój identyfikator projektu, używając tego polecenia:
gcloud auth list
  1. Aby potwierdzić, że polecenie gcloud zna Twój projekt, uruchom w Cloud Shell to polecenie:
gcloud config list project
  1. Jeśli projekt nie jest ustawiony, użyj tego polecenia, aby go ustawić:
gcloud config set project <YOUR_PROJECT_ID>

Informacje o poleceniach gcloud i ich użyciu znajdziesz w dokumentacji.

Świetnie! Możemy teraz przejść do kolejnego kroku, czyli analizy zbioru danych.

4. Informacje o zbiorze danych Firmy

W tym samouczku używamy bazy danych Neo4j tylko do odczytu, która jest wstępnie wypełniona danymi o inwestycjach i firmach z grafu wiedzy Diffbot.

Zbiór danych zawiera:

  • 237 358 węzłów reprezentujących:
  • Organizacje (firmy)
  • osoby (kierownictwo, pracownicy),
  • Artykuły (wiadomości i wzmianki)
  • Branże
  • Technologie
  • Inwestorzy
  • Relacje, w tym:
  • INVESTED_IN – połączenia inwestycyjne,
  • COMPETES_WITH – relacje z konkurencją
  • MENTIONS – odniesienia do artykułów
  • WORKS_AT – stosunki pracy;
  • IN_INDUSTRY – klasyfikacje branżowe,

5c5fee2a9823601f.jpeg

Dostęp do bazy danych demonstracyjnych

W tym samouczku użyjemy hostowanej instancji demonstracyjnej. Dodaj do notatek te dane logowania:

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

Dostęp w przeglądarce:

Dane możesz przeglądać wizualnie na stronie https://demo.neo4jlabs.com:7473

Zaloguj się za pomocą tych samych danych logowania i spróbuj uruchomić to polecenie:

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

Wizualizacja struktury wykresu

Aby zobaczyć wzorce relacji, wypróbuj to zapytanie w przeglądarce Neo4j:

// 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

To zapytanie zwraca 5 najbardziej aktywnych inwestorów i ich portfele.

Dlaczego ta baza danych jest odpowiednia dla GraphRAG?

Ten zbiór danych idealnie nadaje się do zademonstrowania GraphRAG, ponieważ:

  1. Rich Relationships: złożone połączenia między elementami.
  2. Dane z rzeczywistego świata: prawdziwe firmy, osoby i artykuły prasowe.
  3. Zapytania wieloetapowe: wymagają przechodzenia przez wiele typów relacji.
  4. Dane czasowe: artykuły z sygnaturami czasowymi do analizy opartej na czasie.
  5. Analiza nastawienia: wstępnie obliczone wyniki analizy nastawienia w przypadku artykułów.

Teraz, gdy znasz już strukturę danych, skonfigurujmy środowisko programistyczne.

5. Klonowanie repozytorium i konfigurowanie środowiska

Klonowanie repozytorium

W terminalu Cloud Shell uruchom to polecenie:

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

# Navigate into the directory
cd neo4j-adk-multiagents

Poznaj strukturę repozytorium

Poświęć chwilę na zapoznanie się z układem projektu:

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

Konfigurowanie środowiska wirtualnego

Zanim utworzysz i aktywujesz wirtualne środowiska Pythona, upewnij się, że masz już zainstalowany w systemie pakiet uv:

# Install uv if not already installed
pip install uv

Utwórz i aktywuj wirtualne środowisko Pythona za pomocą narzędzia uv:

# Create virtual environment
uv venv

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

Przed promptem w terminalu powinien pojawić się tekst (.venv).

Instalowanie zależności

Zainstaluj wszystkie wymagane pakiety:

uv pip install -r requirements.txt

Kluczowe zależności:

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

Konfigurowanie zmiennych środowiskowych

  1. Utwórz plik .env:
cp example.env .env
  1. Edytuj plik .env:

Jeśli używasz Cloud Shell, na pasku narzędzi kliknij Otwórz edytor, a następnie przejdź do .env i zaktualizuj:

# 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. Konfiguracja MCP Toolbox (wstępnie skonfigurowana – nie musisz jej uruchamiać):

W tym module narzędzia MCP Toolbox są już hostowane i wstępnie skonfigurowane, więc nie musisz generować ani zarządzać lokalnie plikiem tools.yaml.

Zwykle po zaktualizowaniu zmiennej investment_agent/.adk/tools.yaml.template uruchamiasz to polecenie, aby wygenerować plik tools.yaml ze zmiennych środowiskowych:

python setup_tools_yaml.py

Spowoduje to wygenerowanie pliku investment_agent/.adk/tools.yaml z prawidłowo skonfigurowanymi danymi logowania do Neo4j dla MCP Toolbox.

Powyższy skrypt należy uruchomić tylko wtedy, gdy:

  • Samodzielnie hostujesz narzędzia MCP
  • łączysz się z inną bazą danych lub zbiorem danych Neo4j;
  • chcesz zdefiniować niestandardowe narzędzia lub dane logowania;

W takich przypadkach należy odpowiednio zaktualizować adres URL zestawu narzędzi MCP i konfigurację tools.yaml.

Weryfikacja konfiguracji

Sprawdź, czy wszystko jest prawidłowo skonfigurowane:

# 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')"

Środowisko programistyczne jest już w pełni skonfigurowane. Następnie przyjrzymy się architekturze z wieloma agentami.

6. Omówienie architektury systemu wieloagentowego

System czterech agentów

Nasz system badań inwestycyjnych korzysta z hierarchicznej architektury wieloagentowej z 4 wyspecjalizowanymi agentami, którzy współpracują ze sobą, aby odpowiadać na złożone zapytania dotyczące firm, inwestorów i informacji rynkowych.

                ┌──────────────┐
                │  Root Agent  │ ◄── User Query
                └──────┬───────┘
                       │
      ┌────────────────┼────────────────┐
      │                │                │
┌─────▼─────┐     ┌────▼─────┐     ┌────▼──────────┐
│ Graph DB  │     │ Investor │     │  Investment   │
│  Agent    │     │ Research │     │  Research     │
└───────────┘     │  Agent   │     │  Agent        │
                  └──────────┘     └───────────────┘
  1. Główny klient (Orchestrator):

Agent główny pełni funkcję inteligentnego koordynatora całego systemu. Otrzymuje zapytania użytkowników, analizuje ich intencje i kieruje żądania do najbardziej odpowiedniego wyspecjalizowanego agenta. Można go traktować jako menedżera projektu, który wie, który członek zespołu najlepiej nadaje się do danego zadania. Zajmuje się też agregowaniem odpowiedzi, formatowaniem wyników w postaci tabel lub wykresów na żądanie oraz utrzymywaniem kontekstu rozmowy w wielu zapytaniach. Agent główny zawsze preferuje wyspecjalizowanych agentów od ogólnego agenta bazy danych, dzięki czemu zapytania są obsługiwane przez najbardziej kompetentny komponent.

  1. Agent bazy danych grafów:

Agent bazy danych wykresów to bezpośrednie połączenie z zaawansowanymi funkcjami wykresów Neo4j. Rozumie schemat bazy danych, generuje zapytania Cypher w języku naturalnym i wykonuje złożone przejścia po grafie. Ten agent specjalizuje się w pytaniach strukturalnych, agregacjach i wielokrotnych wnioskowaniach w grafie wiedzy. Jest to ekspert rezerwowy, gdy zapytania wymagają niestandardowej logiki, której nie obsługują predefiniowane narzędzia. Dzięki temu jest niezbędny w przypadku analizy eksploracyjnej i złożonych zapytań analitycznych, których nie przewidziano w projekcie systemu.

  1. Pracownik obsługi klienta ds. badań inwestorskich:

Agent ds. badań inwestycyjnych koncentruje się wyłącznie na relacjach inwestycyjnych i analizie portfela. Może ona wykrywać, kto zainwestował w konkretne firmy, korzystając z dokładnego dopasowania nazw, pobierać pełne portfele inwestycyjne pokazujące wszystkie inwestycje i analizować wzorce inwestycyjne w różnych branżach. Dzięki temu specjalizacja ta jest niezwykle skuteczna w odpowiadaniu na pytania takie jak „Kto zainwestował w ByteDance?” lub „W co jeszcze zainwestował Sequoia Capital?”. Agent używa niestandardowych funkcji Pythona, które bezpośrednio wysyłają do bazy danych Neo4j zapytania o relacje związane z inwestorami.

  1. Pracownik obsługi klienta ds. badań inwestycyjnych:

Agent do badań inwestycyjnych korzysta z zestawu narzędzi protokołu kontekstu modelu (MCP) w celu uzyskania dostępu do wstępnie zweryfikowanych zapytań opracowanych przez ekspertów. Może pobierać wszystkie dostępne branże, wyszukiwać firmy w określonych branżach, znajdować artykuły z analizą sentymentu, wykrywać wzmianki o organizacjach w wiadomościach i uzyskiwać informacje o osobach pracujących w firmach. W przeciwieństwie do agenta bazy danych grafów, który dynamicznie generuje zapytania, ten agent używa bezpiecznych, zoptymalizowanych, wstępnie zdefiniowanych zapytań, które są zarządzane i weryfikowane centralnie. Dzięki temu jest bezpieczna i wydajna w przypadku typowych przepływów pracy związanych z badaniami.

7. Uruchamianie i testowanie systemu wieloagentowego

Uruchamianie aplikacji

Teraz, gdy znasz już architekturę, uruchommy cały system i zacznijmy z nim wchodzić w interakcje.

Uruchom interfejs internetowy 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

Dane wyjściowe powinny być podobne do tych:

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)

Gdy zobaczysz, że serwer został uruchomiony, otwórz przeglądarkę i przejdź na stronę http://127.0.0.1:8000, aby uzyskać dostęp do aplikacji.

Zapytania testowe i oczekiwane działanie

Przyjrzyjmy się możliwościom systemu na przykładzie coraz bardziej złożonych zapytań:

Zapytania podstawowe (jeden agent)

Zapytanie 1. Odkrywanie branż

What industries are available in the database?

Oczekiwane działanie:

  • Agent główny kieruje do agenta ds. badań inwestycyjnych
  • Korzysta z narzędzia MCP: get_industries()
  • Zwraca sformatowaną listę wszystkich branż.

Co obserwować:

W interfejsie ADK rozwiń szczegóły wykonania, aby zobaczyć:

  • Decyzja dotycząca wyboru agenta
  • Wywołanie narzędzia: get_industries()
  • Nieprzetworzone wyniki z Neo4j
  • Sformatowana odpowiedź

Zapytanie 2. Znajdź inwestorów

Who invested in ByteDance?

Oczekiwane działanie:

  • Root Agent rozpoznaje to jako zapytanie związane z inwestycjami
  • Trasy do agenta ds. badań inwestycyjnych
  • Używa narzędzia: find_investor_by_name("ByteDance")
  • Zwraca inwestorów wraz z ich typami (osoba lub organizacja).

Czego możesz się spodziewać:

  • Lista inwestorów powiązanych z ByteDance
  • Każdy inwestor jest zwracany wraz z imieniem i nazwiskiem lub nazwą oraz typem podmiotu (osoba lub organizacja).
  • Zwięzłe podsumowanie wyników zrozumiałe dla człowieka.
  • Dodatkowy prompt z propozycją sprawdzenia powiązanych inwestycji lub portfeli inwestycyjnych (może się pojawić).

Zapytanie 3. Firmy według branży

Show me companies in the Artificial Intelligence industry

Oczekiwane działanie:

  • Agent główny kieruje do agenta ds. badań inwestycyjnych
  • Korzysta z narzędzia MCP: get_companies_in_industry("Artificial Intelligence")
  • Zwraca listę firm zajmujących się AI z identyfikatorami i datami założenia.

Co obserwować:

  • Zwróć uwagę, jak agent używa dokładnego dopasowania nazwy branży.
  • Wyniki są ograniczone, aby zapobiec przeładowaniu danych wyjściowych
  • Dane są sformatowane w czytelny sposób.

Zapytania średnio zaawansowane (wielokrokowe w ramach jednego agenta)

Zapytanie 4. Analiza nastawienia

Find articles with positive sentiment from January 2023

Oczekiwane działanie:

  • Trasy do agenta ds. badań inwestycyjnych
  • Korzysta z narzędzia MCP: get_articles_with_sentiment(0.7, 2023, 1)
  • Zwraca artykuły z tytułami, ocenami nastrojów i datami publikacji.

Wskazówka dotycząca debugowania:

Sprawdź parametry wywołania narzędzia:

  • min_sentiment: 0,7 (pracownik obsługi klienta interpretuje „pozytywny” jako >= 0,7)
  • year: 2023
  • month: 1

Zapytanie 5. Złożone zapytanie do bazy danych

How many companies are in the database?

Oczekiwane działanie:

  • Agent główny kieruje do agenta bazy danych grafów
  • Agent dzwoni get_neo4j_schema() jako pierwszy, aby poznać strukturę
  • Generuje Cypher: MATCH (c:Company) RETURN count(c)
  • Wykonuje zapytanie i zwraca liczbę.

Oczekiwana odpowiedź:

There are 46,088 companies in the database.

Zapytania zaawansowane (koordynacja wielu agentów)

Zapytanie 6. Analiza portfolio

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

Oczekiwane działanie:

Jest to zapytanie dwuczęściowe, które wymaga koordynacji agenta:

  • Krok 1. Agent główny → Agent ds. badań inwestorskich
  • Połączenia find_investor_by_name("ByteDance")
  • Pobiera listę inwestorów: [Rong Yue, Wendi Murdoch]
  • Krok 2. Dla każdego inwestora → Agent ds. badań nad inwestorami
  • Połączenia find_investor_by_id(investor_id)
  • Pobiera pełne portfolio
  • Krok 3. Agent główny agreguje i formatuje

Czego możesz się spodziewać:

  • Lista inwestorów, którzy zainwestowali w ByteDance
  • W przypadku każdego inwestora:
  • imię i nazwisko oraz typ podmiotu (osoba lub organizacja);
  • Lista innych firm, w które zainwestowali, na podstawie dostępnych danych
  • Uporządkowane i czytelne podsumowanie pogrupowane według inwestorów

Co obserwować:

  • Wiele wywołań narzędzi w sekwencji
  • Kontekst zachowywany między krokami
  • Inteligentne agregowanie wyników

Zapytanie 7. Badanie wielu domen

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

Oczekiwane działanie:

To złożone zapytanie wymaga użycia wielu agentów i narzędzi:

  • Krok 1. Agent ds. badań inwestycyjnych
  • get_companies_in_industry("Artificial Intelligence")
  • Zwraca listę firm zajmujących się AI
  • Krok 2. Agent ds. analizy inwestycyjnej
  • get_articles_with_sentiment(0.8)
  • zwraca pozytywne artykuły,
  • Krok 3. Filtry agenta głównego
  • Określa, które firmy zajmujące się AI pojawiają się w pozytywnych artykułach
  • Wybiera 5 najważniejszych
  • Krok 4. Agent ds. badań inwestycyjnych
  • get_people_in_organizations([company_names], "CEO")
  • Zwraca informacje o prezesie
  • Krok 5. Główny agent formatuje odpowiedź

Czego możesz się spodziewać:

  • Lista 5 firm z branży sztucznej inteligencji
  • Tylko firmy, które pojawiają się w artykułach z pozytywną oceną
  • W przypadku każdej firmy:
  • Nazwa firmy
  • Branża
  • Imię i nazwisko prezesa
  • zagregowany lub reprezentatywny wynik nastawienia,

Co obserwować:

  • Wiele wywołań narzędzi przez różnych agentów
  • Logika filtrowania i łączenia danych

Zapytanie 8. Analiza konkurencji

Who are YouTube's main competitors?

Oczekiwane działanie:

  • Agent główny kieruje do agenta bazy danych grafów (zapytanie o relacje)
  • Agent generuje zapytanie Cypher ulepszone za pomocą GraphRAG:
MATCH (c:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor)
RETURN competitor.name as competitor_name
  • Zwraca listę konkurencyjnych firm

Oczekiwana odpowiedź:

YouTube's main competitors are:

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

Zapytania uzupełniające zależne od kontekstu

Zapytanie 9. Pytanie uzupełniające (po zapytaniu 8)

Which investors funded both YouTube and its competitors?

Oczekiwane działanie:

  • Root Agent pamięta poprzedni kontekst (YouTube i jego konkurenci).
  • Trasy do agenta ds. badań inwestycyjnych
  • Dla YouTube i każdego konkurenta znajduje inwestorów
  • Identyfikowanie inwestorów pojawiających się w wielu firmach

Czego możesz się spodziewać:

  • System korzysta z dotychczasowego kontekstu konwersacyjnego (YouTube i jego konkurenci).
  • Lista inwestorów, którzy zainwestowali w więcej niż 1 firmę w tym obszarze konkurencyjnym
  • W przypadku każdego inwestora:
  • Nazwa inwestora
  • zgrupowaną listę odpowiednich firm, w które zainwestowali,
  • Krótkie podsumowanie interpretacyjne podkreślające strategiczne nakładanie się lub wzorce (może).

Zapytanie 10. Podsumowanie badań

Summarize our research findings so far

Oczekiwane działanie:

  • Root Agent sprawdza historię rozmów
  • Syntetyzuje najważniejsze wnioski z poprzednich zapytań
  • zapewnia spójne podsumowanie,

Czego możesz się spodziewać:

  • zwięzłe, dobrze uporządkowane podsumowanie statystyk zebranych na podstawie poprzednich zapytań;
  • Kluczowe wnioski pogrupowane według tematów (przegląd branży, analiza firmy, opinie, konkurencja, przywództwo)
  • Wyraźne punkty wyróżniające:
  • Branże, które zostały zbadane
  • Znane firmy i inwestorzy
  • Wzorce inwestycji w różne firmy
  • Trendy nastrojów na rynku
  • spójną narrację, która odzwierciedla syntezę uwzględniającą kontekst w trakcie sesji;

Interpretowanie interakcji z agentem w widoku debugowania

Interfejs internetowy ADK zapewnia szczegółowy wgląd w wykonanie. Oto na co należy zwrócić uwagę:

  1. Oś czasu zdarzeń

Wyświetla przepływ chronologiczny:

[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. Szczegóły wywołania narzędzia

Kliknij dowolne wywołanie narzędzia, aby zobaczyć:

  • Nazwa funkcji
  • Parametry wejściowe
  • Zwracana wartość
  • Czas wykonywania
  • Wszystkie błędy
  1. Podejmowanie decyzji przez agenta

Obserwuj rozumowanie LLM:

  • Dlaczego wybrał konkretnego agenta
  • Jak zinterpretowano zapytanie
  • Jakie narzędzia były brane pod uwagę
  • Dlaczego wyniki zostały sformatowane w określony sposób

Typowe obserwacje i statystyki

Wzorce kierowania zapytań:

  • Słowa kluczowe takie jak „inwestor”, „inwestycja” → Agent ds. badań inwestorskich
  • Słowa kluczowe takie jak „branża”, „firmy”, „artykuły” → Agent ds. badań inwestycyjnych
  • Agregacje, zliczanie, złożona logika → agent bazy danych grafów

Uwagi dotyczące skuteczności:

  • Narzędzia MCP są zwykle szybsze (wstępnie zoptymalizowane zapytania).
  • Generowanie złożonych zapytań w języku Cypher trwa dłużej (czas myślenia LLM).
  • Wiele wywołań narzędzi zwiększa opóźnienie, ale zapewnia bogatsze wyniki

Obsługa błędów:

Jeśli zapytanie się nie powiedzie:

  • Agent wyjaśnia, co poszło nie tak
  • Sugeruje poprawki (np. Nie znaleziono nazwy firmy. Sprawdź pisownię.
  • Może wypróbować alternatywne podejścia

Wskazówki dotyczące skutecznego testowania

  1. Zacznij od prostych testów: przed skomplikowanymi zapytaniami przetestuj podstawowe funkcje każdego agenta.
  2. Używanie dodatkowych promptów: sprawdzanie zachowania kontekstu za pomocą dodatkowych pytań
  3. Obserwuj routing: sprawdzaj, który agent obsługuje poszczególne zapytania, aby poznać logikę.
  4. Sprawdzanie wywołań narzędzi: weryfikowanie, czy parametry są prawidłowo wyodrębniane z języka naturalnego.
  5. Testowanie przypadków skrajnych: wypróbuj niejednoznaczne zapytania, błędy pisowni lub nietypowe prośby.

Masz teraz w pełni funkcjonalny system GraphRAG z wieloma agentami. Eksperymentuj z własnymi pytaniami, aby poznać jego możliwości.

8. Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby użyte w tym poście, wykonaj te czynności:

  1. W konsoli Google Cloud otwórz stronę Zarządzanie zasobami.
  2. Z listy projektów wybierz projekt do usunięcia, a potem kliknij Usuń.
  3. W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.

9. Gratulacje

🎉 Gratulacje! Udało Ci się utworzyć system GraphRAG o jakości produkcyjnej, który wykorzystuje wielu agentów i narzędzia Agent Development Kit, Neo4j oraz MCP Toolbox od Google.

Łącząc inteligentne możliwości orkiestracji ADK z bogatym w relacje modelem danych Neo4j i bezpieczeństwem wstępnie zweryfikowanych zapytań MCP, stworzyliśmy zaawansowany system, który wykracza poza proste zapytania do bazy danych – rozumie kontekst, analizuje złożone relacje i koordynuje działania wyspecjalizowanych agentów, aby dostarczać kompleksowe i dokładne informacje.

W tym ćwiczeniu wykonaliśmy te czynności:

✅ Utworzono system wielu agentów za pomocą pakietu Agent Development Kit (ADK) od Google z hierarchicznym zarządzaniem.

✅ Zintegrowana grafowa baza danych Neo4j, która umożliwia korzystanie z zapytań uwzględniających relacje i wielokrotne wnioskowanie.

Wdrożono MCP Toolbox do bezpiecznych, wstępnie zweryfikowanych zapytań do bazy danych jako narzędzi wielokrotnego użytku.

✅ Utworzono wyspecjalizowanych agentów do badań inwestorskich, analiz inwestycyjnych i operacji na grafowych bazach danych.

✅ Zaprojektowano inteligentne kierowanie, które automatycznie przekazuje zapytania do najbardziej odpowiedniego eksperta.

✅ Obsługa złożonych typów danych z odpowiednią serializacją typów Neo4j w celu bezproblemowej integracji z Pythonem.

✅ Zastosowanie sprawdzonych metod produkcyjnych w zakresie projektowania agentów, obsługi błędów i debugowania systemu.

Co dalej?

Ta architektura GraphRAG z wieloma agentami nie ogranicza się do badań inwestycyjnych – można ją rozszerzyć na:

  • Usługi finansowe: optymalizacja portfolio, ocena ryzyka, wykrywanie oszustw
  • Opieka zdrowotna: koordynacja opieki nad pacjentem, analiza interakcji leków, badania kliniczne
  • E-commerce: spersonalizowane rekomendacje, optymalizacja łańcucha dostaw, statystyki dotyczące klientów
  • Kwestie prawne i zgodność z przepisami: analiza umów, monitorowanie przepisów, badania orzecznictwa.
  • Badania naukowe: przegląd literatury, odkrywanie współpracy, analiza cytowań
  • Informacje o przedsiębiorstwie: analiza konkurencji, badania rynku, wykresy wiedzy organizacji

Wszędzie tam, gdzie masz złożone, wzajemnie powiązane dane + wiedzę specjalistyczną + interfejsy w języku naturalnym, ta kombinacja systemów wieloagentowych ADK + grafów wiedzy Neo4j + zapytań zweryfikowanych przez MCP może stanowić podstawę nowej generacji inteligentnych aplikacji dla przedsiębiorstw.

Wraz z rozwojem zestawu narzędzi do tworzenia agentów Google i modeli Gemini będziesz mieć możliwość włączania jeszcze bardziej zaawansowanych wzorców rozumowania, integracji danych w czasie rzeczywistym i funkcji wielomodowych, aby tworzyć prawdziwie inteligentne systemy uwzględniające kontekst.

Nie przestawaj odkrywać i tworzyć, aby przenieść swoje aplikacje z inteligentnymi agentami na wyższy poziom.

Więcej praktycznych samouczków dotyczących grafów wiedzy znajdziesz na stronie Neo4j GraphAcademy, a dodatkowe wzorce agentów – w repozytorium z przykładowymi pakietami ADK.

🚀 Chcesz stworzyć kolejny inteligentny system agentów?

Dokumentacja