1. Обзор
В этом практическом занятии вы создадите сложную многоагентную систему для исследования инвестиций, которая объединит возможности комплекта разработки агентов Google (ADK), графовой базы данных Neo4j и инструментария Model Context Protocol (MCP). В этом практическом руководстве показано, как создавать интеллектуальных агентов, которые понимают контекст данных через графовые связи и предоставляют высокоточные ответы на запросы.
Почему GraphRAG + многоагентные системы?
GraphRAG (Graph-based Retrieval-Augmented Generation) расширяет возможности традиционных подходов RAG, используя богатую структуру связей в графах знаний. Вместо простого поиска похожих документов, агенты GraphRAG могут:
- Прослеживание сложных взаимосвязей между сущностями
- Понимание контекста через структуру графа.
- Предоставьте объяснимые результаты на основе связанных данных.
- Выполнить многошаговое логическое рассуждение в рамках графа знаний.
Многоагентные системы позволяют вам:
- Разложите сложные проблемы на специализированные подзадачи.
- Создавайте модульные, поддерживаемые приложения искусственного интеллекта.
- Обеспечить параллельную обработку и эффективное использование ресурсов.
- Создавайте иерархические шаблоны рассуждений с помощью оркестровки.
Что вы построите
Вы создадите полноценную систему исследования инвестиций, включающую в себя:
- Агент графовой базы данных : выполняет запросы Cypher и понимает схему Neo4j.
- Специалист по исследованию рынка инвесторов : выявляет связи с инвесторами и формирует инвестиционные портфели.
- Специалист по инвестиционным исследованиям : получает доступ к обширным графам знаний с помощью инструментов MCP.
- Корневой агент : интеллектуально координирует работу всех подчиненных агентов.
Система будет отвечать на сложные вопросы, такие как:
- «Кто являются главными конкурентами YouTube?»
- «Какие компании упоминались с позитивным настроем в январе 2023 года?»
- «Кто инвестировал в ByteDance и куда еще они инвестировали?»
Обзор архитектуры

В ходе этого практического занятия вы изучите как концептуальные основы, так и практическую реализацию создания корпоративных агентов 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

Такая структура позволяет легко задавать вопросы, например:
- В каких фильмах снимался этот актёр?
- Кто работал с Кристофером Ноланом?
- Какие фильмы похожи по актерскому составу или жанру?
Что такое GraphRAG?
Генерация с расширенным извлечением информации (Retrieval-Augmented Generation, RAG) улучшает ответы LLM за счет извлечения релевантной информации из внешних источников. Традиционная RAG обычно:
- Встраивает документы в векторные изображения.
- Поиск похожих векторов
- Передает полученные документы в магистратуру.
GraphRAG расширяет это, используя графы знаний:
- Встраивает сущности и связи
- Обходит соединения графа
- Извлекает контекстную информацию из нескольких переходов.
- Предоставляет структурированные, объяснимые результаты.
Почему графы необходимы для работы с ИИ-агентами?
Рассмотрим следующий вопрос: «Кто являются конкурентами 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) предоставляет базовые элементы для создания многоагентных систем:
- Иерархия агентов:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
name="RootAgent",
sub_agents=[
graph_db_agent,
investor_agent,
investment_agent
]
)
- Специализированные агенты: Каждый агент имеет
- Конкретные инструменты: функции, которые они могут вызывать.
- Четкие инструкции: его роль и возможности.
- Экспертиза в предметной области: знание своей области.
- Шаблоны оркестровки:
- Последовательный: Выполнение действий агентами в порядке следования.
- Параллельный режим: Запуск нескольких агентов одновременно.
- Условный режим: Маршрутизация на основе типа запроса
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 создает мощную систему:
- Корневой агент получает запрос пользователя.
- Маршрутизация к специализированному агенту в зависимости от типа запроса.
- Агент использует инструменты MCP для безопасного получения данных.
- Структура графа обеспечивает богатый контекст.
- LLM генерирует обоснованный, объяснимый ответ.
Теперь, когда мы разобрались с архитектурой, давайте начнём строить!
3. Настройка проекта Google Cloud
Создать проект
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
- Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud. Нажмите «Активировать Cloud Shell» в верхней части консоли Google Cloud. Вы можете переключаться между терминалом Cloud Shell (для выполнения облачных команд) и редактором (для сборки проектов), нажав соответствующую кнопку в Cloud Shell.

- После подключения к Cloud Shell необходимо проверить, прошли ли вы аутентификацию и установлен ли идентификатор вашего проекта, используя следующую команду:
gcloud auth list
- Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте.
gcloud config list project
- Если ваш проект не задан, используйте следующую команду для его установки:
gcloud config set project <YOUR_PROJECT_ID>
Для получения информации о командах gcloud и их использовании обратитесь к документации .
Отлично! Теперь мы готовы перейти к следующему шагу — изучению набора данных.
4. Анализ набора данных о компаниях
Для этого практического занятия мы используем базу данных Neo4j только для чтения, предварительно заполненную данными об инвестициях и компаниях из Knowledge Graph Diffbot .
Набор данных содержит:
- 237 358 узлов, представляющих:
- Организации (компании)
- Люди (руководители, сотрудники)
- Статьи (новости и упоминания)
- Отрасли
- Технологии
- Инвесторы
- Взаимоотношения, включая:
-
INVESTED_IN- Инвестиционные связи -
COMPETES_WITH- Конкурентные отношения -
MENTIONS- Ссылки на статьи -
WORKS_AT- Трудовые отношения -
IN_INDUSTRY- Классификация отраслей промышленности

Получите доступ к демонстрационной базе данных
Для этого практического занятия мы будем использовать размещенный демонстрационный экземпляр. Добавьте эти учетные данные в свои заметки:
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, потому что:
- Сложные взаимоотношения : комплексные связи между сущностями
- Данные из реального мира : реальные компании, люди и новостные статьи.
- Многошаговые запросы : требуют обхода нескольких типов связей.
- Временные данные : статьи с временными метками для анализа по времени.
- Анализ настроений : Предварительно рассчитанные оценки настроений для статей.
Теперь, когда вы понимаете структуру данных, давайте настроим вашу среду разработки!
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
Настройка переменных среды
- Создайте файл
.env:
cp example.env .env
- Отредактируйте файл
.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
- Настройка 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 │
└──────────┘ └───────────────┘
- Корневой агент (Оркестратор):
Корневой агент выступает в роли интеллектуального координатора всей системы. Он получает запросы пользователей, анализирует их намерения и направляет запросы наиболее подходящему специализированному агенту. Представьте его как менеджера проекта, который понимает, какой член команды лучше всего подходит для каждой задачи. Он также обрабатывает агрегацию ответов, форматируя результаты в виде таблиц или диаграмм по запросу, и поддерживает контекст диалога между несколькими запросами. Корневой агент всегда отдает предпочтение специализированным агентам перед общим агентом базы данных, гарантируя, что запросы обрабатываются наиболее опытным компонентом.
- Агент графовой базы данных:
Агент графовой базы данных — это ваше прямое подключение к мощным возможностям Neo4j в области графовых баз данных. Он понимает схему базы данных, генерирует запросы Cypher на основе естественного языка и выполняет сложные обходы графа. Этот агент специализируется на структурных вопросах, агрегациях и многошаговом рассуждении в рамках графа знаний. Он является резервным вариантом, когда запросы требуют пользовательской логики, с которой не могут справиться предопределенные инструменты, что делает его незаменимым для исследовательского анализа и сложных аналитических запросов, которые не были предусмотрены при проектировании системы.
- Агент по анализу рынка для инвесторов:
Агент по исследованию инвесторов специализируется исключительно на инвестиционных связях и анализе портфелей. Он может определить, кто инвестировал в конкретные компании, используя точное совпадение названий, получить полные инвестиционные портфели, содержащие все их инвестиции, и проанализировать инвестиционные модели в различных отраслях. Эта специализация делает его чрезвычайно эффективным в ответах на такие вопросы, как «Кто инвестировал в ByteDance?» или «В какие еще компании инвестировала Sequoia Capital?». Агент использует пользовательские функции Python, которые напрямую запрашивают базу данных Neo4j для поиска связей, связанных с инвесторами.
- Агент по инвестиционным исследованиям:
Агент инвестиционных исследований использует инструментарий 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 обеспечивает детальную видимость выполнения. Вот на что следует обратить внимание:
- Хронология событий
Отображает хронологическую последовательность событий:
[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
- Сведения о вызове инструмента
Нажмите на любой вызов инструмента, чтобы увидеть:
- Название функции
- Входные параметры
- Возвращаемое значение
- Время выполнения
- Любые ошибки
- Принятие решений агентом
Обратите внимание на аргументацию магистра права:
- Почему был выбран именно этот агент
- Как система интерпретировала запрос
- Какие инструменты были учтены
- Почему результаты были отформатированы определенным образом?
Общие наблюдения и выводы
Шаблоны маршрутизации запросов:
- Ключевые слова, такие как "инвестор", "инвестировал" → Агент по исследованию рынка инвесторов
- Ключевые слова, такие как «отрасль», «компании», «статьи» → Агент по инвестиционным исследованиям
- Агрегирование, подсчеты, сложная логика → Агент графовой базы данных
Примечания к исполнению:
- Инструменты MCP обычно работают быстрее (предварительно оптимизированные запросы).
- Генерация сложных шифров занимает больше времени (время на обдумывание в рамках магистерской программы).
- Многократные вызовы инструментов увеличивают задержку, но обеспечивают более качественные результаты.
Обработка ошибок:
Если запрос не выполнен:
- Агент объясняет, что пошло не так.
- Предлагает исправления (например, "Название компании не найдено, проверьте орфографию")
- Возможно, стоит попробовать альтернативные подходы.
Советы по эффективному тестированию
- Начните с простого : протестируйте основные функции каждого агента, прежде чем выполнять сложные запросы.
- Используйте дополнительные вопросы : проверьте запоминание контекста с помощью дополнительных вопросов.
- Наблюдение за маршрутизацией : следите за тем, какой агент обрабатывает каждый запрос, чтобы понять логику.
- Проверка вызовов инструментов : Убедитесь, что параметры корректно извлекаются из естественного языка.
- Протестируйте нестандартные случаи : попробуйте неоднозначные запросы, орфографические ошибки или необычные обращения.
Теперь у вас есть полностью функциональная многоагентная система GraphRAG! Поэкспериментируйте со своими собственными вопросами, чтобы изучить её возможности.
8. Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этой статье, выполните следующие действия:
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» .
- В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить» .
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.
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 .
🚀 Готовы создать свою следующую интеллектуальную систему агентов?