Создайте многоагентную систему с помощью ADK, разверните ее в Agent Engine и начните работу с протоколом A2A

1. Цель данной лабораторной работы

В этой практической работе вы создадите многоагентное приложение с использованием ADK (Agent Development Kit) , которое будет генерировать изображение на основе вашего запроса и оценивать его соответствие этому запросу. Если изображение не соответствует требованиям, описанным в запросе, агент будет продолжать генерировать изображения до тех пор, пока не будет создано изображение, отвечающее вашим требованиям. Каждый из агентов в этой практической работе выполняет одну единственную задачу, и они взаимодействуют друг с другом для достижения общей цели. Вы научитесь тестировать приложение локально и развертывать его в Vertex AI Agent Engine .

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

2. Настройка проекта

  • Если у вас еще нет проекта , который вы можете использовать, вам потребуется создать новый проект в консоли GCP .
  • В этой лабораторной работе мы будем использовать GCP Cloud Shell для выполнения наших задач. Откройте Cloud Shell и настройте проект с помощью Cloud Shell.
  • Откройте GCP Cloud Shell, щелкнув здесь: Cloud Shell . Если появится всплывающее окно «Авторизовать оболочку», нажмите на него, чтобы авторизовать редактор Cloud Shell.
  • Проверить, прошла ли аутентификация проекта, можно с помощью следующей команды в терминале Cloud Shell.
gcloud auth list
  • Выполните следующую команду в Cloud Shell, чтобы подтвердить свой проект.
gcloud config list project
  • Скопируйте идентификатор проекта и используйте следующую команду для его установки.
gcloud config set project <YOUR_PROJECT_ID>
  • Для запуска этой лабораторной работы необходимо включить некоторые сервисы. Выполните следующую команду в Cloud Shell.
gcloud services enable aiplatform.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com

3. Введение в Agent Development Kit

Комплект для разработки агентов (Agent Development Kit) предоставляет разработчикам, создающим агентные приложения, ряд ключевых преимуществ:

  1. Многоагентные системы : Создавайте модульные и масштабируемые приложения, объединяя множество специализированных агентов в иерархическую структуру. Обеспечивайте сложную координацию и делегирование задач.
  2. Богатая экосистема инструментов : Оснастите агентов разнообразными возможностями: используйте готовые инструменты (поиск, выполнение кода и т. д.), создавайте собственные функции, интегрируйте инструменты из сторонних фреймворков для агентов (LangChain, CrewAI) или даже используйте других агентов в качестве инструментов.
  3. Гибкая оркестровка : определяйте рабочие процессы с помощью агентов рабочих процессов ( SequentialAgent , ParallelAgent и LoopAgent ) для предсказуемых конвейеров или используйте динамическую маршрутизацию на основе LLM ( LlmAgent transfer) для адаптивного поведения.
  4. Интегрированный интерфейс разработчика : разрабатывайте, тестируйте и отлаживайте локально с помощью мощного интерфейса командной строки и интерактивного пользовательского интерфейса для разработчиков. Пошагово отслеживайте события, состояние и выполнение агента.
  5. Встроенная оценка : Систематическая оценка производительности агента путем анализа как качества конечного ответа, так и пошаговой траектории выполнения на основе предопределенных тестовых примеров.
  6. Готовность к развертыванию : контейнеризируйте и развертывайте своих агентов где угодно — запускайте локально, масштабируйте с помощью Vertex AI Agent Engine или интегрируйте в собственную инфраструктуру, используя Cloud Run или Docker.

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

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

e97ad3e26ceb7a2f.png

Рисунок 1: Расположение ADK (комплекта для разработки агентов)

4. Введение в Vertex AI Agent Engine

Vertex AI Agent Engine — это полностью управляемый сервис для развертывания агентов в Google Cloud. С помощью Vertex AI Agent Engine разработчики могут разрабатывать, настраивать, развертывать, обслуживать и управлять агентами ИИ с открытым исходным кодом ( ADK (Agent Development Kit) , LangChain, LangGraph, CrewAI, AutoGen и многое другое!) на платформе Vertex AI .

Agent Engine также предоставляет сервисы для обработки пользовательских данных, известных как память агента. В настоящее время доступны два типа сервисов памяти.

  • Кратковременная память : С помощью Agent Engine Sessions вы можете хранить, управлять и извлекать историю текущего разговора (состояние) в рамках одной сессии в виде кратковременной памяти.
  • Долговременная память : с помощью Agent Engine Memory Bank можно хранить, преобразовывать и извлекать воспоминания (состояние), особенно в рамках нескольких сессий, в виде долговременной памяти.

Агенты можно развертывать и в других сервисах Google Cloud, таких как Cloud Run или GKE. Для следующих сценариев использования рекомендуется рассмотреть возможность применения Vertex AI Agent Engine .

  • Управляемая среда выполнения с сохранением состояния : Если вам нужна среда выполнения с сохранением состояния и полным управлением для развертывания агентов, Vertex AI Agent Engine — хороший выбор, поскольку она абстрагирует от распространенных задач, таких как управление сессиями и поддержание работоспособности агентов ИИ.
  • Выполнение кода : Если вашему агенту необходимо выполнить код, динамически генерируемый во время пользовательской сессии, Agent Engine предоставляет защищенную песочницу, где вы можете выполнить этот код.
  • Гибкая долговременная память : Если вам нужна гибкая долговременная память для ваших агентов, Vertex AI Memory Bank, который можно использовать с Vertex AI Agent Engine, может обеспечить гибкий способ запоминания информации о вашем пользователе, которую можно использовать в течение нескольких сессий.

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

d8eb74a6d8a055f9.png

Рисунок 2: Пример эталонной архитектуры для создания агентов с использованием нескольких сервисов.

5. Введение в формат A2A

Протокол Agent2Agent (A2A) — это открытый стандарт, разработанный для обеспечения бесперебойной и безопасной связи и взаимодействия между автономными агентами искусственного интеллекта, использующими различные платформы, поставщики и области применения.

  1. Универсальная совместимость: A2A позволяет агентам работать вместе независимо от используемых ими базовых технологий, способствуя созданию по-настоящему многоагентной экосистемы. Это означает, что агенты, созданные разными компаниями на разных платформах, могут общаться и координировать свои действия.
  2. Обнаружение возможностей: Агенты могут рекламировать свои возможности с помощью «карточек агентов» (документов JSON), которые описывают их идентификацию, поддерживаемые функции A2A, навыки и требования к аутентификации. Это позволяет другим агентам находить и выбирать наиболее подходящего агента для выполнения конкретной задачи.
  3. Безопасность по умолчанию: Безопасность — это основной принцип. A2A использует механизмы аутентификации и авторизации корпоративного уровня, применяя такие стандарты, как HTTPS/TLS, JWT, OIDC и ключи API, для обеспечения безопасного взаимодействия и защиты конфиденциальных данных.
  4. Независимость от способа передачи данных: протокол поддерживает различные способы связи, включая текстовую, аудио- и видеопотоковую передачу, а также интерактивные формы и встроенные iframe-элементы. Такая гибкость позволяет агентам обмениваться информацией в наиболее подходящем для задачи и пользователя формате.
  5. Структурированное управление задачами: A2A определяет четкие протоколы для делегирования, мониторинга и завершения задач. Поддерживается группировка связанных задач и управление ими между различными агентами с использованием уникальных идентификаторов задач. Задачи могут проходить через определенные жизненные циклы (например, отправлены, выполняются, завершены).
  6. Непрозрачное выполнение: Важной особенностью является то, что агентам не нужно раскрывать другим агентам свои внутренние процессы рассуждения, память или конкретные инструменты. Они предоставляют доступ только к вызываемым сервисам, что способствует модульности и конфиденциальности.
  7. Создано на основе существующих стандартов: A2A использует проверенные веб-технологии, такие как HTTP, Server-Sent Events (SSE) для потоковой передачи данных в реальном времени и JSON-RPC для обмена структурированными данными, что упрощает интеграцию с существующей ИТ-инфраструктурой.
  8. Асинхронная связь: Протокол разработан с учетом асинхронной связи как основного принципа, что обеспечивает гибкое выполнение задач и позволяет отправлять push-уведомления об обновлениях даже при отсутствии постоянного соединения.

6. Архитектура агентов

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

Система построена на основе главного агента под названием image_scoring , который координирует весь процесс. У этого главного агента есть подагент image_generation_scoring_agent , который, в свою очередь, имеет свои собственные подагенты для выполнения более специфических задач. Это создает иерархическую связь, в которой главный агент делегирует задачи своим подагентам. bfed5e21e0b66d26.png

Рисунок 3: Общий поток агентов.

Список всех агентов

Агент

Цель

Суб-агенты

image_scoring (Главный агент)

Это корневой агент, управляющий всем рабочим процессом. Он многократно запускает агенты image_generation_scoring_agent и checker_agent в цикле до тех пор, пока не будет выполнено условие завершения.

image_generation_scoring_agent
checker_agent_instance

image_generation_scoring_agent (Подагент image_scoring)

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

image_generation_prompt_agent
image_generation_agent
scoreing_images_prompt

checker_agent_instance (Подагент image_scoring)

Этот агент проверяет, следует ли продолжать или завершить процесс оценки изображений. Для оценки условия завершения он использует инструмент check_tool_condition .

-

checker_agent_instance (Подагент image_scoring)

Этот агент — эксперт в создании подсказок для генерации изображений. Он принимает на вход текст и генерирует подробную подсказку, подходящую для модели генерации изображений.

-

image_generation_prompt_agent (Подагент image_generation_scoring_agent)

Этот агент — эксперт в создании подсказок для генерации изображений. Он принимает на вход текст и генерирует подробную подсказку, подходящую для модели генерации изображений.

-

scoring_images_prompt (Подагент image_generation_scoring_agent):

Этот агент является экспертом в оценке и выставлении баллов изображениям на основе различных критериев. Он берет сгенерированное изображение и присваивает ему оценку.

-

Список всех использованных инструментов

Инструмент

Описание

Агент пользователя

check_tool_condition

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

checker_agent_instance

generate_images

Этот инструмент генерирует изображения с использованием модели Imagen 3. Он также может сохранять сгенерированные изображения в хранилище Google Cloud Storage.

image_generation_agent

get_policy

Этот инструмент извлекает политику из JSON-файла. Политика используется компонентом image_generation_prompt_agent для создания запроса на генерацию изображений и компонентом scoreing_images_prompt для оценки изображений.

image_generation_agent

получить_изображение

Этот инструмент загружает сгенерированный артефакт изображения для последующей оценки.

scoreing_images_prompt

set_score

Этот инструмент устанавливает общий балл сгенерированного изображения в состоянии сессии.

scoreing_images_prompt

7. Установите ADK и настройте свою среду.

В этом практическом занятии мы будем использовать Cloud Shell для выполнения задач.

Подготовка вкладки редактора Cloud Shell.

  1. Нажмите на эту ссылку, чтобы перейти непосредственно в редактор Cloud Shell.
  2. Нажмите «Продолжить» .
  3. Когда появится запрос на авторизацию Cloud Shell, нажмите «Авторизовать» .
  4. В течение оставшейся части этой лабораторной работы вы можете работать в этом окне как в своей интегрированной среде разработки (IDE) с помощью редактора Cloud Shell и терминала Cloud Shell.
  5. Откройте новый терминал, используя команду «Терминал» > «Новый терминал» в редакторе Cloud Shell. Все приведенные ниже команды будут выполнены в этом терминале.

Загрузите и установите ADK и примеры кода для этой лабораторной работы.

  1. Выполните следующие команды, чтобы клонировать необходимый исходный код с GitHub и установить необходимые библиотеки. Запустите команды в терминале, открытом в редакторе Cloud Shell.
#create the project directory
mkdir ~/imagescoring
cd ~/imagescoring
#clone the code in the local directory
git clone https://github.com/haren-bh/multiagenthandson.git
  1. Мы будем использовать uv для создания среды Python (запустите в терминале редактора Cloud Shell):
#Install uv if you do not have installed yet
pip install uv

#Create the virtual environment
uv venv .adkvenv

source .adkvenv/bin/activate

#go to the project directory
cd ~/imagescoring/multiagenthandson

#install dependencies
uv pip install -r pyproject.toml
  1. Если у вас нет хранилища в облаке, создайте новое в Google Cloud Storage . Вы также можете создать хранилище с помощью команды gsutil. Предоставьте Agent Engine доступ к Google Cloud Storage (запустите в терминале редактора Cloud Shell).
# First, make sure your PROJECT_ID variable is set
PROJECT_ID=$(gcloud config get-value project)

# Now, create the bucket with a unique name
# We'll use the project ID to help ensure uniqueness
gsutil mb gs://${PROJECT_ID}-imagescoring-bucket

#Now lets give Agent Engine the permission to access Cloud Storage
# 1. Get the current Project ID (text) and Project Number (numeric)
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")

# 2. Construct the Reasoning Engine Service Account email
SA_EMAIL="service-${PROJECT_NUMBER}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"
# 3. Create Agent Engine Service account if not already created
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_NUMBER}

# 3. Grant GCS Access
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/storage.objectUser" --condition=None
  1. В редакторе перейдите в меню «Вид» -> «Отключить скрытые файлы». В папке image_scoring создайте файл .env со следующим содержимым. Добавьте необходимые данные, такие как название вашего проекта и название облачного хранилища (запустите в терминале редактора Cloud Shell).
#go to image_scoring folder
cd ~/imagescoring/multiagenthandson/image_scoring
cat <<EOF>> .env
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=$(gcloud config get-value project)
GOOGLE_CLOUD_LOCATION=us-central1
GOOGLE_CLOUD_STORAGE_BUCKET=$(gcloud config get-value project)-imagescoring-bucket
GCS_BUCKET_NAME=$(gcloud config get-value project)-imagescoring-bucket
SCORE_THRESHOLD=40
IMAGEN_MODEL="imagen-3.0-generate-002"
GENAI_MODEL="gemini-2.5-flash"
EOF
  1. Изучите структуру агентов в исходном коде, начиная с файла agent.py . Этот агент содержит корневой агент, который будет подключаться к другим агентам.
  2. Вернитесь в корневую директорию multiagenthandson в терминале и выполните следующую команду для локального запуска агента (Запуск в терминале редактора Cloud Shell).
#go to the directory multiagenthandson
cd ~/imagescoring/multiagenthandson
# Run the following command to run agents locally
adk web

dfda0b40b44e9230.png

Рисунок 4

Нажмите Ctrl+Click (CMD+Click для MacOS) на URL-адресе http://, отображаемом в терминале, чтобы открыть браузерный графический клиент ADK. Он должен выглядеть как на рисунке 2.

  1. Выберите image_scoring в выпадающем меню в левом верхнем углу (см. рисунок 5). Теперь давайте сгенерируем несколько изображений! Вы также должны найти изображения в хранилище Google Cloud Storage. Попробуйте следующие подсказки или свои собственные.
  2. Спокойный горный пейзаж на закате.
  3. Кот едет на велосипеде

c159623ad45f37cf.png

Рисунок 5: Пример выходных данных

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

Теперь развернем агента в Agent Engine. Agent Engine — это полностью управляемый сервис для развертывания агентов в GCP. Agent Engine совместим с ADK (Agent Development Kit) , поэтому агенты, созданные с помощью ADK (Agent Development Kit), могут быть развернуты в Agent Engine.

  1. Создайте файл requirements.txt с помощью Poetry. Poetry будет использовать pyproject.toml для создания файла requirements.txt . После выполнения команды проверьте, создан ли файл requirements.txt (запустите в терминале редактора Cloud Shell).
# Go to the parent folder containing pyproject.toml file
cd ~/imagescoring/multiagenthandson

# install poetry-plugin-export
uv pip install poetry-plugin-export

#Create requirements.txt file
python3 -m poetry export -f requirements.txt --output requirements.txt --without-hashes
  1. Создайте пакет. Нам нужно упаковать наше приложение в Python-пакет с расширением .whl . Для этого мы будем использовать Poetry. После выполнения команды убедитесь, что создана папка dist, содержащая файл .whl (запустите в терминале редактора Cloud Shell).
# Go to the parent folder containing pyproject.toml file
cd ~/imagescoring/multiagenthandson

#Create python package, to create whl file
python3 -m poetry build
  1. Теперь подготовим скрипт развертывания. Скрипт развертывания развернет наш агент оценки изображений или службу механизма агентов. Пожалуйста, проверьте содержимое файла deploy.py в папке deploy , как показано ниже (используйте боковую панель редактора Cloud Shell, чтобы найти файл).
import vertexai
from image_scoring.agent import root_agent
import os
import glob # To easily find the wheel file
from dotenv import load_dotenv

# Load environment variables from image_scoring/.env
env_path = os.path.join(os.path.dirname(__file__), "..", "image_scoring", ".env")
load_dotenv(env_path)

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
LOCATION = os.getenv("GOOGLE_CLOUD_LOCATION", "us-central1")
STAGING_BUCKET = f"gs://{os.getenv('GOOGLE_CLOUD_STORAGE_BUCKET')}"

from vertexai import agent_engines

client=vertexai.Client(
    project=PROJECT_ID,
    location=LOCATION,
)
remote_app = client.agent_engines.create(
    agent=root_agent,
    config={
        "display_name": "image-scoring",
        "staging_bucket": STAGING_BUCKET,
        "requirements": open(os.path.join(os.getcwd(), "requirements.txt")).readlines() + ["./dist/image_scoring-0.1.0-py3-none-any.whl"],
        "extra_packages": [
            "./dist/image_scoring-0.1.0-py3-none-any.whl",
        ],     "env_vars":{"GCS_BUCKET_NAME":os.getenv('GOOGLE_CLOUD_STORAGE_BUCKET')}
    }
)
print(f"DEBUG: AgentEngine attributes: {dir(remote_app)}")
try:
    print(remote_app.api_resource.name)
except AttributeError:
    print("Could not find resource_name, check DEBUG output above.")
  1. Теперь мы можем запустить скрипт развертывания. Сначала перейдите в корневую папку multiagenthandson (запустите в терминале редактора Cloud Shell).
#go to multiagenthandson folder
cd ~/imagescoring/multiagenthandson

#run deploy script from the parent folder containing deploy.py
python3 -m deploy.deploy

После развертывания вы должны увидеть что-то подобное тому, что показано ниже. 57d86995465cdcda.png

Рисунок 6: Пример выходных данных

  1. Теперь давайте протестируем развернутый агент. Чтобы протестировать удаленно развернутый агент, сначала скопируйте путь к агенту из вывода команды развертывания в терминале. Он должен выглядеть примерно так: projects/85469421903/locations/us-central1/reasoningEngines/7369674597261639680 .
    Перейдите в папку testclient, откройте файл remote_test.py в редакторе Cloud Shell и отредактируйте следующие строки.
REASONING_ENGINE_ID = "projects/xxx/locations/us-central1/reasoningEngines/xxx"  # TODO: Change this
  1. Из корневой папки multiagenthandson выполните следующую команду. Вы должны получить результат, как на рисунке 4. После завершения выполнения вы должны увидеть (Запустите в терминале редактора Cloud Shell).
#go to multiagenthandson folder
cd ~/imagescoring/multiagenthandson

#execute remote_test.py
python3 -m testclient.remote_test

c612b8a79a7120ae.png

Рисунок 7: Пример выходных данных

9. Создайте агента A2A.

На этом этапе мы создадим простой A2A-агент на основе агента, созданного на предыдущих этапах. Существующие агенты ADK (Agent Development Kit) можно публиковать по протоколу A2A . Это основные моменты, которые вы узнаете на этом этапе.

  • Изучите основы протокола A2A .
  • Узнайте, как протоколы ADK и A2A взаимодействуют друг с другом.
  • Узнайте, как взаимодействовать с протоколом A2A .

В этом практическом задании мы будем использовать код из папки image_scoring_adk_a2a_server . Перед началом работы перейдите в эту папку (запустите в терминале Cloud Shell Editor).

#change directory to image_scoring_adk_a2a_server
cd ~/imagescoring/multiagenthandson/image_scoring_adk_a2a_server

#copy the env file
cp ~/imagescoring/multiagenthandson/image_scoring/.env remote_a2a/image_scoring

1. Создайте карточку агента A2A.

Протокол A2A требует наличия карточки агента , содержащей всю информацию о нем, такую ​​как возможности агента, руководство по использованию агента и т. д. После развертывания агента A2A карточка агента становится доступна для просмотра по ссылке " .well-known/agent-card.json ". Клиенты могут использовать эту информацию для отправки запросов агентам.

В папке remote_a2a/image_scoring убедитесь, что с помощью редактора Cloud Shell присутствует файл agents.json со следующим содержимым.

{
 "name": "image_scoring",
 "description": "Agent that generates images based on user prompts and scores their adherence to the prompt.",
 "url": "http://localhost:8001/a2a/image_scoring",
 "version": "1.0.0",
 "defaultInputModes": ["text/plain"],
 "defaultOutputModes": ["image/png", "text/plain"],
 "capabilities": {
   "streaming": true,
   "functions": true
 },
 "skills": [
   {
     "id": "generate_and_score_image",
     "name": "Generate and Score Image",
     "description": "Generates an image from a given text prompt and then evaluates how well the generated image adheres to the original prompt, providing a score.",
     "tags": ["image generation", "image scoring", "evaluation", "AI art"],
     "examples": [
       "Generate an image of a futuristic city at sunset",
       "Create an image of a cat playing a piano",
       "Show me an image of a serene forest with a hidden waterfall"
     ]
   }
 ]
}

2. Создайте агента A2A.

В корневой папке image_scoring_adk_a2a_server убедитесь в наличии файла a2a_agent.py , используя боковую панель редактора Cloud Shell, которая является точкой входа для агента A2A . Содержимое файла должно быть следующим:

from google.adk.agents.remote_a2a_agent import RemoteA2aAgent

root_agent = RemoteA2aAgent(
   name="image_scoring",
   description="Agent to give interesting facts.",
   agent_card="http://localhost:8001/a2a/image_scoring/.well-known/agent.json",
  
   # Optional configurations
   timeout=300.0,          # HTTP timeout (seconds)
   httpx_client=None,      # Custom HTTP client
)

3. Запустите агент A2A.

Теперь мы готовы запустить агент! Для запуска агента выполните следующую команду из корневой папки image_scoring_adk_a2a_server (запустите в терминале Cloud Shell Editor).

#following command runs the ADK agent as a2a agent
adk api_server --a2a --port 8001 remote_a2a

4. Тестирование агента A2A

После запуска агента мы можем приступить к его тестированию. Для начала проверим карточку агента. Откройте новый терминал, используя меню Терминал > Новый терминал, и выполните следующую команду (выполните в только что открытом терминале редактора Cloud Shell).

#Execute the following 
curl http://localhost:8001/a2a/image_scoring/.well-known/agent.json

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

Теперь давайте отправим запрос агенту. Для отправки запроса агенту можно использовать curl (запустите команду в открывшемся терминале Cloud Shell Editor).

curl -X POST   http://localhost:8001/a2a/image_scoring   -H 'Content-Type: application/json'   -d '{
    "id": "uuid-123",
    "params": {
      "message": {
        "messageId": "msg-456",
        "parts": [{"text": "Create an image of a cat"}],
        "role": "user"
      }
    }
  }'

В приведенном выше запросе вы можете изменить подсказку, изменив строку " Создать изображение кошки ". После выполнения команды вы можете проверить наличие полученного изображения в указанном хранилище Google Cloud Storage .

10. Уборка

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

  1. Удалите сервер Vertex AI Agent Engine, который мы только что создали. Перейдите на сайт Vertex AI, введя Vertex AI в строку поиска консоли Google Cloud. Щелкните Agent Engine в левой части экрана. Вы можете удалить агента, нажав кнопку «Удалить». 98e8aac9efc8e32a.png

Рисунок 8

  1. Удалите файлы в Cloud Shell.
#Execute the following to delete the files
cd ~
rm -R ~/imagescoring
  1. Удалите хранилище. Вы можете перейти в консоль GCP -> Облачное хранилище, выбрать и удалить ваше хранилище. 913625e5969c9104.png

Рисунок 9: Удаление корзины

11. Заключение

Поздравляем! Вы успешно развернули многоагентное приложение ADK (Agent Development Kit) в Vertex AI Agent Engine . Это значительное достижение, охватывающее основной жизненный цикл современного облачного приложения и обеспечивающее прочную основу для развертывания собственных сложных агентных систем.

Краткий обзор

В этой лабораторной работе вы научились:

  • Создайте многоагентное приложение с использованием ADK (Agent Development Kit).
  • Разверните приложение в Vertex AI Agent Engine.
  • Создайте агента, способного обмениваться данными по протоколу A2A .

Полезные ресурсы