Многоагентное приложение с ADK, Agent Engine и AlloyDB,Мультиагентное приложение с ADK, Agent Engine и AlloyDB,Мультиагентное приложение с ADK, Agent Engine и AlloyDB,Мультиагентное приложение с ADK, Agent Engine и AlloyDB

1. Обзор

Агент — это автономная программа, которая взаимодействует с моделью искусственного интеллекта для выполнения целевой операции, используя имеющиеся у нее инструменты и контекст, и способна принимать автономные решения, основанные на истине!

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

Комплект для разработки агента (ADK)

Agent Development Kit (ADK) — это гибкая и модульная структура для разработки и развертывания агентов ИИ. ADK поддерживает создание сложных приложений путем объединения нескольких отдельных экземпляров агентов в многоагентную систему (MAS).

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

Что следует учитывать при работе с многоагентной системой

Во-первых , важно иметь правильное понимание и обоснование специализации каждого агента. — «Знаете ли вы, почему вам нужен определенный субагент для чего-либо», выясните это в первую очередь.

Во-вторых , как объединить их с корневым агентом для маршрутизации и осмысления каждого из ответов.

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

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

Давайте создадим многоагентную систему для управления ремонтом кухни. Вот что мы сделаем. Мы создадим систему с 3 агентами.

  1. Агент по предложениям по реконструкции
  2. Агент по проверке разрешений и соответствия
  3. Агент проверки статуса заказа

Агент по предложениям по ремонту, для составления документа предложения по ремонту кухни.

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

Агент проверки статуса заказа, проверяющий статус заказа материалов, работая с базой данных управления заказами, которую мы настроили в AlloyDB.

У нас будет корневой агент, который будет координировать работу этих агентов в зависимости от требований.

Требования

  • Браузер, например Chrome или Firefox
  • Проект Google Cloud с включенной оплатой.

2. Прежде чем начать

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

  1. В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.
  2. Убедитесь, что для вашего проекта Cloud включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .

Также, если вы читаете это и хотите получить кредиты, которые помогут вам начать работу с Google Cloud и использовать ADK, используйте эту ссылку для погашения кредитов. Вы можете следовать инструкциям здесь , чтобы погасить его. Обратите внимание, что эта ссылка действительна только до конца мая для погашения.

  1. Активируйте Cloud Shell, нажав на эту ссылку . Вы можете переключаться между Cloud Shell Terminal (для запуска облачных команд) и Editor (для создания проектов), нажав на соответствующую кнопку в Cloud Shell.
  2. После подключения к Cloud Shell вы проверяете, что вы уже аутентифицированы и что проекту присвоен ваш идентификатор проекта, с помощью следующей команды:
gcloud auth list
  1. Выполните следующую команду в Cloud Shell, чтобы подтвердить, что команда gcloud знает о вашем проекте.
gcloud config list project
  1. Если ваш проект не настроен, используйте следующую команду для его настройки:
gcloud config set project <YOUR_PROJECT_ID>
  1. Убедитесь, что у вас установлен Python 3.9+.
  2. Включите следующие API, выполнив следующие команды:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
  1. Информацию о командах и использовании gcloud см. в документации .

3. Прототип

Вы можете пропустить этот шаг, если решите использовать для проекта модель « Gemini 2.5 Pro ».

Перейдите в Google AI Studio . Начните вводить подсказку. Вот моя подсказка:

I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.

Отрегулируйте и настройте параметры с правой стороны, чтобы получить оптимальный отклик.

На основе этого простого описания Gemini сделал мне невероятно подробную подсказку для начала моего обновления! По сути, мы используем Gemini, чтобы получить еще лучшие ответы от AI Studio и наших моделей. Вы также можете выбрать различные модели для использования в зависимости от вашего варианта использования.

Мы выбрали Gemini 2.5 Pro. Это модель Thinking, что означает, что мы получаем еще больше выходных токенов, в данном случае до 65 тыс. токенов, для длинных анализов и подробных документов. Gemini thinking box появляется, когда вы включаете Gemini 2.5 Pro, который имеет собственные возможности рассуждения и может принимать длинные контекстные запросы.

Фрагмент ответа смотрите ниже:

a80d4bad4b3864f7.png

AI Studio проанализировала мои данные и создала все эти вещи, такие как шкафы, столешницы, фартук, пол, раковину, связность, цветовую палитру и выбор материалов. Gemini даже ссылается на источники!

Промойте и повторите с разными моделями, пока не будете удовлетворены результатом. Но я бы сказал, зачем проходить через все это, когда у вас есть Gemini 2.5 :)

В любом случае, теперь попробуйте воплотить эту идею в жизнь с помощью другой подсказки:

Add flat and circular light accessories above the island area for my current kitchen in the attached image.

Прикрепите ссылку на изображение вашей текущей кухни (или любой образец изображения кухни ). Измените модель на «Gemini 2.0 Flash Preview Image Generation», чтобы получить доступ к генерации изображений.

Я получил такой результат:

b5b1e83fcada28f5.png

Вот в чем сила Близнецов!

От понимания видео до создания собственных изображений и обоснования реальной информации с помощью поиска Google — есть вещи, которые можно реализовать только с помощью Gemini.

Из AI Studio вы можете взять этот прототип, получить ключ API и масштабировать его в полноценное агентское приложение, используя возможности Vertex AI ADK.

4. Настройка ADK

  1. Создать и активировать виртуальную среду (рекомендуется)

Создайте виртуальную среду в терминале Cloud Shell:

python -m venv .venv

Активируйте виртуальную среду:

source .venv/bin/activate
  1. Установить АДК
pip install google-adk

5. Структура проекта

  1. В Cloud Shell Terminal создайте каталог в желаемом месте расположения проекта.
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
  1. Перейдите в Cloud Shell Editor и создайте следующую структуру проекта, создав файлы (пустые для начала):
renovation-agent/
        __init__.py
        agent.py
        .env
        requirements.txt

6. Исходный код

  1. Перейдите в « init .py» и обновите следующим содержимым:
from . import agent
  1. Перейдите в agent.py и обновите файл следующим содержимым по следующему пути:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py

В agent.py мы импортируем необходимые зависимости, извлекаем параметры конфигурации из файла .env и определяем root_agent, который управляет 3 субагентами, которые мы намеревались создать в этом приложении. Существует несколько инструментов, которые помогают с основными и вспомогательными функциями этих субагентов.

  1. Убедитесь, что у вас есть Cloud Storage Bucket

Это нужно для хранения документа предложения, который генерирует агент. Создайте его и предоставьте доступ, чтобы многоагентная система, созданная с помощью Vertex AI, могла получить к нему доступ. Вот как это можно сделать:

https://cloud.google.com/storage/docs/creating-buckets#console

Назовите ваш контейнер " next-demo-store ". Если вы назовете его как-то иначе, не забудьте обновить значение STORAGE_BUCKET в файле .env (на этапе настройки переменных ENV).

  1. Чтобы настроить доступ к хранилищу, перейдите в консоль Cloud Storage и выберите свое хранилище Storage Bucket (в нашем случае имя хранилища — «next-demo-storage»: https://console.cloud.google.com/storage/browser/next-demo-storage ).

Перейдите в Разрешения -> Просмотр участников -> Предоставить доступ. Выберите участников как "allUsers" и роль как "Пользователь объекта хранения".

Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
  1. Создать список зависимостей

Список всех зависимостей в requirements.txt . Вы можете скопировать его из репозитория .

Объяснение исходного кода многоагентной системы

Файл agent.py определяет структуру и поведение нашей многоагентной системы для ремонта кухни с использованием Agent Development Kit (ADK). Давайте разберем ключевые компоненты:

Определения агентов

RenovationProposalAgent

Этот агент отвечает за создание документа предложения по ремонту кухни. Он опционально принимает входные параметры, такие как размер кухни, желаемый стиль, бюджет и предпочтения клиента. На основе этой информации он использует Large Language Model (LLM) Gemini 2.5 для создания подробного предложения. Затем созданное предложение сохраняется в контейнере Google Cloud Storage.

Агент проверки разрешений и соответствия

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

OrderingAgent

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

Корневой агент (Оркестратор)

root_agent выступает в качестве центрального оркестратора многоагентной системы. Он получает первоначальный запрос на обновление и определяет, какие субагенты вызывать на основе потребностей запроса. Например, если запрос требует проверки требований разрешений, он вызовет PermitsAndComplianceCheckAgent. Если пользователь хочет проверить статус заказа, он вызовет OrderingAgent (если включен).

Затем root_agent собирает ответы от субагентов и объединяет их, чтобы предоставить пользователю комплексный ответ. Это может включать в себя обобщение предложения, перечисление требуемых разрешений и предоставление обновлений статуса заказа.

Поток данных и ключевые концепции

Пользователь инициирует запрос через интерфейс ADK (терминал или веб-интерфейс).

  1. Запрос получен root_agent.
  2. Root_agent анализирует запрос и направляет его соответствующим субагентам.
  3. Субагенты используют LLM, базы знаний, API и базы данных для обработки запросов и генерации ответов.
  4. Субагенты возвращают свои ответы root_agent.
  5. Root_agent объединяет ответы и предоставляет пользователю окончательный результат.

LLM (большие языковые модели)

Агенты в значительной степени полагаются на LLM для генерации текста, ответов на вопросы и выполнения задач по рассуждению. LLM — это «мозги», стоящие за способностью агентов понимать и отвечать на запросы пользователей. В этом приложении мы используем Gemini 2.5.

Облачное хранилище Google

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

Облачный запуск (необязательно)

OrderingAgent использует функцию Cloud Run для взаимодействия с AlloyDB. Cloud Run предоставляет бессерверную среду для выполнения кода в ответ на HTTP-запросы.

AlloyDB

Если вы используете OrderingAgent, вам нужно настроить базу данных AlloyDB для хранения информации о заказах. Мы рассмотрим это подробнее в следующем разделе, который называется «Настройка базы данных».

Файл .env

Файл .env хранит конфиденциальную информацию, такую ​​как ключи API, учетные данные базы данных и имена контейнеров. Крайне важно сохранить этот файл в безопасности и не передавать его в репозиторий. Он также хранит параметры конфигурации для агентов и вашего проекта Google Cloud. root_agent или вспомогательные функции обычно считывают значения из этого файла. Убедитесь, что все требуемые переменные правильно заданы в файле .env. Это включает имя контейнера Cloud Storage

7. Настройка базы данных

В одном из инструментов, используемых ordering_agent, называемом "check_status", мы обращаемся к базе данных заказов AlloyDB, чтобы получить статус заказов. В этом разделе мы настроим кластер и экземпляр базы данных AlloyDB .

Создать кластер и экземпляр

  1. Перейдите на страницу AlloyDB в Cloud Console. Самый простой способ найти большинство страниц в Cloud Console — воспользоваться строкой поиска консоли.
  2. Выберите СОЗДАТЬ КЛАСТЕР на этой странице:

f76ff480c8c889aa.png

  1. Вы увидите экран, подобный показанному ниже. Создайте кластер и экземпляр со следующими значениями (убедитесь, что значения совпадают, если вы клонируете код приложения из репозитория):
  • идентификатор кластера : " vector-cluster "
  • пароль : " alloydb "
  • PostgreSQL 15 / последняя рекомендуемая версия
  • Регион : " us-central1 "
  • Сетевое взаимодействие : " default "

538dba58908162fb.png

  1. При выборе сети по умолчанию вы увидите экран, подобный показанному ниже.

Выберите НАСТРОЙКА ПОДКЛЮЧЕНИЯ .
7939bbb6802a91bf.png

  1. Оттуда выберите « Использовать автоматически выделенный диапазон IP-адресов » и «Продолжить». После просмотра информации выберите «СОЗДАТЬ ПОДКЛЮЧЕНИЕ». 768ff5210e79676f.png
  2. После настройки сети вы можете продолжить создание кластера. Нажмите CREATE CLUSTER , чтобы завершить настройку кластера, как показано ниже:

e06623e55195e16e.png

Обязательно измените идентификатор экземпляра (который вы можете найти во время настройки кластера/экземпляра) на

vector-instance . Если вы не можете его изменить, не забудьте использовать идентификатор вашего экземпляра во всех последующих ссылках.

Обратите внимание, что создание кластера займет около 10 минут. После успешного завершения вы должны увидеть экран, на котором будет показан обзор вашего кластера, который вы только что создали.

Прием данных

Теперь пришло время добавить таблицу с данными о магазине. Перейдите в AlloyDB, выберите основной кластер, а затем AlloyDB Studio:

847e35f1bf8a8bd8.png

Возможно, вам придется подождать, пока ваш экземпляр не будет создан. После этого войдите в AlloyDB, используя учетные данные, которые вы создали при создании кластера. Используйте следующие данные для аутентификации в PostgreSQL:

  • Имя пользователя: " postgres "
  • База данных: " postgres "
  • Пароль: " alloydb "

После успешной аутентификации в AlloyDB Studio, команды SQL вводятся в редакторе. Вы можете добавить несколько окон редактора, используя плюс справа от последнего окна.

91a86d9469d499c4.png

Команды для AlloyDB вы будете вводить в окнах редактора, используя при необходимости параметры «Выполнить», «Форматировать» и «Очистить».

Создать таблицу

Вы можете создать таблицу с помощью приведенного ниже оператора DDL в AlloyDB Studio:

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

Вставить записи

Скопируйте оператор запроса insert из скрипта database_script.sql , упомянутого выше, в редактор.

Нажмите «Выполнить» .

Теперь, когда набор данных готов, давайте создадим приложение Java Cloud Run Functions для извлечения статуса.

Создайте функцию Cloud Run на Java для извлечения информации о статусе заказа

  1. Создайте функцию Cloud Run здесь: https://console.cloud.google.com/run/create?deploymentType=function
  2. Задайте имя функции « check-status » и выберите « Java 17 » в качестве среды выполнения.
  3. Вы можете установить аутентификацию на « Разрешить неаутентифицированные вызовы », так как это демонстрационное приложение.
  4. Выберите Java 17 в качестве среды выполнения и встроенный редактор для исходного кода.
  5. На этом этапе в редактор будет загружен код-заполнитель.

Заменить код заполнителя

  1. Измените имя файла Java на « ProposalOrdersTool.java », а имя класса на « ProposalOrdersTool ».
  2. Замените код-заполнитель в ProposalOrdersTool.java и pom.xml кодом из соответствующих файлов в папке «Cloud Run Function» в этом репозитории .
  3. В ProposalOrdersTool.java найдите следующую строку кода, замените значения заполнителей значениями из вашей конфигурации:
String ALLOYDB_INSTANCE_NAME = "projects/<<YOUR_PROJECT_ID>>/locations/us-central1/clusters/<<YOUR_CLUSTER>>/instances/<<YOUR_INSTANCE>>";
  1. Нажмите «Создать».
  2. Будет создана и развернута функция Cloud Run.

ВАЖНЫЙ ШАГ:

После развертывания, чтобы разрешить облачной функции доступ к нашему экземпляру базы данных AlloyDB, мы создадим соединитель VPC.

После того, как вы настроитесь на развертывание, вы должны увидеть функции в консоли Google Cloud Run Functions. Найдите недавно созданную функцию ( check-status ), щелкните по ней, затем щелкните EDIT AND DEPLOY NEW REVISIONS (обозначается значком EDIT (ручка) в верхней части консоли Cloud Run Functions) и измените следующее:

  1. Перейдите на вкладку «Сеть»:

828cd861864d99ea.png

  1. Выберите « Подключиться к VPC для исходящего трафика », а затем выберите « Использовать коннекторы Serverless VPC Access ».
  2. В раскрывающемся списке «Сеть» выберите «Настройки», щелкните раскрывающийся список «Сеть» и выберите опцию « Добавить новый коннектор VPC » (если вы еще не настроили коннектор по умолчанию ), затем следуйте инструкциям, которые вы увидите в появившемся диалоговом окне:

6559ccfd10e597f2.png

  1. Введите имя для VPC Connector и убедитесь, что регион совпадает с вашим экземпляром. Оставьте значение Network по умолчанию и установите Subnet как Custom IP Range с диапазоном IP 10.8.0.0 или чем-то похожим, что доступно.
  2. Разверните ПОКАЗАТЬ НАСТРОЙКИ МАСШТАБИРОВАНИЯ и убедитесь, что у вас установлена ​​следующая конфигурация:

199b0ccd80215004.png

  1. Нажмите «СОЗДАТЬ» , и этот коннектор должен появиться в настройках выхода.
  2. Выберите только что созданный соединитель.
  3. Выберите маршрутизацию всего трафика через этот VPC-коннектор.
  4. Нажмите ДАЛЕЕ , а затем РАЗВЕРНУТЬ .
  5. После развертывания обновленной облачной функции вы должны увидеть сгенерированную конечную точку.
  6. Вы сможете протестировать его, нажав кнопку TEST в верхней части консоли Cloud Run Functions и выполнив полученную команду в терминале Cloud Shell.
  7. Развернутая конечная точка — это URL-адрес, который необходимо обновить в переменной .env CHECK_ORDER_STATUS_ENDPOINT .

8. Настройка модели

Способность вашего агента понимать запросы пользователей и генерировать ответы основана на Large Language Model (LLM). Вашему агенту необходимо совершать безопасные вызовы к этой внешней службе LLM, для чего требуются учетные данные аутентификации. Без действительной аутентификации служба LLM отклонит запросы агента, и агент не сможет функционировать.

  1. Получите ключ API от Google AI Studio .
  2. На следующем этапе настройки файла .env замените <<your API KEY>> на фактическое значение API KEY.

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

  1. Установите значения параметров в файле шаблона .env в этом репозитории . В моем случае .env имеет следующие переменные:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>
CHECK_ORDER_STATUS_ENDPOINT=<<YOUR_ENDPOINT_TO_CLOUD FUNCTION_TO_READ_ORDER_DATA_FROM_ALLOYDB>>

Замените заполнители своими значениями.

10. Запустите своего агента

  1. Используя терминал, перейдите в родительский каталог вашего проекта агента:
cd renovation-agent
  1. Установить все зависимости
pip install -r requirements.txt
  1. Для запуска агента вы можете выполнить следующую команду в терминале Cloud Shell:
adk run .
  1. Для запуска в веб-интерфейсе, предоставленном ADK, можно выполнить следующую команду:
adk web
  1. Протестируйте, используя следующие подсказки:
user>> 

Hello. Generate Proposal Document for the kitchen remodel requirement. I have no other specification.

11. Результат

@ Многоагентная система для задач по ремонту кухни

623fa35fce53b51b.png

12. Развертывание в Agent Engine

Теперь, когда вы проверили работоспособность многоагентной системы, давайте сделаем ее бессерверной и доступной в облаке для любого пользователя/любого приложения. Раскомментируйте приведенный ниже фрагмент кода в agent.py из их репозитория, и вы готовы развернуть свою многоагентную систему:

# Agent Engine Deployment:
# Create a remote app for our multiagent with agent Engine.
# This may take 1-2 minutes to finish.
# Uncomment the below segment when you're ready to deploy.

app = AdkApp(
    agent=root_agent,
    enable_tracing=True,
)

vertexai.init(
    project=PROJECT_ID,
    location=GOOGLE_CLOUD_LOCATION,
    staging_bucket=STAGING_BUCKET,
)

remote_app = agent_engines.create(
    app,
    requirements=[
        "google-cloud-aiplatform[agent_engines,adk]>=1.88",
        "google-adk",
        "pysqlite3-binary",
        "toolbox-langchain==0.1.0",
        "pdfplumber",
        "google-cloud-aiplatform",
        "cloudpickle==3.1.1",
        "pydantic==2.10.6",
        "pytest",
        "overrides",
        "scikit-learn",
        "reportlab",
        "google-auth",
        "google-cloud-storage",
    ],
)
# Deployment to Agent Engine related code ends

Запустите этот agent.py из папки проекта еще раз с помощью следующей команды:

>> cd adk-renovation-agent

>> python agent.py

Выполнение этого кода займет несколько минут. После завершения вы получите конечную точку, которая выглядит следующим образом:

'projects/123456789/locations/us-central1/reasoningEngines/123456'

Вы можете протестировать развернутый агент с помощью следующего кода, добавив новый файл « test.py ».

import vertexai
from vertexai.preview import reasoning_engines
from vertexai import agent_engines
import os
import warnings
from dotenv import load_dotenv
load_dotenv() 


GOOGLE_CLOUD_PROJECT = os.environ["GOOGLE_CLOUD_PROJECT"]
GOOGLE_CLOUD_LOCATION = os.environ["GOOGLE_CLOUD_LOCATION"]
GOOGLE_API_KEY = os.environ["GOOGLE_API_KEY"]
GOOGLE_GENAI_USE_VERTEXAI=os.environ["GOOGLE_GENAI_USE_VERTEXAI"]
AGENT_NAME = "adk_renovation_agent"
MODEL_NAME = "gemini-2.5-pro-preview-03-25" 
warnings.filterwarnings("ignore")
PROJECT_ID = GOOGLE_CLOUD_PROJECT

reasoning_engine_id = "<<YOUR_DEPLOYED_ENGINE_ID>>"

vertexai.init(project=PROJECT_ID, location="us-central1")
agent = agent_engines.get(reasoning_engine_id)
print("**********************")
print(agent)
print("**********************")


for event in agent.stream_query(
    user_id="test_user",
    message="I want you to check order status.",
):
    print(event)

В приведенном выше коде замените значение заполнителя « <<YOUR_DEPLOYED_ENGINE_ID>> » и выполните команду « python test.py », и все готово для выполнения этого действия для взаимодействия с многоагентной системой, которая развернута на Agent Engine и полностью готова к обновлению вашей кухни!!!

13. Варианты однолинейного развертывания

Теперь, когда вы протестировали развернутую многоагентную систему, давайте изучим более простые методы, абстрагирующие шаг развертывания, который мы выполнили на предыдущем этапе: ВАРИАНТЫ РАЗВЕРТЫВАНИЯ В ОДНУ СТРОКУ:

  1. Для запуска облака:

Синтаксис:

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=<<YOUR_SERVICE_NAME>> \
--app_name=<<YOUR_APP_NAME>> \
--with_ui \
./<<YOUR_AGENT_PROJECT_NAME>>

В этом случае:

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=renovation-agent \
--app_name=renovation-app \
--with_ui \
./renovation-agent

Развернутую конечную точку можно использовать для последующих интеграций.

  1. Для Агента Двигателя:

Синтаксис:

adk deploy agent_engine \
  --project <your-project-id> \
  --region us-central1 \
  --staging_bucket gs://<your-google-cloud-storage-bucket> \
  --trace_to_cloud \
  path/to/agent/folder

В этом случае:

adk deploy agent_engine --project <<YOUR_PROJECT_ID>> --region us-central1 --staging_bucket gs://<<YOUR_BUCKET_NAME>> --trace_to_cloud renovation-agent

Вы должны увидеть нового агента в пользовательском интерфейсе Agent Engine в Google Cloud Console. Обратитесь к этому блогу для получения более подробной информации.

14. Уборка

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

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

15. Поздравления

Поздравляем! Вы успешно создали и взаимодействовали со своим первым агентом с помощью ADK!