Ứng dụng nhiều tác nhân với ADK, Công cụ tác nhân và AlloyDB

Ứng dụng nhiều tác nhân với ADK, Công cụ tác nhân và AlloyDB

Thông tin về lớp học lập trình này

subjectLần cập nhật gần đây nhất: thg 6 16, 2025
account_circleTác giả: Author: Abirami Sukumaran

1. Tổng quan

Đại diện là một chương trình tự động giao tiếp với mô hình AI để thực hiện một thao tác dựa trên mục tiêu bằng cách sử dụng các công cụ và ngữ cảnh mà nó có, đồng thời có khả năng tự động đưa ra quyết định dựa trên sự thật!

Khi ứng dụng của bạn có nhiều tác nhân hoạt động cùng nhau một cách tự động và cùng nhau theo yêu cầu để phục vụ mục đích lớn hơn, trong đó mỗi tác nhân có kiến thức độc lập và chịu trách nhiệm về một lĩnh vực tập trung cụ thể, thì ứng dụng của bạn sẽ trở thành một hệ thống nhiều tác nhân.

Bộ phát triển tác nhân (ADK)

Bộ phát triển tác nhân (ADK) là một khung linh hoạt và mô-đun để phát triển và triển khai tác nhân AI. ADK hỗ trợ việc xây dựng các ứng dụng phức tạp bằng cách kết hợp nhiều thực thể tác nhân riêng biệt vào một Hệ thống nhiều tác nhân (MAS).

Trong ADK, hệ thống đa tác nhân là một ứng dụng trong đó các tác nhân khác nhau, thường tạo thành một hệ phân cấp, cộng tác hoặc điều phối để đạt được một mục tiêu lớn hơn. Việc cấu trúc ứng dụng theo cách này mang lại nhiều lợi thế đáng kể, bao gồm cả khả năng mô-đun hoá, chuyên môn hoá, tái sử dụng, khả năng bảo trì và khả năng xác định luồng kiểm soát có cấu trúc bằng các tác nhân quy trình làm việc chuyên dụng.

Những điều cần lưu ý đối với hệ thống nhiều tác nhân

Trước tiên, bạn cần hiểu rõ và có lý do chính đáng cho việc chuyên môn hoá từng nhân viên hỗ trợ. – "bạn có biết lý do bạn cần một đại lý phụ cụ thể cho một việc gì đó không", hãy giải quyết vấn đề đó trước.

Thứ hai, Cách kết hợp các yêu cầu này với một tác nhân gốc để định tuyến và hiểu rõ từng phản hồi.

Thứ ba, Có nhiều loại định tuyến của nhân viên hỗ trợ mà bạn có thể tìm thấy trong tài liệu này. Hãy đảm bảo bạn chọn đúng loại phù hợp với luồng của ứng dụng. Ngoài ra, bạn cần có những ngữ cảnh và trạng thái nào cho việc kiểm soát luồng của hệ thống đa tác nhân.

Sản phẩm bạn sẽ tạo ra

Hãy xây dựng một hệ thống nhiều tác nhân để xử lý việc cải tạo nhà bếp. Đó là những gì chúng ta sẽ làm. Chúng ta sẽ xây dựng một hệ thống có 3 tác nhân.

  1. Đại lý đề xuất cải tạo
  2. Nhân viên kiểm tra việc tuân thủ và cấp phép
  3. Nhân viên kiểm tra trạng thái đơn đặt hàng

Renovation Proposal Agent (Tác nhân đề xuất cải tạo) để tạo tài liệu đề xuất cải tạo nhà bếp.

Người đại diện về giấy phép và tuân thủ để xử lý các giấy phép và công việc liên quan đến việc tuân thủ.

Order Status Check Agent (Trình kiểm tra trạng thái đơn đặt hàng) để kiểm tra trạng thái đơn đặt hàng của các tài liệu bằng cách xử lý cơ sở dữ liệu quản lý đơn đặt hàng mà chúng ta đã thiết lập trong AlloyDB.

Chúng ta sẽ có một tác nhân gốc điều phối các tác nhân này dựa trên yêu cầu.

Yêu cầu

  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
  • Một dự án Google Cloud đã bật tính năng thanh toán.

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

Tạo một dự án

  1. Trong Google Cloud Console, trên trang bộ chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
  2. Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trên dự án hay không .

Ngoài ra, nếu bạn đang đọc bài viết này và muốn nhận một số khoản tín dụng để bắt đầu sử dụng Google Cloud và ADK, hãy sử dụng đường liên kết này để sử dụng các khoản tín dụng đó. Bạn có thể làm theo hướng dẫn tại đây để sử dụng ưu đãi này. Xin lưu ý rằng bạn chỉ có thể sử dụng đường liên kết này để sử dụng ưu đãi đến hết tháng 5.

  1. Kích hoạt Cloud Shell bằng cách nhấp vào đường liên kết này. Bạn có thể chuyển đổi giữa Cloud Shell Terminal (để chạy các lệnh trên đám mây) và Editor (để tạo dự án) bằng cách nhấp vào nút tương ứng trong Cloud Shell.
  2. Sau khi kết nối với Cloud Shell, hãy kiểm tra để đảm bảo bạn đã được xác thực và dự án được đặt thành mã dự án của bạn bằng lệnh sau:
gcloud auth list
  1. Chạy lệnh sau trong Cloud Shell để xác nhận rằng lệnh gcloud biết về dự án của bạn.
gcloud config list project
  1. Nếu dự án của bạn chưa được đặt, hãy sử dụng lệnh sau để đặt dự án:
gcloud config set project <YOUR_PROJECT_ID>
  1. Đảm bảo bạn có Python 3.9 trở lên
  2. Bật các API sau bằng cách chạy các lệnh sau:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
  1. Tham khảo tài liệu để biết các lệnh và cách sử dụng gcloud.

3. Nguyên mẫu

Bạn có thể bỏ qua bước này nếu quyết định sử dụng mô hình "Gemini 2.5 Pro" cho dự án.

Truy cập vào Google AI Studio. Bắt đầu nhập câu lệnh. Dưới đây là câu lệnh của tôi:

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.

Điều chỉnh và định cấu hình các thông số ở bên phải để nhận được phản hồi tối ưu.

Dựa trên nội dung mô tả đơn giản này, Gemini đã đưa ra cho tôi một câu lệnh vô cùng chi tiết để bắt đầu việc cải tạo! Do đó, chúng tôi đang sử dụng Gemini để nhận được câu trả lời tốt hơn nữa từ AI Studio và các mô hình của chúng tôi. Bạn cũng có thể chọn nhiều mô hình để sử dụng, dựa trên trường hợp sử dụng của mình.

Chúng tôi đã chọn Gemini 2.5 Pro. Đây là mô hình Tư duy, nghĩa là chúng ta sẽ nhận được nhiều mã thông báo đầu ra hơn nữa, trong trường hợp này là tối đa 65 nghìn mã thông báo, cho các bản phân tích dài và tài liệu chi tiết. Hộp tư duy của Gemini xuất hiện khi bạn bật Gemini 2.5 Pro. Mô hình này có khả năng suy luận gốc và có thể nhận các yêu cầu ngữ cảnh dài.

Hãy xem đoạn mã phản hồi bên dưới:

a80d4bad4b3864f7.png

AI Studio đã phân tích dữ liệu của tôi và tạo ra tất cả những thứ này như tủ, mặt bàn, vách ngăn phía sau, sàn nhà, bồn rửa, tính liên kết, bảng màu và lựa chọn chất liệu. Gemini thậm chí còn trích dẫn nguồn!

Lặp lại quy trình này với nhiều lựa chọn mô hình cho đến khi bạn hài lòng với kết quả. Nhưng tôi sẽ nói tại sao bạn phải trải qua tất cả những điều đó khi có Gemini 2.5 :)

Dù sao, giờ hãy thử xem ý tưởng này trở nên sống động với một câu lệnh khác:

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

Đính kèm đường liên kết đến hình ảnh nhà bếp hiện tại của bạn (hoặc bất kỳ hình ảnh nhà bếp mẫu nào). Thay đổi mô hình thành "Tạo hình ảnh xem trước Flash Gemini 2.0" để bạn có quyền tạo hình ảnh.

Tôi nhận được kết quả sau:

b5b1e83fcada28f5.png

Đó chính là sức mạnh của Gemini!

Từ việc hiểu video, tạo hình ảnh gốc cho đến việc tìm hiểu thông tin thực tế bằng Google Tìm kiếm – có những thứ chỉ có thể được tạo bằng Gemini.

Trong AI Studio, bạn có thể lấy nguyên mẫu này, lấy khoá API và mở rộng nguyên mẫu đó thành một ứng dụng tác nhân đầy đủ bằng cách sử dụng sức mạnh của Vertex AI ADK.

4. Thiết lập ADK

  1. Tạo và kích hoạt môi trường ảo (Nên dùng)

Trên Thiết bị đầu cuối Cloud Shell, hãy tạo một Môi trường ảo:

python -m venv .venv

Kích hoạt Môi trường ảo:

source .venv/bin/activate
  1. Cài đặt ADK
pip install google-adk

5. Cấu trúc dự án

  1. Trong Terminal (Dòng lệnh) của Cloud Shell, hãy tạo một thư mục ở vị trí dự án mà bạn muốn
mkdir agentic-apps
cd agentic
-apps
mkdir renovation
-agent
  1. Chuyển đến Trình chỉnh sửa của Cloud Shell và tạo cấu trúc dự án sau bằng cách tạo các tệp (để trống lúc bắt đầu):
renovation-agent/
        __init__
.py
        agent
.py
       
.env
        requirements
.txt

6. Mã nguồn

  1. Chuyển đến "init.py" và cập nhật bằng nội dung sau:
from . import agent
  1. Chuyển đến agent.py và cập nhật tệp bằng nội dung sau từ đường dẫn sau:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py

Trong agent.py, chúng ta nhập các phần phụ thuộc cần thiết, truy xuất các tham số cấu hình từ tệp .env và xác định root_agent để điều phối 3 tác nhân phụ mà chúng ta dự định tạo trong ứng dụng này. Có một số công cụ giúp thực hiện các chức năng cốt lõi và hỗ trợ của các tác nhân phụ này.

  1. Đảm bảo bạn có Bộ chứa Cloud Storage

Đây là để lưu trữ tài liệu đề xuất mà nhân viên hỗ trợ tạo. Tạo và cấp quyền truy cập để hệ thống nhiều tác nhân được tạo bằng Vertex AI có thể truy cập vào đó. Sau đây là cách thực hiện:

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

Đặt tên cho bộ chứa là "next-demo-store". Nếu bạn đặt tên khác, hãy nhớ cập nhật giá trị của STORAGE_BUCKET trong tệp .env (trong bước Thiết lập biến ENV).

  1. Để thiết lập quyền truy cập vào bộ chứa, hãy chuyển đến bảng điều khiển của Cloud Storage rồi chuyển đến Bộ chứa trên Cloud Storage (trong trường hợp này, tên bộ chứa là "next-demo-storage": https://console.cloud.google.com/storage/browser/next-demo-storage.

Chuyển đến phần Quyền –> Xem nguyên tắc –> Cấp quyền truy cập. Chọn Chủ thể là "allUsers" và Vai trò là "Người dùng đối tượng bộ nhớ".

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. Tạo danh sách phần phụ thuộc

Liệt kê tất cả phần phụ thuộc trong requirements.txt. Bạn có thể sao chép mã này từ kho lưu trữ.

Giải thích mã nguồn hệ thống nhiều tác nhân

Tệp agent.py xác định cấu trúc và hành vi của hệ thống nhiều tác nhân cải tạo nhà bếp bằng cách sử dụng Bộ phát triển tác nhân (ADK). Hãy phân tích các thành phần chính:

Định nghĩa về nhân viên hỗ trợ

RenovationProposalAgent

Nhân viên này chịu trách nhiệm tạo tài liệu đề xuất cải tạo nhà bếp. Phương thức này có thể nhận các tham số đầu vào như kích thước nhà bếp, kiểu dáng mong muốn, ngân sách và lựa chọn ưu tiên của khách hàng. Dựa trên thông tin này, công cụ này sử dụng Mô hình ngôn ngữ lớn (LLM) Gemini 2.5 để tạo một đề xuất chi tiết. Sau đó, đề xuất được tạo sẽ được lưu trữ trong một bộ chứa Google Cloud Storage.

PermitsAndComplianceCheckAgent

Nhân viên hỗ trợ này tập trung vào việc đảm bảo dự án cải tạo tuân thủ các quy tắc và quy định về xây dựng tại địa phương. Ứng dụng này nhận thông tin về việc cải tạo được đề xuất (ví dụ: thay đổi cấu trúc, công việc điện, sửa đổi hệ thống ống nước) và sử dụng LLM để kiểm tra các yêu cầu về giấy phép và quy tắc tuân thủ. Tác nhân này sử dụng thông tin từ một cơ sở tri thức (mà bạn có thể tuỳ chỉnh để truy cập vào các API bên ngoài nhằm thu thập các quy định có liên quan).

OrderingAgent

Tác nhân này (bạn có thể ghi chú nếu không muốn triển khai ngay) sẽ xử lý việc kiểm tra trạng thái đơn đặt hàng của vật liệu và thiết bị cần thiết cho việc cải tạo. Để bật tính năng này, bạn cần tạo một hàm Cloud Run như mô tả trong các bước thiết lập. Sau đó, tác nhân sẽ gọi hàm Cloud Run này. Hàm này tương tác với cơ sở dữ liệu AlloyDB chứa thông tin đơn đặt hàng. Ví dụ này minh hoạ việc tích hợp với hệ thống cơ sở dữ liệu để theo dõi dữ liệu theo thời gian thực.

Tác nhân gốc (Trình điều phối)

root_agent đóng vai trò là trình điều phối trung tâm của hệ thống nhiều tác nhân. Thành phần này nhận yêu cầu cải tạo ban đầu và xác định tác nhân phụ nào sẽ được gọi dựa trên nhu cầu của yêu cầu. Ví dụ: nếu yêu cầu cần kiểm tra các yêu cầu về giấy phép, thì yêu cầu đó sẽ gọi PermitsAndComplianceCheckAgent. Nếu người dùng muốn kiểm tra trạng thái đơn đặt hàng, thì ứng dụng sẽ gọi OrderingAgent (nếu được bật).

Sau đó, root_agent sẽ thu thập phản hồi từ các tác nhân phụ và kết hợp các phản hồi đó để cung cấp phản hồi toàn diện cho người dùng. Việc này có thể bao gồm việc tóm tắt đề xuất, liệt kê các giấy phép bắt buộc và cung cấp thông tin cập nhật về trạng thái đơn đặt hàng.

Luồng dữ liệu và các khái niệm chính

Người dùng bắt đầu một yêu cầu thông qua giao diện ADK (cổng hoặc giao diện người dùng web).

  1. Yêu cầu được root_agent nhận.
  2. root_agent phân tích yêu cầu và định tuyến yêu cầu đó đến các tác nhân phụ thích hợp.
  3. Các tác nhân phụ sử dụng LLM, cơ sở tri thức, API và cơ sở dữ liệu để xử lý yêu cầu và tạo phản hồi.
  4. Các tác nhân phụ trả về phản hồi cho root_agent.
  5. root_agent kết hợp các phản hồi và cung cấp đầu ra cuối cùng cho người dùng.

LLM (Mô hình ngôn ngữ lớn)

Các tác nhân này phụ thuộc nhiều vào LLM để tạo văn bản, trả lời câu hỏi và thực hiện các nhiệm vụ suy luận. LLM là "bộ não" giúp các tác nhân hiểu và phản hồi các yêu cầu của người dùng. Chúng tôi đang sử dụng Gemini 2.5 trong ứng dụng này.

Google Cloud Storage

Dùng để lưu trữ các tài liệu đề xuất cải tạo được tạo. Bạn cần tạo một bộ chứa và cấp các quyền cần thiết để các tác nhân truy cập vào bộ chứa đó.

Cloud Run (Không bắt buộc)

OrderingAgent sử dụng một hàm Cloud Run để giao tiếp với AlloyDB. Cloud Run cung cấp một môi trường không có máy chủ để thực thi mã nhằm phản hồi các yêu cầu HTTP.

AlloyDB

Nếu đang sử dụng OrderingAgent, bạn cần thiết lập cơ sở dữ liệu AlloyDB để lưu trữ thông tin đơn đặt hàng. Chúng ta sẽ tìm hiểu chi tiết về vấn đề này trong phần tiếp theo là "Thiết lập cơ sở dữ liệu".

Tệp.env

Tệp .env lưu trữ thông tin nhạy cảm như khoá API, thông tin xác thực cơ sở dữ liệu và tên bộ chứa. Điều quan trọng là bạn phải bảo mật tệp này và không xác nhận tệp đó vào kho lưu trữ của mình. Tệp này cũng lưu trữ các chế độ cài đặt cấu hình cho các tác nhân và dự án Google Cloud của bạn. root_agent hoặc các hàm hỗ trợ thường sẽ đọc giá trị từ tệp này. Đảm bảo tất cả biến bắt buộc đều được thiết lập đúng cách trong tệp .env. Bao gồm cả tên bộ chứa trên Cloud Storage

7. Thiết lập cơ sở dữ liệu

Trong một trong những công cụ mà ordering_agent sử dụng, có tên là "check_status", chúng ta truy cập vào cơ sở dữ liệu đơn đặt hàng AlloyDB để biết trạng thái của đơn đặt hàng. Trong phần này, chúng ta sẽ thiết lập cụm và thực thể cơ sở dữ liệu AlloyDB.

Tạo cụm và thực thể

  1. Chuyển đến trang AlloyDB trong Cloud Console. Bạn có thể dễ dàng tìm thấy hầu hết các trang trong Cloud Console bằng cách tìm kiếm các trang đó thông qua thanh tìm kiếm của bảng điều khiển.
  2. Chọn CREATE CLUSTER (TẠO CHUỖI) trên trang đó:

f76ff480c8c889aa.png

  1. Bạn sẽ thấy một màn hình như màn hình bên dưới. Tạo một cụm và thực thể với các giá trị sau (Đảm bảo các giá trị khớp với nhau trong trường hợp bạn đang nhân bản mã ứng dụng từ kho lưu trữ):
  • mã cụm: "vector-cluster"
  • mật khẩu: "alloydb"
  • PostgreSQL 15 / phiên bản mới nhất được đề xuất
  • Vùng: "us-central1"
  • Mạng: "default"

538dba58908162fb.png

  1. Khi chọn mạng mặc định, bạn sẽ thấy một màn hình như dưới đây.

Chọn THIẾT LẬP KẾT NỐI.
7939bbb6802a91bf.png

  1. Tại đó, hãy chọn "Sử dụng dải IP được phân bổ tự động" rồi chọn Tiếp tục. Sau khi xem lại thông tin, hãy chọn TẠO KẾT NỐI. 768ff5210e79676f.png
  2. Sau khi thiết lập mạng, bạn có thể tiếp tục tạo cụm. Nhấp vào CREATE CLUSTER (TẠO CLUSTER) để hoàn tất việc thiết lập cụm như minh hoạ bên dưới:

e06623e55195e16e.png

Hãy nhớ thay đổi mã phiên bản (bạn có thể tìm thấy mã này tại thời điểm định cấu hình cụm / phiên bản) thành

vector-instance. Nếu bạn không thể thay đổi giá trị này, hãy nhớ sử dụng mã nhận dạng thực thể trong tất cả các tệp tham chiếu sắp tới.

Xin lưu ý rằng quá trình tạo cụm sẽ mất khoảng 10 phút. Sau khi tạo thành công, bạn sẽ thấy một màn hình hiển thị thông tin tổng quan về cụm bạn vừa tạo.

Nhập dữ liệu

Bây giờ, đã đến lúc thêm một bảng chứa dữ liệu về cửa hàng. Chuyển đến AlloyDB, chọn cụm chính rồi chọn AlloyDB Studio:

847e35f1bf8a8bd8.png

Bạn có thể phải đợi thực thể của mình hoàn tất quá trình tạo. Sau khi hoàn tất, hãy đăng nhập vào AlloyDB bằng thông tin xác thực mà bạn đã tạo khi tạo cụm. Sử dụng dữ liệu sau để xác thực với PostgreSQL:

  • Tên người dùng : "postgres"
  • Cơ sở dữ liệu : "postgres"
  • Mật khẩu : "alloydb"

Sau khi bạn xác thực thành công vào AlloyDB Studio, các lệnh SQL sẽ được nhập vào Trình chỉnh sửa. Bạn có thể thêm nhiều cửa sổ Trình chỉnh sửa bằng biểu tượng dấu cộng ở bên phải cửa sổ cuối cùng.

91a86d9469d499c4.png

Bạn sẽ nhập các lệnh cho AlloyDB trong cửa sổ trình chỉnh sửa, sử dụng các tuỳ chọn Run (Chạy), Format (Định dạng) và Clear (Xoá) nếu cần.

Tạo bảng

Bạn có thể tạo bảng bằng cách sử dụng câu lệnh DDL bên dưới trong 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
);

Chèn bản ghi

Sao chép câu lệnh truy vấn insert từ tập lệnh database_script.sql được đề cập ở trên vào trình chỉnh sửa.

Nhấp vào Chạy.

Giờ đây, khi tập dữ liệu đã sẵn sàng, hãy tạo một ứng dụng Java Cloud Run Functions để trích xuất trạng thái.

Tạo Hàm chạy trên đám mây trong Java để trích xuất thông tin trạng thái đơn đặt hàng

  1. Tạo Hàm Cloud Run tại đây: https://console.cloud.google.com/run/create?deploymentType=function
  2. Đặt tên hàm thành "check-status" và chọn "Java 17" làm môi trường thời gian chạy.
  3. Bạn có thể đặt chế độ xác thực thành "Allow unauthenticated invocations" (Cho phép các lệnh gọi chưa xác thực) vì đây là ứng dụng minh hoạ.
  4. Chọn Java 17 làm môi trường thời gian chạy và Trình soạn thảo cùng dòng cho mã nguồn.
  5. Tại thời điểm này, mã phần giữ chỗ sẽ được tải trong trình soạn thảo.

Thay thế mã giữ chỗ

  1. Thay đổi tên tệp Java thành "ProposalOrdersTool.java" và tên lớp thành "ProposalOrdersTool".
  2. Thay thế mã phần giữ chỗ trong ProposalOrdersTool.java và pom.xml bằng mã từ các tệp tương ứng trong thư mục "Cloud Run Function" (Hàm chạy trên đám mây) trong kho lưu trữ này.
  3. Trong ProposalOrdersTool.java, hãy tìm dòng mã sau, thay thế các giá trị phần giữ chỗ bằng các giá trị trong cấu hình của bạn:
String ALLOYDB_INSTANCE_NAME = "projects/<<YOUR_PROJECT_ID>>/locations/us-central1/clusters/<<YOUR_CLUSTER>>/instances/<<YOUR_INSTANCE>>";
  1. Nhấp vào Tạo.
  2. Hàm Cloud Run sẽ được tạo và triển khai.

BƯỚC QUAN TRỌNG:

Sau khi triển khai, để cho phép Hàm trên đám mây truy cập vào thực thể cơ sở dữ liệu AlloyDB, chúng ta sẽ tạo trình kết nối VPC.

Sau khi thiết lập để triển khai, bạn sẽ có thể thấy các hàm trong bảng điều khiển Google Cloud Run Functions. Tìm hàm mới tạo (check-status), nhấp vào hàm đó, rồi nhấp vào EDIT AND DEPLOY NEW REVISIONS (CHỈNH SỬA VÀ TRIỂN KHAI BẢN SỬA ĐỔI MỚI) (được xác định bằng biểu tượng CHỈNH SỬA (bút) ở đầu bảng điều khiển Cloud Run Functions) rồi thay đổi những nội dung sau:

  1. Chuyển đến thẻ Kết nối mạng:

828cd861864d99ea.png

  1. Chọn "Kết nối với VPC cho lưu lượng truy cập đi", sau đó chọn "Sử dụng trình kết nối Quyền truy cập VPC không máy chủ"
  2. Trong trình đơn thả xuống Network (Mạng), hãy nhấp vào trình đơn thả xuống Network (Mạng) rồi chọn tuỳ chọn "Add New VPC Connector" (Thêm trình kết nối VPC mới) (nếu bạn chưa định cấu hình trình kết nối mặc định) và làm theo hướng dẫn bạn thấy trên hộp thoại bật lên:

6559ccfd10e597f2.png

  1. Đặt tên cho Trình kết nối VPC và đảm bảo khu vực giống với phiên bản của bạn. Giữ nguyên giá trị Mạng là mặc định và đặt Mạng con thành Dải IP tuỳ chỉnh với dải IP là 10.8.0.0 hoặc một dải IP tương tự có sẵn.
  2. Mở rộng phần Hiển thị chế độ cài đặt điều chỉnh theo tỷ lệ và đảm bảo bạn đã thiết lập cấu hình chính xác như sau:

199b0ccd80215004.png

  1. Nhấp vào CREATE (TẠO) và trình kết nối này sẽ xuất hiện trong phần cài đặt đầu ra.
  2. Chọn trình kết nối mới tạo.
  3. Chọn định tuyến tất cả lưu lượng truy cập thông qua trình kết nối VPC này.
  4. Nhấp vào TIẾP THEO rồi nhấp vào TRÌNH DƯƠNG.
  5. Sau khi triển khai Hàm trên đám mây đã cập nhật, bạn sẽ thấy điểm cuối được tạo.
  6. Bạn có thể kiểm thử hàm này bằng cách nhấp vào nút TEST (KIỂM THỬ) ở đầu bảng điều khiển Cloud Run Functions (Hàm chạy trên đám mây) và thực thi lệnh thu được trong Cloud Shell Terminal (Trình kết nối Cloud Shell).
  7. Điểm cuối đã triển khai là URL mà bạn cần cập nhật trong biến .env CHECK_ORDER_STATUS_ENDPOINT.

8. Thiết lập mô hình

Khả năng của trợ lý trong việc hiểu yêu cầu của người dùng và tạo câu trả lời được hỗ trợ bởi Mô hình ngôn ngữ lớn (LLM). Tác nhân của bạn cần thực hiện các lệnh gọi bảo mật đến dịch vụ LLM bên ngoài này. Dịch vụ này yêu cầu thông tin xác thực. Nếu không có thông tin xác thực hợp lệ, dịch vụ LLM sẽ từ chối các yêu cầu của tác nhân và tác nhân sẽ không thể hoạt động.

  1. Lấy khoá API từ Google AI Studio.
  2. Trong bước tiếp theo, khi bạn thiết lập tệp .env, hãy thay thế <<your API KEY>> bằng giá trị KHÓA API thực tế của bạn.

9. Thiết lập biến ENV

  1. Thiết lập giá trị cho các tham số trong tệp .env của mẫu trong kho lưu trữ này. Trong trường hợp của tôi, .env có các biến sau:
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>>

Thay thế phần giữ chỗ bằng giá trị của bạn.

10. Chạy tác nhân

  1. Sử dụng dòng lệnh, hãy chuyển đến thư mục mẹ của dự án trợ lý:
cd renovation-agent
  1. Cài đặt tất cả phần phụ thuộc
pip install -r requirements.txt
  1. Bạn có thể chạy lệnh sau trong dòng lệnh Cloud Shell để thực thi tác nhân:
adk run .
  1. Bạn có thể chạy mã sau để chạy trong giao diện người dùng web được cấp phép ADK:
adk web
  1. Kiểm thử bằng các câu lệnh sau:
user>> 

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

12. Triển khai cho Công cụ của nhân viên hỗ trợ

Giờ đây, khi bạn đã kiểm thử hệ thống nhiều tác nhân hoạt động tốt, hãy tạo hệ thống không máy chủ và cung cấp trên đám mây để bất kỳ ai / bất kỳ ứng dụng nào cũng có thể sử dụng. Bỏ ghi chú đoạn mã dưới đây trong agent.py từ kho lưu trữ của họ và bạn có thể triển khai hệ thống nhiều tác nhân:

# 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

Thực thi lại agent.py này từ trong thư mục dự án bằng lệnh sau:

>> cd adk-renovation-agent

>> python agent.py

Quá trình này sẽ mất vài phút để hoàn tất. Sau khi hoàn tất, bạn sẽ nhận được một điểm cuối có dạng như sau:

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

Bạn có thể kiểm thử tác nhân đã triển khai bằng mã sau bằng cách thêm tệp mới " 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)

Trong mã trên, hãy thay thế giá trị cho phần giữ chỗ "<<YOUR_DEPLOYED_ENGINE_ID>>" và chạy lệnh "python test.py". Bạn đã sẵn sàng để thực thi mã này nhằm tương tác với hệ thống nhiều tác nhân được triển khai Agent Engine và sẵn sàng để cải tạo nhà bếp của bạn!!!

13. Tuỳ chọn triển khai một dòng

Giờ đây, khi bạn đã kiểm thử hệ thống nhiều tác nhân đã triển khai, hãy tìm hiểu các phương thức đơn giản hơn để tóm tắt bước triển khai mà chúng ta đã thực hiện ở bước trước: CÁC LỰA CHỌN TRIỂN KHAI MỘT DÒNG:

  1. Để chạy trên Cloud Run:

Cú pháp:

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>>

Trong trường hợp này:

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

Bạn có thể sử dụng điểm cuối đã triển khai cho các hoạt động tích hợp hạ nguồn.

  1. Đối với Công cụ của nhân viên hỗ trợ:

Cú pháp:

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

Trong trường hợp này:

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

Bạn sẽ thấy một tác nhân mới trong Giao diện người dùng của công cụ tác nhân trong Google Cloud Console. Hãy tham khảo blog này để biết thêm thông tin chi tiết.

14. Dọn dẹp

Để tránh bị tính phí cho tài khoản Google Cloud của bạn đối với các tài nguyên được sử dụng trong bài đăng này, hãy làm theo các bước sau:

  1. Trong Google Cloud Console, hãy chuyển đến trang Quản lý tài nguyên.
  2. Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá, rồi nhấp vào Xoá.
  3. Trong hộp thoại, hãy nhập mã dự án, sau đó nhấp vào Shut down (Tắt) để xoá dự án.

15. Xin chúc mừng

Xin chúc mừng! Bạn đã tạo và tương tác thành công với nhân viên hỗ trợ đầu tiên bằng ADK!