Создание агентов GraphRAG с помощью ADK

1. Обзор

В этом практическом занятии вы создадите сложную многоагентную систему для исследования инвестиций, которая объединит возможности комплекта разработки агентов Google (ADK), графовой базы данных Neo4j и инструментария Model Context Protocol (MCP). В этом практическом руководстве показано, как создавать интеллектуальных агентов, которые понимают контекст данных через графовые связи и предоставляют высокоточные ответы на запросы.

Почему GraphRAG + многоагентные системы?

GraphRAG (Graph-based Retrieval-Augmented Generation) расширяет возможности традиционных подходов RAG, используя богатую структуру связей в графах знаний. Вместо простого поиска похожих документов, агенты GraphRAG могут:

  • Прослеживание сложных взаимосвязей между сущностями
  • Понимание контекста через структуру графа.
  • Предоставьте объяснимые результаты на основе связанных данных.
  • Выполнить многошаговое логическое рассуждение в рамках графа знаний.

Многоагентные системы позволяют вам:

  • Разложите сложные проблемы на специализированные подзадачи.
  • Создавайте модульные, поддерживаемые приложения искусственного интеллекта.
  • Обеспечить параллельную обработку и эффективное использование ресурсов.
  • Создавайте иерархические шаблоны рассуждений с помощью оркестровки.

Что вы построите

Вы создадите полноценную систему исследования инвестиций, включающую в себя:

  1. Агент графовой базы данных : выполняет запросы Cypher и понимает схему Neo4j.
  2. Специалист по исследованию рынка инвесторов : выявляет связи с инвесторами и формирует инвестиционные портфели.
  3. Специалист по инвестиционным исследованиям : получает доступ к обширным графам знаний с помощью инструментов MCP.
  4. Корневой агент : интеллектуально координирует работу всех подчиненных агентов.

Система будет отвечать на сложные вопросы, такие как:

  • «Кто являются главными конкурентами YouTube?»
  • «Какие компании упоминались с позитивным настроем в январе 2023 года?»
  • «Кто инвестировал в ByteDance и куда еще они инвестировали?»

Обзор архитектуры

26c67ab72ef077a4.jpeg

В ходе этого практического занятия вы изучите как концептуальные основы, так и практическую реализацию создания корпоративных агентов GraphRAG.

Что вы узнаете

  • Как создавать многоагентные системы с помощью комплекта разработки агентов Google (ADK)
  • Как интегрировать графовую базу данных Neo4j с ADK для приложений GraphRAG.
  • Как реализовать инструментарий Model Context Protocol (MCP) для предварительно проверенных запросов к базе данных.
  • Как создавать собственные инструменты и функции для интеллектуальных агентов
  • Как проектировать иерархии агентов и шаблоны оркестровки
  • Как структурировать инструкции для агентов для достижения оптимальной производительности
  • Как эффективно отлаживать взаимодействие нескольких агентов

Что вам понадобится

  • Веб-браузер Chrome
  • Аккаунт Gmail
  • Проект Google Cloud с включенной функцией выставления счетов.
  • Базовые навыки работы с командами терминала и языком Python (желательно, но не обязательно).

Этот практический урок, разработанный для разработчиков всех уровней (включая начинающих), использует Python и Neo4j в качестве примера приложения. Хотя базовое знакомство с Python и графовыми базами данных может быть полезным, для понимания концепций и выполнения заданий не требуется никакого предварительного опыта.

2. Понимание GraphRAG и многоагентных систем

Прежде чем переходить к реализации, давайте разберемся в ключевых концепциях, лежащих в основе этой системы.

Neo4j — это ведущая нативная графовая база данных, которая хранит данные в виде сети узлов (сущностей) и отношений (связей между сущностями), что делает её идеальной для задач, где понимание связей имеет ключевое значение — например, для рекомендаций, обнаружения мошенничества, построения графов знаний и многого другого. В отличие от реляционных или документоориентированных баз данных, которые полагаются на жёсткие таблицы или иерархические структуры, гибкая графовая модель Neo4j позволяет интуитивно и эффективно представлять сложные, взаимосвязанные данные.

Вместо организации данных в строках и таблицах, как в реляционных базах данных, Neo4j использует графовую модель , где информация представлена ​​в виде узлов (сущностей) и отношений (связей между этими сущностями). Эта модель делает ее исключительно интуитивно понятной для работы с данными, которые по своей природе связаны между собой — такими как люди, места, товары или, в нашем случае, фильмы, актеры и жанры.

Например, в наборе данных о фильмах:

  • Узел может представлять собой Movie , Actor или Director
  • Отношения могут быть ACTED_IN или DIRECTED

b340d5e06fac5f47.jpeg

Такая структура позволяет легко задавать вопросы, например:

  • В каких фильмах снимался этот актёр?
  • Кто работал с Кристофером Ноланом?
  • Какие фильмы похожи по актерскому составу или жанру?

Что такое GraphRAG?

Генерация с расширенным извлечением информации (Retrieval-Augmented Generation, RAG) улучшает ответы LLM за счет извлечения релевантной информации из внешних источников. Традиционная RAG обычно:

  1. Встраивает документы в векторные изображения.
  2. Поиск похожих векторов
  3. Передает полученные документы в магистратуру.

GraphRAG расширяет это, используя графы знаний:

  1. Встраивает сущности и связи
  2. Обходит соединения графа
  3. Извлекает контекстную информацию из нескольких переходов.
  4. Предоставляет структурированные, объяснимые результаты.

Почему графы необходимы для работы с ИИ-агентами?

Рассмотрим следующий вопрос: «Кто являются конкурентами YouTube, и какие инвесторы финансировали как YouTube, так и его конкурентов?»

Что происходит при традиционном подходе RAG:

  • Поиск документов о конкурентах YouTube
  • Отдельный поиск информации для инвесторов.
  • Трудности в установлении связи между этими двумя фрагментами информации.
  • Может быть упущены неявные связи

Что происходит при использовании подхода 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

Граф естественным образом отображает взаимосвязи, что делает многошаговые запросы простыми и эффективными.

Многоагентные системы в ADK

Agent Development Kit (ADK) — это платформа с открытым исходным кодом от Google для создания и развертывания ИИ-агентов производственного уровня. Она предоставляет интуитивно понятные примитивы для оркестрации нескольких агентов, интеграции инструментов и управления рабочими процессами, что упрощает создание сложных систем на основе специализированных агентов. ADK бесперебойно работает с Gemini и поддерживает развертывание в Cloud Run, Kubernetes или любой другой инфраструктуре.

Комплект разработки агентов (ADK) предоставляет базовые элементы для создания многоагентных систем:

  1. Иерархия агентов:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
    name="RootAgent",
    sub_agents=[
        graph_db_agent,
        investor_agent,
        investment_agent
    ]
)
  1. Специализированные агенты: Каждый агент имеет
  • Конкретные инструменты: функции, которые они могут вызывать.
  • Четкие инструкции: его роль и возможности.
  • Экспертиза в предметной области: знание своей области.
  1. Шаблоны оркестровки:
  • Последовательный: Выполнение действий агентами в порядке следования.
  • Параллельный режим: Запуск нескольких агентов одновременно.
  • Условный режим: Маршрутизация на основе типа запроса

MCP Toolbox для баз данных

Протокол контекста модели (MCP) — это открытый стандарт для подключения систем искусственного интеллекта к внешним источникам данных и инструментам. MCP Toolbox for Databases — это реализация от Google, которая обеспечивает декларативное управление запросами к базам данных, позволяя определять предварительно проверенные запросы, составленные экспертами, в качестве многократно используемых инструментов. Вместо того чтобы позволять LLM-системам генерировать потенциально небезопасные запросы, MCP Toolbox предоставляет предварительно одобренные запросы с проверкой параметров, обеспечивая безопасность, производительность и надежность, сохраняя при этом гибкость для агентов ИИ.

Традиционный подход:

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

Подход MCP:

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

Преимущества:

  • Проверено экспертами.
  • Защита от инъекционных атак
  • Оптимизированная производительность
  • Централизованное управление
  • Можно использовать повторно на разных агентах.

Подводя итог всему

Сочетание GraphRAG + Multi-Agent Framework от ADK + MCP создает мощную систему:

  1. Корневой агент получает запрос пользователя.
  2. Маршрутизация к специализированному агенту в зависимости от типа запроса.
  3. Агент использует инструменты MCP для безопасного получения данных.
  4. Структура графа обеспечивает богатый контекст.
  5. LLM генерирует обоснованный, объяснимый ответ.

Теперь, когда мы разобрались с архитектурой, давайте начнём строить!

3. Настройка проекта Google Cloud

Создать проект

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
  2. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
  3. Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud. Нажмите «Активировать Cloud Shell» в верхней части консоли Google Cloud. Вы можете переключаться между терминалом Cloud Shell (для выполнения облачных команд) и редактором (для сборки проектов), нажав соответствующую кнопку в Cloud Shell.

Изображение кнопки «Активировать Cloud Shell»

  1. После подключения к Cloud Shell необходимо проверить, прошли ли вы аутентификацию и установлен ли идентификатор вашего проекта, используя следующую команду:
gcloud auth list
  1. Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте.
gcloud config list project
  1. Если ваш проект не задан, используйте следующую команду для его установки:
gcloud config set project <YOUR_PROJECT_ID>

Для получения информации о командах gcloud и их использовании обратитесь к документации .

Отлично! Теперь мы готовы перейти к следующему шагу — изучению набора данных.

4. Анализ набора данных о компаниях

Для этого практического занятия мы используем базу данных Neo4j только для чтения, предварительно заполненную данными об инвестициях и компаниях из Knowledge Graph Diffbot .

Набор данных содержит:

  • 237 358 узлов, представляющих:
  • Организации (компании)
  • Люди (руководители, сотрудники)
  • Статьи (новости и упоминания)
  • Отрасли
  • Технологии
  • Инвесторы
  • Взаимоотношения, включая:
  • INVESTED_IN - Инвестиционные связи
  • COMPETES_WITH - Конкурентные отношения
  • MENTIONS - Ссылки на статьи
  • WORKS_AT - Трудовые отношения
  • IN_INDUSTRY - Классификация отраслей промышленности

5c5fee2a9823601f.jpeg

Получите доступ к демонстрационной базе данных

Для этого практического занятия мы будем использовать размещенный демонстрационный экземпляр. Добавьте эти учетные данные в свои заметки:

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

Доступ через браузер:

Визуализацию данных можно осуществить по ссылке: https://demo.neo4jlabs.com:7473

Войдите в систему, используя те же учетные данные, и попробуйте запустить:

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

Визуализация структуры графа

Попробуйте выполнить этот запрос в браузере 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

Этот запрос возвращает список из 5 наиболее активных инвесторов и их портфели.

Почему именно эта база данных предназначена для GraphRAG?

Этот набор данных идеально подходит для демонстрации GraphRAG, потому что:

  1. Сложные взаимоотношения : комплексные связи между сущностями
  2. Данные из реального мира : реальные компании, люди и новостные статьи.
  3. Многошаговые запросы : требуют обхода нескольких типов связей.
  4. Временные данные : статьи с временными метками для анализа по времени.
  5. Анализ настроений : Предварительно рассчитанные оценки настроений для статей.

Теперь, когда вы понимаете структуру данных, давайте настроим вашу среду разработки!

5. Клонирование репозитория и настройка среды.

Клонируйте репозиторий

В терминале Cloud Shell выполните следующую команду:

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

# Navigate into the directory
cd neo4j-adk-multiagents

Изучите структуру репозитория.

Уделите немного времени, чтобы ознакомиться с структурой проекта:

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

Настройка виртуальной среды

Перед созданием и активацией виртуальных сред Python убедитесь, что в вашей системе уже установлен пакет uv :

# Install uv if not already installed
pip install uv

Создайте и активируйте виртуальное окружение Python с помощью uv:

# Create virtual environment
uv venv

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

В конце командной строки терминала должно появиться расширение (.venv) .

Установите зависимости

Установите все необходимые пакеты:

uv pip install -r requirements.txt

К основным зависимостям относятся:

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

Настройка переменных среды

  1. Создайте файл .env :
cp example.env .env
  1. Отредактируйте файл .env :

При использовании Cloud Shell нажмите «Открыть редактор» на панели инструментов, затем перейдите к .env и обновите его:

# 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. Настройка MCP Toolbox (предварительно настроено — запускать не нужно):

В этой лабораторной работе MCP Toolbox уже размещен и предварительно настроен, поэтому вам не нужно создавать или управлять файлом tools.yaml локально.

Обычно для генерации файла tools.yaml из переменных окружения после обновления файла investment_agent/.adk/tools.yaml.template при необходимости следует выполнить следующую команду:

python setup_tools_yaml.py

В результате будет сгенерирован файл investment_agent/.adk/tools.yaml , содержащий ваши учетные данные Neo4j, правильно настроенные для MCP Toolbox.

Вы будете запускать приведенный выше скрипт только в том случае, если:

  • Вы используете MCP Toolbox на собственном сервере.
  • Вы подключаетесь к другой базе данных или набору данных Neo4j.
  • Вы хотите определить пользовательские инструменты или учетные данные.

В таких случаях потребуется соответствующим образом обновить URL-адрес MCP Toolbox и конфигурацию tools.yaml .

Проверка конфигурации

Убедитесь, что всё настроено правильно:

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

Ваша среда разработки полностью настроена! Далее мы перейдём к многоагентной архитектуре.

6. Понимание многоагентной архитектуры

Четырехагентная система

Наша система исследования инвестиций использует иерархическую многоагентную архитектуру, в которой четыре специализированных агента работают вместе, чтобы отвечать на сложные запросы о компаниях, инвесторах и рыночной информации.

                ┌──────────────┐
                │  Root Agent  │ ◄── User Query
                └──────┬───────┘
                       │
      ┌────────────────┼────────────────┐
      │                │                │
┌─────▼─────┐     ┌────▼─────┐     ┌────▼──────────┐
│ Graph DB  │     │ Investor │     │  Investment   │
│  Agent    │     │ Research │     │  Research     │
└───────────┘     │  Agent   │     │  Agent        │
                  └──────────┘     └───────────────┘
  1. Корневой агент (Оркестратор):

Корневой агент выступает в роли интеллектуального координатора всей системы. Он получает запросы пользователей, анализирует их намерения и направляет запросы наиболее подходящему специализированному агенту. Представьте его как менеджера проекта, который понимает, какой член команды лучше всего подходит для каждой задачи. Он также обрабатывает агрегацию ответов, форматируя результаты в виде таблиц или диаграмм по запросу, и поддерживает контекст диалога между несколькими запросами. Корневой агент всегда отдает предпочтение специализированным агентам перед общим агентом базы данных, гарантируя, что запросы обрабатываются наиболее опытным компонентом.

  1. Агент графовой базы данных:

Агент графовой базы данных — это ваше прямое подключение к мощным возможностям Neo4j в области графовых баз данных. Он понимает схему базы данных, генерирует запросы Cypher на основе естественного языка и выполняет сложные обходы графа. Этот агент специализируется на структурных вопросах, агрегациях и многошаговом рассуждении в рамках графа знаний. Он является резервным вариантом, когда запросы требуют пользовательской логики, с которой не могут справиться предопределенные инструменты, что делает его незаменимым для исследовательского анализа и сложных аналитических запросов, которые не были предусмотрены при проектировании системы.

  1. Агент по анализу рынка для инвесторов:

Агент по исследованию инвесторов специализируется исключительно на инвестиционных связях и анализе портфелей. Он может определить, кто инвестировал в конкретные компании, используя точное совпадение названий, получить полные инвестиционные портфели, содержащие все их инвестиции, и проанализировать инвестиционные модели в различных отраслях. Эта специализация делает его чрезвычайно эффективным в ответах на такие вопросы, как «Кто инвестировал в ByteDance?» или «В какие еще компании инвестировала Sequoia Capital?». Агент использует пользовательские функции Python, которые напрямую запрашивают базу данных Neo4j для поиска связей, связанных с инвесторами.

  1. Агент по инвестиционным исследованиям:

Агент инвестиционных исследований использует инструментарий Model Context Protocol (MCP) для доступа к предварительно проверенным запросам, составленным экспертами. Он может получать информацию обо всех доступных отраслях, находить компании в конкретных отраслях, статьи с анализом настроений, обнаруживать упоминания организаций в новостях и получать информацию о сотрудниках компаний. В отличие от агента графовых баз данных, который генерирует запросы динамически, этот агент использует безопасные, оптимизированные, предопределенные запросы, которые централизованно управляются и проверяются. Это делает его одновременно безопасным и производительным для распространенных рабочих процессов исследования.

7. Запуск и тестирование многоагентной системы

Запустите приложение

Теперь, когда вы понимаете архитектуру, давайте запустим всю систему и научимся с ней взаимодействовать.

Запустите веб-интерфейс 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

Вы должны увидеть результат, похожий на следующий:

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)

Как только вы увидите сообщение об успешном запуске сервера, откройте браузер и перейдите по адресу http://127.0.0.1:8000 , чтобы получить доступ к приложению.

Тестовые запросы и ожидаемое поведение

Давайте изучим возможности системы, используя запросы постепенно усложняющейся сложности:

Базовые запросы (с одним агентом)

Запрос 1: Определить отрасли

What industries are available in the database?

Ожидаемое поведение:

  • Корневой агент ведет к агенту по инвестиционным исследованиям.
  • Использует инструмент MCP: get_industries()
  • Возвращает отформатированный список всех отраслей.

На что следует обратить внимание:

В пользовательском интерфейсе ADK разверните сведения о выполнении, чтобы увидеть:

  • решение о выборе агента
  • Вызов инструмента: get_industries()
  • Исходные результаты из Neo4j
  • Отформатированный ответ

Запрос 2: Найти инвесторов

Who invested in ByteDance?

Ожидаемое поведение:

  • Root Agent определяет этот запрос как запрос, связанный с инвесторами.
  • Пути к агенту по исследованиям рынка инвесторов
  • Использует инструмент: find_investor_by_name("ByteDance")
  • Информация о доходности инвестиций с указанием их типа (человек/организация).

Чего ожидать:

  • Список инвесторов, связанных с ByteDance.
  • Каждый инвестор указал свое имя и тип организации (физическое лицо или организация).
  • Краткое, удобочитаемое изложение результатов.
  • Дополнительное предложение, направленное на изучение смежных инвестиций или инвестиционных портфелей ( возможно ).

Запрос 3: Компании по отраслям

Show me companies in the Artificial Intelligence industry

Ожидаемое поведение:

  • Корневой агент ведет к агенту по инвестиционным исследованиям.
  • Использует инструмент MCP: get_companies_in_industry("Artificial Intelligence")
  • Возвращает список компаний, занимающихся искусственным интеллектом, с указанием идентификаторов и дат основания.

На что следует обратить внимание:

  • Обратите внимание, как агент использует точное сопоставление названий отраслей.
  • Результаты ограничены, чтобы избежать чрезмерного объема данных.
  • Данные отформатированы для удобства чтения.

Промежуточные запросы (многоэтапные в рамках одного агента)

Запрос 4: Анализ настроений

Find articles with positive sentiment from January 2023

Ожидаемое поведение:

  • Пути к агенту по инвестиционным исследованиям
  • Использует инструмент MCP: get_articles_with_sentiment(0.7, 2023, 1)
  • Возвращает статьи с заголовками, оценками эмоциональной окраски и датами публикации.

Совет по отладке:

Посмотрите на параметры вызова инструмента:

  • min_sentiment : 0.7 (агент интерпретирует «положительный» как >= 0.7)
  • year : 2023
  • month : 1

Запрос 5: Сложный запрос к базе данных

How many companies are in the database?

Ожидаемое поведение:

  • Маршруты корневого агента к агенту базы данных графа
  • Агент сначала вызывает функцию get_neo4j_schema() , чтобы понять структуру.
  • Генерирует Cypher: MATCH (c:Company) RETURN count(c)
  • Выполняет запрос и возвращает количество.

Ожидаемый ответ:

There are 46,088 companies in the database.

Расширенные запросы (координация нескольких агентов)

Запрос 6: Анализ портфеля

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

Ожидаемое поведение:

Это запрос, состоящий из двух частей и требующий координации действий агентов:

  • Шаг 1 : Корневой агент → Агент по исследованию инвесторов
  • Вызовы find_investor_by_name("ByteDance")
  • Список инвесторов составлен: [Ронг Юэ, Венди Мердок]
  • Шаг 2 : Для каждого инвестора → Агент по исследованию инвесторов
  • Вызов функции find_investor_by_id(investor_id)
  • Извлекает полный портфель.
  • Шаг 3 : Агрегирование и форматирование данных корневым агентом.

Чего ожидать:

  • Список инвесторов, вложивших средства в ByteDance.
  • Для каждого инвестора:
  • Их имя и тип организации (физическое лицо или организация).
  • Список других компаний, в которые они инвестировали, на основе имеющихся данных.
  • Структурированное, легко читаемое резюме, сгруппированное по инвесторам.

На что следует обратить внимание:

  • Последовательный вызов нескольких инструментов
  • Контекст сохраняется между шагами
  • Результаты агрегированы интеллектуально.

Запрос 7: Многопрофильные исследования

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

Ожидаемое поведение:

Для выполнения этого сложного запроса требуется несколько агентов и инструментов:

  • Шаг 1 : Агент по инвестиционным исследованиям
  • get_companies_in_industry("Artificial Intelligence")
  • Выводит список компаний, занимающихся искусственным интеллектом.
  • Шаг 2 : Агент по инвестиционным исследованиям
  • get_articles_with_sentiment(0.8)
  • Возвращает положительные отзывы
  • Шаг 3 : Фильтры корневого агента
  • Определяет, какие компании, занимающиеся искусственным интеллектом, упоминаются в позитивных статьях.
  • Выбирает топ-5
  • Шаг 4 : Агент по инвестиционным исследованиям
  • get_people_in_organizations([company_names], "CEO")
  • Возвращает информацию о генеральном директоре
  • Шаг 5 : Корневой агент форматирует ответ

Чего ожидать:

  • Список из пяти компаний в индустрии искусственного интеллекта.
  • Только компании, упомянутые в статьях с положительными оценками.
  • Для каждой компании:
  • Название компании
  • Промышленность
  • имя генерального директора
  • Совокупный или репрезентативный показатель настроения

На что следует обратить внимание:

  • Многочисленные вызовы инструментов разными агентами
  • Логика фильтрации и объединения данных

Запрос 8: Конкурентный анализ

Who are YouTube's main competitors?

Ожидаемое поведение:

  • Маршруты корневого агента к агенту графовой базы данных (запросы на установление связей).
  • Агент генерирует Cypher, улучшенный с помощью GraphRAG:
MATCH (c:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor)
RETURN competitor.name as competitor_name
  • Выводит список конкурирующих компаний.

Ожидаемый ответ:

YouTube's main competitors are:

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

Контекстно-зависимые последующие запросы

Вопрос 9: Дополнительный вопрос (после вопроса 8)

Which investors funded both YouTube and its competitors?

Ожидаемое поведение:

  • Root Agent запоминает предыдущий контекст (YouTube и его конкуренты).
  • Пути к агенту по исследованиям рынка инвесторов
  • YouTube и его конкуренты находят инвесторов.
  • Выявляет инвесторов, фигурирующих в нескольких компаниях.

Чего ожидать:

  • Система использует существующий контекст диалога (YouTube и его конкуренты).
  • Список инвесторов, вложивших средства более чем в одну компанию в условиях такой высокой конкуренции.
  • Для каждого инвестора:
  • Имя инвестора
  • Сгруппированный список соответствующих компаний, в которые они инвестировали.
  • Краткое аналитическое заключение, подчеркивающее стратегическое совпадение или закономерности ( возможно ).

Запрос 10: Краткое изложение результатов исследования

Summarize our research findings so far

Ожидаемое поведение:

  • Root Agent просматривает историю переписки
  • Обобщает основные выводы из предыдущих запросов.
  • Предоставляет связное резюме.

Чего ожидать:

  • Краткое, хорошо структурированное изложение выводов, полученных в ходе предыдущих запросов.
  • Основные выводы, сгруппированные по темам (обзор отрасли, анализ компаний, настроения, конкуренция, лидерство).
  • Четкое выделение пунктов списка:
  • Исследованные отрасли
  • Известные компании и инвесторы
  • Модели межкорпоративных инвестиций
  • Тенденции рыночных настроений
  • Последовательное повествование, отражающее контекстно-ориентированный синтез на протяжении всей сессии.

Понимание взаимодействия агентов в режиме отладки

Веб-интерфейс ADK обеспечивает детальную видимость выполнения. Вот на что следует обратить внимание:

  1. Хронология событий

Отображает хронологическую последовательность событий:

[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. Сведения о вызове инструмента

Нажмите на любой вызов инструмента, чтобы увидеть:

  • Название функции
  • Входные параметры
  • Возвращаемое значение
  • Время выполнения
  • Любые ошибки
  1. Принятие решений агентом

Обратите внимание на аргументацию магистра права:

  • Почему был выбран именно этот агент
  • Как система интерпретировала запрос
  • Какие инструменты были учтены
  • Почему результаты были отформатированы определенным образом?

Общие наблюдения и выводы

Шаблоны маршрутизации запросов:

  • Ключевые слова, такие как "инвестор", "инвестировал" → Агент по исследованию рынка инвесторов
  • Ключевые слова, такие как «отрасль», «компании», «статьи» → Агент по инвестиционным исследованиям
  • Агрегирование, подсчеты, сложная логика → Агент графовой базы данных

Примечания к исполнению:

  • Инструменты MCP обычно работают быстрее (предварительно оптимизированные запросы).
  • Генерация сложных шифров занимает больше времени (время на обдумывание в рамках магистерской программы).
  • Многократные вызовы инструментов увеличивают задержку, но обеспечивают более качественные результаты.

Обработка ошибок:

Если запрос не выполнен:

  • Агент объясняет, что пошло не так.
  • Предлагает исправления (например, "Название компании не найдено, проверьте орфографию")
  • Возможно, стоит попробовать альтернативные подходы.

Советы по эффективному тестированию

  1. Начните с простого : протестируйте основные функции каждого агента, прежде чем выполнять сложные запросы.
  2. Используйте дополнительные вопросы : проверьте запоминание контекста с помощью дополнительных вопросов.
  3. Наблюдение за маршрутизацией : следите за тем, какой агент обрабатывает каждый запрос, чтобы понять логику.
  4. Проверка вызовов инструментов : Убедитесь, что параметры корректно извлекаются из естественного языка.
  5. Протестируйте нестандартные случаи : попробуйте неоднозначные запросы, орфографические ошибки или необычные обращения.

Теперь у вас есть полностью функциональная многоагентная система GraphRAG! Поэкспериментируйте со своими собственными вопросами, чтобы изучить её возможности.

8. Уборка

Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этой статье, выполните следующие действия:

  1. В консоли Google Cloud перейдите на страницу «Управление ресурсами» .
  2. В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить» .
  3. В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.

9. Поздравляем!

🎉 Поздравляем! Вы успешно создали многоагентную систему GraphRAG производственного уровня, используя комплект разработки агентов Google, Neo4j и MCP Toolbox!

Сочетая интеллектуальные возможности оркестровки ADK с богатой взаимосвязями моделью данных Neo4j и безопасностью предварительно проверенных запросов MCP, вы создали сложную систему, которая выходит за рамки простых запросов к базе данных — она понимает контекст, рассуждает в рамках сложных взаимосвязей и координирует работу специализированных агентов для предоставления всесторонних и точных аналитических данных.

В этом практическом задании вы выполнили следующие действия:

Создана многоагентная система с использованием комплекта разработки агентов Google (ADK) с иерархической оркестрацией.

Интегрированная графовая база данных Neo4j для использования запросов с учетом взаимосвязей и многошагового логического вывода.

Внедрен инструментарий MCP Toolbox для безопасных, предварительно проверенных запросов к базе данных в виде многократно используемых инструментов.

Созданы специализированные агенты для исследования инвесторов, анализа инвестиций и работы с графовыми базами данных.

Разработана интеллектуальная система маршрутизации , которая автоматически распределяет запросы между наиболее подходящими экспертами.

Обработка сложных типов данных с корректной сериализацией типов Neo4j для бесшовной интеграции с Python.

Применение передовых методов проектирования агентов, обработки ошибок и отладки системы.

Что дальше?

Эта многоагентная архитектура GraphRAG не ограничивается инвестиционными исследованиями — её можно расширить на следующие области применения:

  • Финансовые услуги : оптимизация портфеля, оценка рисков, выявление мошенничества.
  • Здравоохранение : координация ухода за пациентами, анализ лекарственных взаимодействий, клинические исследования.
  • Электронная коммерция : персонализированные рекомендации, оптимизация цепочки поставок, анализ потребительских предпочтений.
  • Правовые вопросы и соблюдение нормативных требований : анализ контрактов, мониторинг регулирующих органов, исследование прецедентного права.
  • Академические исследования : обзор литературы, поиск сотрудничества, анализ цитирования.
  • Корпоративная аналитика : конкурентный анализ, исследование рынка, графы организационных знаний.

Везде, где есть сложные взаимосвязанные данные , экспертные знания в предметной области и интерфейсы на естественном языке , это сочетание многоагентных систем ADK, графов знаний Neo4j и запросов, проверенных с помощью MCP, может обеспечить работу интеллектуальных корпоративных приложений нового поколения.

По мере дальнейшего развития комплекта разработки агентов Google и моделей Gemini вы сможете внедрять еще более сложные модели рассуждений, интеграцию данных в реальном времени и многомодальные возможности для создания по-настоящему интеллектуальных, контекстно-ориентированных систем.

Продолжайте исследовать, продолжайте создавать и выводите свои приложения с интеллектуальными агентами на новый уровень!

Изучите дополнительные практические руководства по графам знаний на Neo4j GraphAcademy и откройте для себя новые шаблоны агентов в репозитории примеров ADK .

🚀 Готовы создать свою следующую интеллектуальную систему агентов?

Справочная документация