1. Обзор
Агент — это автономная программа, которая взаимодействует с моделью искусственного интеллекта для выполнения целенаправленной операции, используя имеющиеся у неё инструменты и контекст, и способна принимать автономные решения, основанные на истине!
Когда ваше приложение состоит из нескольких агентов, работающих автономно и совместно по мере необходимости для достижения своей более масштабной цели, при этом каждый из агентов обладает независимыми знаниями и отвечает за определенную область деятельности, тогда ваше приложение становится многоагентной системой .
Комплект для разработки агентов (ADK)
Комплект разработки агентов (ADK) — это гибкая и модульная платформа для разработки и развертывания агентов искусственного интеллекта. ADK поддерживает создание сложных приложений путем объединения нескольких отдельных экземпляров агентов в многоагентную систему (MAS).
В ADK многоагентная система — это приложение, в котором различные агенты, часто образующие иерархию, сотрудничают или координируют свои действия для достижения более масштабной цели. Такая структура приложения предоставляет значительные преимущества, включая повышенную модульность, специализацию, возможность повторного использования, удобство сопровождения и возможность определения структурированных потоков управления с использованием выделенных агентов рабочих процессов.
Что следует учитывать при проектировании многоагентной системы
Во-первых , важно иметь правильное понимание и обоснование специализации каждого агента. — «Знаете ли вы, зачем вам нужен конкретный субагент для чего-либо?» — сначала разберитесь с этим.
Во-вторых , как объединить их с корневым агентом для маршрутизации и осмысления каждого из ответов.
Во-третьих , в этой документации вы найдете несколько типов маршрутизации агентов. Убедитесь, какой из них подходит для работы вашего приложения. Также определите, какие контексты и состояния вам необходимы для управления потоком в вашей многоагентной системе.
Что вы построите
Давайте создадим многоагентную систему для управления ремонтом кухни. Вот что мы и сделаем. Мы построим систему с тремя агентами.
- Агент по подготовке предложений по реконструкции
- Агент по проверке разрешений и соответствия требованиям
- Агент по проверке статуса заказа
Специалист по подготовке предложений по ремонту, занимающийся составлением проектной документации на ремонт кухни.
Специалист по выдаче разрешений и соблюдению нормативных требований, занимающийся вопросами, связанными с разрешениями и соблюдением нормативных требований.
Агент проверки статуса заказа предназначен для проверки статуса заказа материалов путем работы с базой данных управления заказами, которую мы настроили в AlloyDB.
У нас будет корневой агент, который будет координировать работу этих агентов в зависимости от потребностей.
Требования
2. Прежде чем начать
Создать проект
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
Также, если вы читаете это и хотели бы получить бонусы, которые помогут вам начать работу с Google Cloud и использовать ADK, воспользуйтесь этой ссылкой для активации бонусов. Вы можете следовать инструкциям здесь, чтобы активировать их. Обратите внимание, что эта ссылка действительна только до конца мая.
- Активируйте Cloud Shell, перейдя по этой ссылке . Вы можете переключаться между терминалом Cloud Shell (для выполнения облачных команд) и редактором (для сборки проектов), нажав соответствующую кнопку в Cloud Shell.
- После подключения к Cloud Shell необходимо проверить, прошли ли вы аутентификацию и установлен ли идентификатор вашего проекта, используя следующую команду:
gcloud auth list
- Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте.
gcloud config list project
- Если ваш проект не задан, используйте следующую команду для его настройки:
gcloud config set project <YOUR_PROJECT_ID>
- Убедитесь, что у вас установлен Python 3.9 или более поздней версии.
- Включите следующие API, выполнив следующие команды:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
- Для получения информации о командах 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 000 токенов, для длинных аналитических отчетов и подробной документации. Функция Thinking в Gemini активируется при включении Gemini 2.5 Pro, которая обладает встроенными возможностями логического вывода и может обрабатывать длинные контекстные запросы.
Ниже приведён фрагмент ответа:

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", чтобы у вас был доступ к генерации изображений.
В результате я получил следующее:

В этом и заключается сила Близнецов!
От анализа видео до генерации изображений и сопоставления реальной информации с результатами поиска Google — с помощью Gemini можно создавать практически всё.
В AI Studio вы можете взять этот прототип, получить ключ API и масштабировать его до полноценного агентного приложения, используя возможности Vertex AI ADK.
4. Настройка ADK
- Создание и активация виртуальной среды (рекомендуется)
Создайте виртуальную среду в терминале Cloud Shell:
python -m venv .venv
Активируйте виртуальную среду:
source .venv/bin/activate
- Установите ADK
pip install google-adk
5. Структура проекта
- В терминале Cloud Shell создайте каталог в нужном месте для вашего проекта.
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
- Перейдите в редактор Cloud Shell и создайте следующую структуру проекта, создав файлы (изначально пустые):
renovation-agent/
__init__.py
agent.py
.env
requirements.txt
6. Исходный код
- Перейдите в файл " init.py " и обновите его следующим содержимым:
from . import agent
- Перейдите в файл agent.py и обновите его, добавив следующее содержимое из следующего пути:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py
В файле agent.py мы импортируем необходимые зависимости, получаем параметры конфигурации из файла .env и определяем root_agent, который управляет тремя субагентами, которые мы решили создать в этом приложении. Существует несколько инструментов, которые помогают с основными и вспомогательными функциями этих субагентов.
- Убедитесь, что у вас есть доступ к облачному хранилищу (Cloud Storage Bucket).
Это необходимо для хранения документа с предложением, сгенерированного агентом. Создайте его и предоставьте доступ, чтобы многоагентная система, созданная с помощью Vertex AI, могла к нему получить доступ. Вот как это можно сделать:
https://cloud.google.com/storage/docs/creating-buckets#console
Назовите свой бакет " next-demo-store ". Если вы назовёте его иначе, не забудьте обновить значение переменной STORAGE_BUCKET в файле .env (на шаге настройки переменных окружения).
- Чтобы настроить доступ к хранилищу, перейдите в консоль Cloud Storage и выберите ваше хранилище (в нашем случае имя хранилища — "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.
- Создать список зависимостей
Перечислите все зависимости в файле requirements.txt . Вы можете скопировать его из репозитория .
Объяснение исходного кода многоагентной системы
Файл agent.py определяет структуру и поведение нашей многоагентной системы для ремонта кухни, использующей комплект разработки агентов (ADK). Давайте рассмотрим ключевые компоненты:
Определения агентов
Агент по подготовке предложений по реконструкции
Этот агент отвечает за создание документа с предложением по ремонту кухни. Он может дополнительно запрашивать такие параметры, как размер кухни, желаемый стиль, бюджет и предпочтения заказчика. На основе этой информации он использует модель обработки больших языков (LLM) Gemini 2.5 для генерации подробного предложения. Сгенерированное предложение затем сохраняется в хранилище Google Cloud Storage.
Агент по проверке разрешений и соответствия
Этот агент сосредоточен на обеспечении соответствия проекта реконструкции местным строительным нормам и правилам. Он получает информацию о предлагаемой реконструкции (например, о структурных изменениях, электромонтажных работах, изменениях в водопроводе) и использует LLM для проверки требований к разрешениям и правил соответствия. Агент использует информацию из базы знаний (которую вы можете настроить для доступа к внешним API для сбора соответствующих нормативных документов).
OrderingAgent
Этот агент (вы можете закомментировать его, если не хотите реализовывать сейчас) отвечает за проверку статуса заказа материалов и оборудования, необходимых для ремонта. Для его включения вам потребуется создать функцию Cloud Run, как описано в шагах настройки. Затем агент вызовет эту функцию Cloud Run, которая будет взаимодействовать с базой данных AlloyDB, содержащей информацию о заказах. Это демонстрирует интеграцию с системой баз данных для отслеживания данных в реальном времени.
Корневой агент (Оркестратор)
Корневой агент (root_agent) выступает в роли центрального координатора многоагентной системы. Он получает первоначальный запрос на ремонт и определяет, какие субагенты следует вызвать в зависимости от потребностей запроса. Например, если запрос требует проверки требований к разрешениям, он вызовет PermitsAndComplianceCheckAgent. Если пользователь хочет проверить статус заказа, он вызовет OrderingAgent (если он включен).
Затем root_agent собирает ответы от sub-агентов и объединяет их, чтобы предоставить пользователю исчерпывающий ответ. Это может включать в себя краткое изложение предложения, список необходимых разрешений и предоставление обновлений статуса заказа.
Поток данных и ключевые понятия
Пользователь инициирует запрос через интерфейс ADK (либо через терминал, либо через веб-интерфейс).
- Запрос получен корневым агентом.
- Корневой агент анализирует запрос и перенаправляет его соответствующим суб-агентам.
- Суб-агенты используют LLM-ы, базы знаний, API и базы данных для обработки запроса и генерации ответов.
- Суб-агенты возвращают свои ответы корневому агенту.
- root_agent объединяет полученные ответы и предоставляет пользователю итоговый результат.
LLM (большие языковые модели)
Агенты в значительной степени полагаются на LLM-ы для генерации текста, ответов на вопросы и выполнения задач логического мышления. LLM-ы — это «мозг», обеспечивающий способность агентов понимать запросы пользователей и реагировать на них. В этом приложении мы используем Gemini 2.5.
Google Облачное хранилище
Используется для хранения сгенерированных документов по проектированию ремонта. Необходимо создать хранилище (bucket) и предоставить агентам необходимые права доступа к нему.
Запуск в облаке (необязательно)
Объект 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 .
Создайте кластер и экземпляр.
- Перейдите на страницу AlloyDB в Cloud Console. Большинство страниц в Cloud Console легко найти, используя строку поиска консоли.
- На этой странице выберите пункт «СОЗДАТЬ КЛАСТЕР» :

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

- При выборе сети по умолчанию вы увидите экран, похожий на тот, что показан ниже.
Выберите «НАСТРОЙКА СОЕДИНЕНИЯ» . 
- Затем выберите « Использовать автоматически выделенный диапазон IP-адресов » и продолжите. После проверки информации выберите «СОЗДАТЬ СОЕДИНЕНИЕ».

- После настройки сети вы можете продолжить создание кластера. Нажмите кнопку «СОЗДАТЬ КЛАСТЕР» , чтобы завершить настройку кластера, как показано ниже:

Обязательно измените идентификатор экземпляра (который можно найти во время настройки кластера/экземпляра) на
vector-instance . Если вы не можете его изменить, не забудьте использовать свой идентификатор экземпляра во всех последующих ссылках.
Обратите внимание, что создание кластера займет около 10 минут. После успешного завершения процесса вы увидите экран с обзором только что созданного кластера.
Ввод данных
Теперь пришло время добавить таблицу с данными о магазине. Перейдите в AlloyDB, выберите основной кластер, а затем AlloyDB Studio:

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

Команды для AlloyDB будут вводиться в окнах редактора, используя при необходимости параметры «Выполнить», «Форматировать» и «Очистить».
Создайте таблицу
В AlloyDB Studio можно создать таблицу, используя приведенный ниже оператор DDL:
-- 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 для извлечения информации о статусе заказа.
- Создайте функцию Cloud Run здесь: https://console.cloud.google.com/run/create?deploymentType=function
- Задайте имя функции как " check-status " и выберите " Java 17 " в качестве среды выполнения.
- Поскольку это демонстрационное приложение, вы можете установить для аутентификации параметр « Разрешить неаутентифицированные вызовы ».
- Выберите Java 17 в качестве среды выполнения и встроенный редактор для исходного кода.
- На этом этапе в редактор будет загружен код-заполнитель.
Замените код-заполнитель
- Измените имя Java-файла на " ProposalOrdersTool.java ", а имя класса на " ProposalOrdersTool ".
- Замените код-заполнитель в файлах ProposalOrdersTool.java и pom.xml кодом из соответствующих файлов в папке "Cloud Run Function" этого репозитория .
- В файле ProposalOrdersTool.java найдите следующую строку кода и замените значения-заполнители значениями из вашей конфигурации:
String ALLOYDB_INSTANCE_NAME = "projects/<<YOUR_PROJECT_ID>>/locations/us-central1/clusters/<<YOUR_CLUSTER>>/instances/<<YOUR_INSTANCE>>";
- Нажмите «Создать».
- Функция облачного запуска будет создана и развернута.
ВАЖНЫЙ ШАГ:
После развертывания, чтобы обеспечить доступ облачной функции к нашему экземпляру базы данных AlloyDB, мы создадим коннектор VPC.
После завершения подготовки к развертыванию вы сможете увидеть функции в консоли Google Cloud Run Functions. Найдите только что созданную функцию ( check-status ), щелкните по ней, затем нажмите «РЕДАКТИРОВАТЬ И РАЗВЕРНУТЬ НОВЫЕ ВЕРСИИ» (обозначается значком «РЕДАКТИРОВАТЬ» (карандаш) в верхней части консоли Cloud Run Functions) и измените следующее:
- Перейдите на вкладку «Сеть»:

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

- Укажите имя для VPC-коннектора и убедитесь, что регион совпадает с регионом вашего экземпляра. Оставьте значение «Сеть» по умолчанию и установите подсеть как «Пользовательский диапазон IP-адресов» с диапазоном IP-адресов 10.8.0.0 или аналогичным доступным значением.
- Разверните раздел «ПОКАЗАТЬ НАСТРОЙКИ МАСШТАБИРОВАНИЯ» и убедитесь, что параметры конфигурации установлены точно следующим образом:

- Нажмите кнопку СОЗДАТЬ , и этот соединитель должен появиться в списке настроек исходящего трафика.
- Выберите только что созданный соединитель.
- Выберите вариант, при котором весь трафик будет направляться через этот VPC-коннектор.
- Нажмите ДАЛЕЕ , а затем РАЗВЕРНУТЬ .
- После развертывания обновленной облачной функции вы должны увидеть сгенерированную конечную точку.
- Вы можете проверить это, нажав кнопку TEST в верхней части консоли Cloud Run Functions и выполнив полученную команду в терминале Cloud Shell.
- Развернутая конечная точка — это URL-адрес, который необходимо обновить в переменной
CHECK_ORDER_STATUS_ENDPOINTв файле .env.
8. Настройка модели
Способность вашего агента понимать запросы пользователей и генерировать ответы обеспечивается использованием модели большого языка (LLM). Вашему агенту необходимо совершать защищенные вызовы к этой внешней службе LLM, что требует аутентификации. Без действительной аутентификации служба LLM отклонит запросы агента, и агент не сможет работать.
- Получите ключ API в Google AI Studio .
- На следующем шаге, где вы будете настраивать файл .env, замените
<<your API KEY>>на фактическое значение вашего API-ключа.
9. Настройка переменных окружения
- Задайте значения параметров в файле шаблона .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. Запустите своего агента
- С помощью терминала перейдите в родительский каталог вашего проекта агента:
cd renovation-agent
- Установите все зависимости.
pip install -r requirements.txt
- Для запуска агента в терминале Cloud Shell выполните следующую команду:
adk run .
- Для запуска в веб-интерфейсе, подготовленном с помощью ADK, можно выполнить следующие действия:
adk web
- Проверьте работу, используя следующие подсказки:
user>>
Hello. Generate Proposal Document for the kitchen remodel requirement. I have no other specification.
11. Результат
@ Многоагентная система для задач по ремонту кухни

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. Варианты развертывания в одну строку
Теперь, когда вы протестировали развернутую многоагентную систему, давайте рассмотрим более простые методы, которые абстрагируют этап развертывания, выполненный на предыдущем шаге: ВАРИАНТЫ РАЗВЕРТЫВАНИЯ В ОДНУ СТРОКУ:
- В Cloud Run:
Синтаксис:
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
Вы можете использовать развернутую конечную точку для интеграции с нижестоящими системами.
- Для Agent Engine:
Синтаксис:
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 должен появиться новый агент. Более подробную информацию можно найти в этой статье блога .
14. Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этой статье, выполните следующие действия:
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» .
- В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить» .
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.
15. Поздравляем!
Поздравляем! Вы успешно создали своего первого агента и взаимодействовали с ним с помощью ADK!