Tạo hệ thống nhiều tác nhân bằng ADK, triển khai trong Agent Engine và bắt đầu bằng giao thức A2A

1. Mục tiêu của tính năng này trong Labs

Trong lớp học thực hành này, bạn sẽ tạo một ứng dụng có nhiều tác nhân để tạo hình ảnh dựa trên câu lệnh của bạn và đánh giá hình ảnh đó dựa trên câu lệnh của bạn. Nếu hình ảnh không đáp ứng được các yêu cầu được mô tả trong câu lệnh, thì tác nhân sẽ liên tục tạo hình ảnh cho đến khi tạo được hình ảnh đáp ứng các yêu cầu của bạn. Mỗi tác nhân trong hoạt động thực hành này đều có một mục đích duy nhất, các tác nhân hợp tác với nhau để đạt được mục tiêu chung.

Kiến thức bạn sẽ học được

  • Tìm hiểu những kiến thức cơ bản về ADK và cách tạo một hệ thống đa tác nhân.
  • Tìm hiểu cách dễ dàng triển khai và sử dụng các tác nhân trong GCP.
  • Tìm hiểu thông tin cơ bản về giao thức A2A
  • Tìm hiểu cách sử dụng giao thức A2A và ADK cùng nhau để tạo các tác nhân mở.

2. Trước khi bắt đầu

  • Nếu chưa có dự án nào có thể sử dụng, bạn sẽ cần tạo một dự án mới trong Bảng điều khiển GCP.
  • Trong phòng thí nghiệm này, chúng ta sẽ sử dụng GCP Cloud Shell để thực hiện các nhiệm vụ. Mở Cloud Shell và thiết lập dự án bằng Cloud Shell.
  • Mở GCP Cloud Shell Editor bằng cách nhấn vào nút Cloud Shell Editor. Nếu bạn thấy cửa sổ bật lên "Uỷ quyền cho Shell", hãy nhấp để uỷ quyền cho Cloud Shell Editor.
  • Bạn có thể kiểm tra xem dự án đã được xác thực hay chưa bằng lệnh sau.
gcloud auth list
  • Chạy lệnh sau trong Cloud Shell để xác nhận dự án của bạn
gcloud config list project
  • Nếu bạn chưa đặt dự án, hãy dùng lệnh sau để đặt dự án
gcloud config set project <YOUR_PROJECT_ID>
  • Chúng ta cần bật một số dịch vụ để chạy phòng thí nghiệm này. Chạy lệnh sau trong Cloud Shell.
gcloud services enable aiplatform.googleapis.com

3. Tổng quan: Lợi ích của Agent Development Kit

Bộ công cụ phát triển tác nhân mang lại một số lợi thế chính cho nhà phát triển xây dựng các ứng dụng dựa trên tác nhân:

  1. Hệ thống nhiều tác nhân: Xây dựng các ứng dụng có tính mô-đun và khả năng mở rộng bằng cách kết hợp nhiều tác nhân chuyên biệt trong một hệ thống phân cấp. Cho phép phối hợp và uỷ quyền phức tạp.
  2. Hệ sinh thái công cụ đa dạng: Trang bị cho các đặc vụ nhiều chức năng: sử dụng các công cụ được tạo sẵn (Tìm kiếm, Thực thi mã, v.v.), tạo các hàm tuỳ chỉnh, tích hợp các công cụ từ khung đặc vụ của bên thứ ba (LangChain, CrewAI) hoặc thậm chí sử dụng các đặc vụ khác làm công cụ.
  3. Điều phối linh hoạt: Xác định quy trình công việc bằng cách sử dụng các tác nhân quy trình công việc (SequentialAgent, ParallelAgentLoopAgent) cho các quy trình có thể dự đoán hoặc tận dụng tính năng định tuyến động dựa trên LLM (LlmAgent chuyển) cho hành vi thích ứng.
  4. Trải nghiệm tích hợp cho nhà phát triển: Phát triển, kiểm thử và gỡ lỗi cục bộ bằng một CLI mạnh mẽ và giao diện người dùng phát triển có tính tương tác. Kiểm tra các sự kiện, trạng thái và bước thực thi của tác nhân từng bước.
  5. Đánh giá tích hợp: Đánh giá hiệu suất của trợ lý một cách có hệ thống bằng cách đánh giá cả chất lượng của câu trả lời cuối cùng và quỹ đạo thực thi từng bước dựa trên các trường hợp kiểm thử được xác định trước.
  6. Sẵn sàng triển khai: Đóng gói và triển khai các tác tử ở bất cứ đâu – chạy cục bộ, mở rộng quy mô bằng Vertex AI Agent Engine hoặc tích hợp vào cơ sở hạ tầng tuỳ chỉnh bằng Cloud Run hoặc Docker.

Mặc dù các SDK hoặc khung tác nhân AI tạo sinh khác cũng cho phép bạn truy vấn các mô hình và thậm chí trang bị cho chúng các công cụ, nhưng việc phối hợp linh hoạt giữa nhiều mô hình đòi hỏi bạn phải bỏ ra một lượng công việc đáng kể.

Agent Development Kit cung cấp một khung cấp cao hơn so với những công cụ này, cho phép bạn dễ dàng kết nối nhiều tác nhân với nhau để tạo ra các quy trình làm việc phức tạp nhưng dễ duy trì.

e554e9e43aafc757.png

4. Giới thiệu về A2A

Giao thức Agent2Agent (A2A) là một tiêu chuẩn mở được thiết kế để cho phép giao tiếp và cộng tác liền mạch và an toàn giữa các tác nhân AI tự trị từ nhiều khung, nhà cung cấp và miền.

  1. Khả năng tương tác phổ quát: A2A cho phép các tác nhân làm việc cùng nhau bất kể công nghệ cơ bản của chúng, từ đó thúc đẩy một hệ sinh thái thực sự có nhiều tác nhân. Điều này có nghĩa là các tác nhân do nhiều công ty tạo trên nhiều nền tảng có thể giao tiếp và phối hợp với nhau.
  2. Khám phá các chức năng: Các tác nhân có thể quảng cáo chức năng của mình bằng "Thẻ tác nhân" (tài liệu JSON) mô tả danh tính, các tính năng A2A được hỗ trợ, kỹ năng và yêu cầu xác thực của tác nhân. Điều này cho phép các tác nhân khác khám phá và chọn tác nhân phù hợp nhất cho một tác vụ nhất định.
  3. Bảo mật theo mặc định: Bảo mật là một nguyên tắc cốt lõi. A2A kết hợp các cơ chế xác thực và uỷ quyền cấp doanh nghiệp, sử dụng các tiêu chuẩn như HTTPS/TLS, JWT, OIDC và khoá API để đảm bảo các hoạt động tương tác an toàn và bảo vệ dữ liệu nhạy cảm.
  4. Không phụ thuộc vào phương thức: Giao thức này hỗ trợ nhiều phương thức giao tiếp, bao gồm cả văn bản, âm thanh và truyền phát video trực tuyến, cũng như các biểu mẫu tương tác và iframe được nhúng. Tính linh hoạt này cho phép các tác nhân trao đổi thông tin ở định dạng phù hợp nhất cho tác vụ và người dùng.
  5. Quản lý công việc có cấu trúc: A2A xác định các giao thức rõ ràng để uỷ quyền, giám sát và hoàn thành công việc. Nền tảng này hỗ trợ việc nhóm các tác vụ liên quan và quản lý các tác vụ đó trên nhiều tác nhân bằng cách sử dụng mã nhận dạng tác vụ duy nhất. Các việc cần làm có thể chuyển đổi qua các vòng đời đã xác định (ví dụ: đã gửi, đang thực hiện, đã hoàn tất).
  6. Thực thi mờ: Một tính năng quan trọng là các tác nhân không cần tiết lộ quy trình suy luận nội bộ, bộ nhớ hoặc các công cụ cụ thể cho các tác nhân khác. Chúng chỉ hiển thị các dịch vụ có thể gọi, giúp tăng tính mô-đun và quyền riêng tư.
  7. Dựa trên các tiêu chuẩn hiện có: A2A tận dụng các công nghệ web đã được thiết lập như HTTP, Sự kiện do máy chủ gửi (SSE) để truyền trực tuyến theo thời gian thực và JSON-RPC để trao đổi dữ liệu có cấu trúc, giúp bạn dễ dàng tích hợp với cơ sở hạ tầng CNTT hiện có.
  8. Giao tiếp không đồng bộ: Giao thức này được thiết kế với mục đích chính là giao tiếp không đồng bộ, tạo điều kiện cho tiến trình linh hoạt của tác vụ và cho phép thông báo đẩy để cập nhật ngay cả khi không duy trì kết nối liên tục.

5. Kiến trúc tác nhân

Trong lớp học này, bạn sẽ tạo một ứng dụng có nhiều tác nhân để tạo hình ảnh theo quy cách của bạn và đánh giá hình ảnh đó trước khi trình bày cho bạn.

Hệ thống được cấu trúc với một tác nhân chính có tên là image_scoring (chấm điểm hình ảnh) để điều phối toàn bộ quy trình. Tác nhân chính này có một tác nhân phụ tên là image_generation_scoring_agent. Tác nhân này lại có các tác nhân phụ riêng cho những tác vụ cụ thể hơn. Điều này tạo ra mối quan hệ phân cấp, trong đó nhân viên hỗ trợ chính uỷ quyền các tác vụ cho nhân viên hỗ trợ phụ. 6e21de5b4f92669c.png Hình 2: Quy trình tổng thể của Agent.

Danh sách tất cả các nhân viên

  1. image_scoring (Nhân viên hỗ trợ chính):
  2. Mục đích: Đây là tác nhân gốc quản lý quy trình làm việc tổng thể. Thao tác này sẽ chạy image_generation_scoring_agentchecker_agent nhiều lần trong một vòng lặp cho đến khi đạt được điều kiện kết thúc.
  3. Đại lý phụ:
  • image_generation_scoring_agent
  • checker_agent_instance
  1. image_generation_scoring_agent (Tác nhân phụ của image_scoring):
  2. Mục đích: Nhân viên hỗ trợ này chịu trách nhiệm về logic cốt lõi của việc tạo và tính điểm hình ảnh. Để đạt được mục tiêu này, công cụ này sẽ thực thi một chuỗi gồm 3 tác nhân phụ.
  3. Đại lý phụ:
  • image_generation_prompt_agent
  • image_generation_agent
  • scoring_images_prompt
  1. checker_agent_instance (Tác nhân phụ của image_scoring):
  2. Mục đích: Tác nhân này kiểm tra xem quy trình tính điểm hình ảnh có nên tiếp tục hay kết thúc. Thao tác này sử dụng công cụ check_tool_condition để đánh giá điều kiện chấm dứt.
  3. image_generation_prompt_agent (Tác nhân phụ của image_generation_scoring_agent):
  4. Mục đích: Trợ lý này là chuyên gia về việc tạo câu lệnh để tạo hình ảnh. Công cụ này nhận một văn bản đầu vào và tạo ra một câu lệnh chi tiết phù hợp với mô hình tạo hình ảnh.
  5. image_generation_agent (Đại lý phụ của image_generation_scoring_agent):
  6. Mục đích: Trợ lý này là chuyên gia tạo hình ảnh bằng Imagen 3. Thao tác này lấy câu lệnh từ image_generation_prompt_agent và tạo ra một hình ảnh.
  7. scoring_images_prompt (Tác nhân phụ của image_generation_scoring_agent):
  8. Mục đích: Trợ lý này là chuyên gia đánh giá và chấm điểm hình ảnh dựa trên nhiều tiêu chí. Công cụ này sẽ lấy hình ảnh được tạo và gán điểm số cho hình ảnh đó.

Công cụ mà nhân viên hỗ trợ sử dụng

  1. check_tool_condition:
  2. Nội dung mô tả: Công cụ này kiểm tra xem điều kiện kết thúc vòng lặp có được đáp ứng hay không hoặc số lần lặp tối đa có đạt đến hay không. Nếu một trong hai điều kiện này là đúng, thì vòng lặp sẽ dừng.
  3. Được dùng bởi: checker_agent_instance
  4. generate_images:
  5. Mô tả: Công cụ này tạo hình ảnh bằng mô hình Imagen 3. Bạn cũng có thể lưu hình ảnh đã tạo vào một bộ chứa Google Cloud Storage.
  6. Được dùng bởi: image_generation_agent
  7. get_policy:
  8. Nội dung mô tả: Công cụ này tìm nạp một chính sách từ tệp JSON. Chính sách này được image_generation_prompt_agent dùng để tạo câu lệnh tạo hình ảnh và được scoring_images_prompt dùng để chấm điểm hình ảnh.
  9. Được dùng bởi: image_generation_prompt_agent, scoring_images_prompt
  10. get_image:
  11. Nội dung mô tả: Công cụ này tải cấu phần phần mềm hình ảnh đã tạo để có thể tính điểm.
  12. Được dùng bởi: scoring_images_prompt
  13. set_score:
  14. Nội dung mô tả: Công cụ này đặt tổng điểm của hình ảnh được tạo trong trạng thái phiên.
  15. Được dùng bởi: scoring_images_prompt

6. Nhiệm vụ 1. Cài đặt ADK và thiết lập môi trường

Trong phần Thực hành này, chúng ta sẽ sử dụng Cloud Shell để thực hiện các nhiệm vụ.

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Vertex AI bằng cách tìm kiếm ở đầu bảng điều khiển.
  2. Nhấp vào Bật tất cả các API được đề xuất.

Chuẩn bị thẻ Cloud Shell Editor

  1. Khi cửa sổ Google Cloud Console được chọn, hãy mở Cloud Shell bằng cách nhấn phím G rồi nhấn phím S trên bàn phím. Ngoài ra, bạn có thể nhấp vào nút Cloud Shell 231dc0e6754519c8.png ở góc trên cùng bên phải của Bảng điều khiển Google Cloud.
  2. Nhấp vào Tiếp tục.
  3. Khi được nhắc cho phép Cloud Shell, hãy nhấp vào Cho phép.
  4. Ở góc trên bên phải của ngăn Cloud Shell, hãy nhấp vào nút Mở trong cửa sổ mới Nút Mở trong cửa sổ mới.
  5. Nhấp vào biểu tượng bút chì Mở trình chỉnh sửa ( Biểu tượng bút chì của Trình chỉnh sửa) ở đầu ngăn để xem các tệp.
  6. Ở đầu trình đơn điều hướng bên trái, hãy nhấp vào biểu tượng Trình khám phá Biểu tượng Explorer để mở trình khám phá tệp.
  7. Nhấp vào nút Mở thư mục.
  8. Trong phần còn lại của lớp học này, bạn có thể làm việc trong cửa sổ này với tư cách là IDE bằng Cloud Shell Editor và Cloud Shell Terminal.

Tải xuống và cài đặt ADK cũng như mã mẫu cho lớp học này

  1. Thực thi các lệnh sau để sao chép nguồn cần thiết từ github và cài đặt các thư viện cần thiết.
#create the project directory
mkdir imagescoring
cd imagescoring
#clone the code in the local directory
git clone https://github.com/haren-bh/multiagenthandson.git

#Create the virtual environment
python3 -m venv pythonenv
source pythonenv/bin/activate

#install google-adk and a2a sdk
python3 -m pip install google-adk==1.8.0
python3 -m pip install a2a-sdk==0.2.16
  1. Chúng ta sẽ dùng poetry để cài đặt các yêu cầu bổ sung:
cd multiagenthandson #go to the application directory
pip install poetry poetry-plugin-export
poetry install --with deployment
  1. Nếu chưa có bộ chứa lưu trữ đám mây, hãy tạo một bộ chứa mới trong Google Cloud Storage. Bạn cũng có thể tạo vùng chứa bằng lệnh gsutil.
gsutil mb gs://YOUR-UNIQUE-BUCKETNAME
  1. Trong trình chỉnh sửa, hãy chuyển đến mục View->Toggle hidden files (Xem->Chuyển đổi tệp ẩn). Trong thư mục image_scoring, hãy tạo một tệp .env có nội dung sau. Thêm các thông tin bắt buộc như tên dự án và bộ chứa lưu trữ đám mây.
GOOGLE_GENAI_USE_VERTEXAI=1 #1 if VERTEXAI has to be used. Can be 0 if API_KEY is specified
GOOGLE_CLOUD_PROJECT=YOUR CLOUD PROJECT NAME
GOOGLE_CLOUD_LOCATION=us-central1
GOOGLE_CLOUD_STORAGE_BUCKET=YOUR BUCKET NAME  # Only required for deployment on Agent Engine
GCS_BUCKET_NAME=YOUR BUCKET NAME #Bucket for storing generated images.
SCORE_THRESHOLD=40 # Min threshold for image_score. Max Score is 50 , hence should be less than 50. 
#If the computed score is higher then loop will terminate
#MAX_ITERATIONS=5 #Max iterations for evaluating the image_score before terminating the loop.
IMAGEN_MODEL="imagen-3.0-generate-002" 
GENAI_MODEL="gemini-2.5-flash"
#AGENT_ENGINE_ID=<AGENT_ENGINE_ID> #The Agent Engine ID obtained after deploying to the agent engine.
  1. Xem cấu trúc tác nhân trong mã nguồn, bắt đầu từ agent.py . Tác nhân này chứa tác nhân gốc sẽ kết nối với các tác nhân khác.
  2. Quay lại thư mục trên cùng multiagenthandson trong cửa sổ dòng lệnh và thực thi lệnh sau để chạy tác nhân cục bộ
# Run the following command to run agents locally
export GCS_BUCKET_NAME=your gcs bucket name
adk web

7bb4bc5f8244c140.png Hình 1

Nhấn Ctrl+Click (CMD+Click đối với MacOS) vào URL http:// xuất hiện trên thiết bị đầu cuối để mở ứng dụng GUI dựa trên trình duyệt của ADK. Nội dung này sẽ có dạng như Hình 2

  1. Hãy tạo một số hình ảnh. Hãy thử các câu lệnh sau hoặc câu lệnh của riêng bạn.
  2. Khung cảnh núi non thanh bình lúc hoàng hôn
  3. Một chú mèo đang đạp xe

99e23472f80a81f2.png Hình 2

7. Nhiệm vụ 2. Triển khai cho Agent Engine

Bây giờ, chúng ta sẽ triển khai tác nhân này cho Agent Engine. Agent Engine là một dịch vụ được quản lý toàn diện để triển khai các tác nhân trong GCP. Agent Engine tương thích với ADK, vì vậy, bạn có thể triển khai các tác nhân được tạo bằng ADK trong Agent Engine.

  1. Xác định một số biến môi trường
export GOOGLE_CLOUD_LOCATION='us-central1'
export GOOGLE_CLOUD_PROJECT='your project id'
  1. Tạo tệp requirements.txt bằng poetry. Poetry sẽ dùng pyproject.toml để tạo tệp requirements.txt. Sau khi chạy lệnh, hãy kiểm tra xem tệp requirements.txt đã được tạo hay chưa.
# Go to the parent folder containing pyproject.toml file
# install poetry-plugin-export
pip install poetry-plugin-export

#Create requirements.txt file
poetry export -f requirements.txt --output requirements.txt --without-hashes
  1. Tạo gói. Chúng ta cần đóng gói ứng dụng của mình thành một gói python .whl. Chúng ta sẽ dùng thư viện poetry để thực hiện việc đó. Sau khi bạn thực thi lệnh, hãy đảm bảo rằng một thư mục dist được tạo và thư mục này chứa tệp .whl.
# Go to the parent folder containing pyproject.toml file
#Create python package, to create whl file
poetry build
  1. Bây giờ, chúng ta sẽ chuẩn bị tập lệnh triển khai. Tập lệnh triển khai sẽ triển khai dịch vụ tác nhân hoặc công cụ tác nhân chấm điểm hình ảnh của chúng tôi. Vui lòng thay đổi nội dung của deploy.py trong thư mục image_scoring như bên dưới.
# Change the content of the following. Look for #change this comment
import vertexai
from .agent import root_agent
import os
import glob # To easily find the wheel file

PROJECT_ID = "YOUR PROJECT ID" #change this your project
LOCATION = "us-central1" #change this
STAGING_BUCKET = "gs://YOUR BUCKET " #change this to your bucket

from vertexai import agent_engines

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

remote_app = agent_engines.create(
   agent_engine=root_agent,
   requirements=open(os.path.join(os.getcwd(), "requirements.txt")).readlines()+["./dist/image_scoring-0.1.0-py3-none-any.whl"],#change this to your local location
   extra_packages=[
       "./dist/image_scoring-0.1.0-py3-none-any.whl", # change this to your location
   ]
)

print(remote_app.resource_name)
  1. Giờ đây, chúng ta có thể chạy tập lệnh triển khai.
#run deploy script from the parent folder containing deploy.py
python3 -m image_scoring.deploy

Sau khi triển khai, bạn sẽ thấy nội dung tương tự như bên dưới, 13109f2a5c5c5af9.png

Hình 3

  1. Bây giờ, hãy kiểm thử tác nhân đã triển khai. Để kiểm thử công cụ tác nhân được triển khai từ xa, trước tiên, hãy sao chép vị trí của tác nhân từ đầu ra triển khai trong thiết bị đầu cuối. Đường dẫn này sẽ có dạng như sau: projects/85469421903/locations/us-central1/reasoningEngines/7369674597261639680 .
    Chuyển đến thư mục testclient,mở tệp remote_test.py rồi chỉnh sửa các dòng sau.
PROJECT_ID = "" #change this
LOCATION = "" #change this
STAGING_BUCKET = "" #change this

#replace the id with your own.
reasoning_engine_id="your agent engine id"

#You can replace this with your own prompt
image_prompt="A cat riding a bicycle"

#execute remote_test.py
python3 remote_test.py

8. Nhiệm vụ 3. Tạo một nhân viên hỗ trợ A2A

Trong bước này, chúng ta sẽ tạo một tác nhân A2A đơn giản dựa trên tác nhân mà chúng ta đã tạo ở các bước trước. Bạn có thể xuất bản các tác nhân ADK hiện có theo giao thức A2A. Đây là những điều chính mà bạn sẽ học được trong bước này.

  • Tìm hiểu kiến thức cơ bản về giao thức A2A.
  • Tìm hiểu cách ADK và giao thức A2A hoạt động cùng nhau.
  • Tìm hiểu cách tương tác với giao thức A2A.

Trong phần thực hành này, chúng ta sẽ sử dụng mã trong thư mục image_scoring_adk_a2a_server. Trước khi bắt đầu tác vụ, vui lòng thay đổi thư mục của bạn thành thư mục này.

Tạo thẻ nhân viên hỗ trợ A2A

Giao thức A2A yêu cầu thẻ đại lý chứa tất cả thông tin về đại lý, chẳng hạn như các chức năng của đại lý, hướng dẫn sử dụng đại lý, v.v. Sau khi triển khai đại lý A2A, bạn có thể xem thẻ đại lý bằng cách sử dụng đường liên kết ".well-known/agent-card.json". Khách hàng có thể tham khảo thông tin này để gửi yêu cầu cho nhân viên.

Trong thư mục remote_a2a/image_scoring, hãy xác nhận rằng có agents.json với nội dung sau.

{
 "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"
     ]
   }
 ]
}

Tạo nhân viên hỗ trợ A2A

Trong thư mục gốc image_scoring_adk_a2a_server, hãy xác nhận rằng có một tệp a2a_agent.py. Đây là điểm truy cập cho tác nhân a2a. Nội dung của tệp này phải có những thông tin sau:

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
)

Chạy tác nhân A2A

Giờ thì chúng ta đã sẵn sàng chạy tác nhân! Để chạy tác nhân, hãy thực thi lệnh sau từ bên trong thư mục trên cùng image_scoring_adk_a2a_server

#set some environmental variables
export GOOGLE_CLOUD_PROJECT=datapipeline-372305
export GOOGLE_CLOUD_LOCATION=us-central1
export GCS_BUCKET_NAME=haren-genai-bucket

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

Kiểm thử nhân viên hỗ trợ A2A

Sau khi nhân viên hỗ trợ đang chạy, chúng ta có thể chuyển sang bước kiểm thử nhân viên hỗ trợ. Trước hết, hãy kiểm tra thẻ nhân viên hỗ trợ.

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

Khi thực thi lệnh trên, thẻ đại lý sẽ xuất hiện cho đại lý A2A của chúng ta. Thẻ này chủ yếu là nội dung của agent.json mà chúng ta đã tạo ở bước trước.

Bây giờ, hãy gửi yêu cầu đến tác nhân. Chúng ta có thể dùng curl để gửi yêu cầu đến tác nhân,

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"
      }
    }
  }'

Trong yêu cầu ở trên, bạn có thể thay đổi câu lệnh bằng cách thay đổi dòng "Tạo hình ảnh về một chú mèo". Sau khi chạy lệnh, bạn có thể kiểm tra hình ảnh đầu ra trong bộ nhớ đám mây của Google mà bạn chỉ định.

9. Dọn dẹp

Bây giờ, hãy dọn dẹp những gì chúng ta vừa tạo.

  1. Xoá máy chủ Agent Engine mà chúng ta vừa tạo. Chuyển đến Vertex AI bằng cách nhập "Vertex AI" vào thanh tìm kiếm của Google Cloud Console. Nhấp vào Agent Engine ở bên trái.Bạn có thể xoá Agent bằng cách nhấp vào biểu tượng xoá. c9f95963c4db0d6c.png

Hình 4

  1. Xoá các tệp trong Cloud Shell
#Execute the following to delete the files
rm -R imagescoring
  1. Xoá bộ chứa. Bạn có thể chuyển đến bảng điều khiển GCP -> Cloud Storage , chọn và xoá bộ chứa của mình. afb43ad0dda70858.png