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

1. Tổng quan

Tác nhân là một chương trình tự động trò chuyện 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à bối cảnh mà tác nhân có, đồng thời có khả năng đưa ra quyết định tự động 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ự chủ và cùng nhau khi cần thiết để phục vụ mục đích lớn hơn của ứng dụng, trong đó mỗi tác nhân đều có kiến thức độc lập và chịu trách nhiệm về một lĩnh vực trọng tâm cụ thể, thì ứng dụng của bạn sẽ trở thành một hệ thống đa tác nhân.

Agent Development Kit (ADK)

Bộ công cụ 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 các 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 thành một Hệ thống nhiều tác nhân (MAS).

Trong ADK, hệ thống nhiều tác nhân là một ứng dụng mà trong đó các tác nhân khác nhau (thường tạo thành một hệ thống phân cấp) cộng tác hoặc phối hợp để đạ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 những lợi thế đáng kể, bao gồm khả năng mô-đun hoá nâng cao, chuyên môn hoá, khả năng sử dụng lại, khả năng duy trì và khả năng xác định các luồng kiểm soát có cấu trúc bằng cách sử dụng các tác nhân quy trình công 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 chuyên môn của từng đặc vụ. – "bạn có biết lý do bạn cần một đại lý phụ cụ thể cho việc gì đó không", hãy tìm hiểu lý do đó trước.

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

Thứ ba, Có nhiều loại quy trình định tuyến cho 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 được một phương thức phù hợp với quy trình của ứng dụng. Ngoài ra, bạn cần những ngữ cảnh và trạng thái nào để kiểm soát luồng dữ liệu 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 đa 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. Nhân viên đề xuất cải tạo
  2. Permits and Compliance Check Agent
  3. Nhân viên kiểm tra trạng thái đơn đặt hàng

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.

Nhân viên cấp phép và tuân thủ, để xử lý các nhiệm vụ liên quan đến việc cấp phép và tuân thủ.

Order Status Check Agent (Nhân viên 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 vật liệu bằng cách xử lý cơ sở dữ liệu quản lý đơn đặt hàng mà chúng tôi đã 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 trên Google Cloud đã bật tính năng thanh toán.

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

Tạo dự án

  1. Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
  2. Đảm bảo rằng 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 trong một 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ố 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 để đổi tín dụng. Bạn có thể làm theo hướng dẫn tại đây để sử dụng mã này. Xin lưu ý rằng đường liên kết này chỉ có hiệu lực đến hết tháng 5 để sử dụng ưu đãi.

  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à Trình chỉnh sửa (để 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, bạn có thể kiểm tra để đảm bảo rằng 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 bạn chưa đặt dự án, hãy dùng lệnh sau để đặt:
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. Đâ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 tham 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 đã tạo cho tôi một câu lệnh cực kỳ chi tiết để bắt đầu quá trình cải tạo! Trên thực tế, chúng tôi đang sử dụng Gemini để nhận được câu trả lời hiệu quả 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, tuỳ thuộc vào trường hợp sử dụng của bạn.

Chúng tôi đã chọn Gemini 2.5 Pro. Đây là mô hình Tư duy, tức là chúng ta sẽ nhận được nhiều mã thông báo đầu ra hơn, trong trường hợp này là tối đa 65.000 mã thông báo, để phân tích dạng dài và tài liệu chi tiết. Hộp suy nghĩ 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 tự nhiên và có thể xử lý các yêu cầu có 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, chẳng hạn như tủ, mặt bàn, tấm chắn, sàn nhà, bồn rửa, độ kết dính, bảng màu và lựa chọn vật liệu. Gemini còn trích dẫn nguồn!

Lặp lại quy trình này với các lựa chọn mô hình khác nhau cho đến khi bạn hài lòng với kết quả. Nhưng tôi nghĩ rằng bạn không cần phải làm tất cả những việc đó khi đã có Gemini 2.5 :)

Dù sao thì bây giờ, hãy thử xem ý tưởng đó trở nên sống động như thế nào 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 mẫu nhà bếp nào). Thay đổi mô hình thành "Gemini 2.0 Flash Preview Image Generation" (Tạo hình ảnh bằng Gemini 2.0 Flash (bản dùng thử)) để bạn có thể 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, đến tạo hình ảnh tự nhiên, đến việc liên kết thông tin thực tế bằng Google Tìm kiếm – có những việc chỉ có thể thực hiện được nhờ 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 có đầy đủ chức năng của tác nhân bằ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)

Trong Cloud Shell Terminal, 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 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 Cloud Shell rồi tạo cấu trúc dự án sau bằng cách tạo các tệp (bắt đầu bằng tệp trống):
renovation-agent/
        __init__.py
        agent.py
        .env
        requirements.txt

6. Mã nguồn

  1. Chuyển đến "init.py" rồi cập nhật nội dung sau:
from . import agent
  1. Chuyển đến agent.py rồi cập nhật tệp bằng nội dung sau đây 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ụ hỗ trợ các chức năng cốt lõi và chức năng hỗ trợ của những tác nhân phụ này.

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

Đây là nơi lưu trữ tài liệu đề xuất mà tác nhân tạo ra. Tạo và cấp quyền truy cập để hệ thống đa 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 nhóm của bạn 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 môi trường).

  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 Cloud Storage và đến Bộ chứa lưu trữ của bạn (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 Permissions (Quyền) -> View Principals (Xem các thực thể) -> Grant Access (Cấp quyền truy cập). Chọn Principals là "allUsers" và Role là "Storage Object User".

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 các phần phụ thuộc

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

Giải thích mã nguồn của 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 đa tác nhân cải tạo nhà bếp bằng Bộ công cụ 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ề tác nhân

RenovationProposalAgent

Nhân viên này chịu trách nhiệm tạo chứng từ đề xuất cải tạo nhà bếp. Bạn có thể nhập các tham số như kích thước nhà bếp, phong cách mong muốn, ngân sách và lựa chọn ưu tiên của khách hàng (không bắt buộc). Dựa trên thông tin này, Gemini 2.5 sẽ sử dụng một Mô hình ngôn ngữ lớn (LLM) để 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 này tập trung vào việc đảm bảo dự án cải tạo tuân thủ các quy định và tiêu chuẩn xây dựng tại địa phương. Công cụ này nhận thông tin về việc cải tạo được đề xuất (ví dụ: thay đổi về cấu trúc, công việc liên quan đến đ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 sử dụng thông tin từ cơ sở kiến thức (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ể nhận xét nếu không muốn triển khai ngay) 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 một cơ sở dữ liệu AlloyDB chứa thông tin về đơn đặt hàng. Điều này minh hoạ việc tích hợp với một 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 (Orchestrator)

root_agent đóng vai trò là đơn vị điều phối trung tâm của hệ thống nhiều tác nhân. Nó nhận được yêu cầu cải tạo ban đầu và xác định những tác nhân phụ cần 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 các câu trả lời từ các sub-agent và kết hợp chúng để đưa ra câu trả lời toàn diện cho người dùng. Điều 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 (thiết bị đầu cuối hoặc giao diện người dùng web).

  1. root_agent sẽ nhận được yêu cầu.
  2. root_agent phân tích yêu cầu và chuyể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ở kiến thức, API và cơ sở dữ liệu để xử lý yêu cầu và tạo câu trả lời.
  4. Các tác nhân phụ sẽ trả về phản hồi cho root_agent.
  5. root_agent kết hợp các câu trả lời và cung cấp kết quả 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 dựa nhiều vào LLM (mô hình ngôn ngữ lớn) để tạo văn bản, trả lời câu hỏi và thực hiện các tác vụ suy luận. LLM là "bộ não" giúp các tác nhân có thể hiểu và phản hồi 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

Được 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 có thể 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 để tương tác với AlloyDB. Cloud Run cung cấp một môi trường phi 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 một 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 đăng nhập cơ sở dữ liệu và tên vùng chứa. Bạn cần phải giữ an toàn cho tệp này và không xác nhận (commit) tệp đó vào kho lưu trữ của mình. Thư mục 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 trên đám mây của bạn trên Google Cloud. root_agent hoặc các hàm hỗ trợ thường sẽ đọc các giá trị từ tệp này. Đảm bảo tất cả các biến bắt buộc đều được thiết lập đúng cách trong tệp .env. Trong đó có tên bộ chứa 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 tôi 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à phiên bản cơ sở dữ liệu AlloyDB.

Tạo một cụm và phiên bản

  1. Chuyển đến trang AlloyDB trong Cloud Console. Một cách dễ dàng để tìm hầu hết các trang trong Cloud Console là tìm kiếm các trang đó bằng thanh tìm kiếm của bảng điều khiển.
  2. Chọn TẠO CỤM 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ể bằng các giá trị sau (Đảm bảo các giá trị khớp nhau trong trường hợp bạn đang sao chép mã xử lý ứng dụng từ kho lưu trữ):
  • mã nhận dạng cụm: "vector-cluster"
  • password: "alloydb"
  • PostgreSQL 15 / mới nhất (nên dùng)
  • 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ư màn hình bên dưới.

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 xét 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 TẠO CỤM để hoàn tất việc thiết lập cụm như minh hoạ bên dưới:

e06623e55195e16e.png

Đảm bảo bạn thay đổi mã nhận dạng thực thể (bạn có thể tìm thấy mã này tại thời điểm định cấu hình cụm / thực thể) thành

vector-instance. Nếu không thể thay đổi, hãy nhớ sử dụng mã nhận dạng phiên bản trong tất cả các thông tin 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 cho biết thông tin tổng quan về cụm mà bạn vừa tạo.

Nhập dữ liệu

Bây giờ, đã đến lúc thêm một bảng có 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 tạo, hãy đăng nhập vào AlloyDB bằng thông tin đăng nhập 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 cách nhấp vào 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 lựa chọn Chạy, Định dạng và Xoá khi cần.

Tạo bảng

Bạn có thể tạo một bảng bằ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, 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 một Hàm Cloud Run bằng Java để trích xuất thông tin về 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 cho hàm là "check-status" và chọn "Java 17" làm thời gian chạy.
  3. Bạn có thể đặt chế độ xác thực thành "Cho phép lệnh gọi chưa được xác thực" vì đây là một ứng dụng minh hoạ.
  4. Chọn Java 17 làm thời gian chạy và Trình chỉnh sửa nội tuyến cho mã nguồn.
  5. Tại thời điểm này, mã trình giữ chỗ sẽ được tải trong trình chỉnh sửa.

Thay thế mã giữ chỗ

  1. Đổi tên tệp Java thành "ProposalOrdersTool.java" và tên lớp thành "ProposalOrdersTool".
  2. Thay thế mã 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" 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ị trình 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 Cloud Functions 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 đó, sau đó nhấp vào 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) và 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 một VPC cho lưu lượng truy cập đi", sau đó chọn "Sử dụng trình kết nối cho phép 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) và chọn mục "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) rồi làm theo hướng dẫn mà bạn thấy trên hộp thoại bật lên:

6559ccfd10e597f2.png

  1. Cung cấp tên cho trình kết nối VPC và đảm bảo vùng này giống với thực thể của bạn. Để 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 mục HIỂN THỊ CÁC CHẾ ĐỘ CÀI ĐẶT THANG ĐO và đảm bảo bạn đã đặt cấu hình chính xác như sau:

199b0ccd80215004.png

  1. Nhấp vào TẠO. Giờ đây, trình kết nối này sẽ xuất hiện trong phần cài đặt lưu lượng truy cập đi.
  2. Chọn đầu nối vừa 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 TRIỂN KHAI.
  5. Sau khi triển khai Cloud Function đã cập nhật, bạn sẽ thấy điểm cuối được tạo.
  6. Bạn có thể kiểm thử bằng cách nhấp vào nút KIỂM THỬ ở đầu bảng điều khiển Hàm Cloud Run và bằng cách thực thi lệnh kết quả trong Cloud Shell Terminal.
  7. Điểm cuối được triển khai là URL mà bạn cần cập nhật trong biến CHECK_ORDER_STATUS_ENDPOINT.

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

Khả năng hiểu yêu cầu của người dùng và tạo câu trả lời của tác nhân được hỗ trợ bởi Mô hình ngôn ngữ lớn (LLM). Trợ lý của bạn cần thực hiện các lệnh gọi an toàn đến dịch vụ LLM bên ngoài này. Điều này đòi hỏi phải có thông tin xác thực. Nếu không có hoạt động 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. Ở 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ị API KEY thực tế của bạn.

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

  1. Thiết lập các giá trị cho các tham số trong tệp .env mẫu trong repo 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ế trình giữ chỗ bằng các giá trị của bạn.

10. Chạy tác nhân

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

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

11. Kết quả

@ Hệ thống nhiều tác nhân cho các tác vụ Cải tạo nhà bếp

623fa35fce53b51b.png

12. Triển khai cho Agent Engine

Giờ đây, bạn đã kiểm thử hệ thống đa tác nhân để đảm bảo hệ thống hoạt động bình thường. Hãy chuyển hệ thống này sang chế độ không máy chủ và cung cấp trên đám mây để mọi người / mọi ứng dụng đều có thể sử dụng. Huỷ nhận xét đoạn mã dưới đây trong agent.py từ kho lưu trữ 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 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ử nhân viên hỗ trợ đã triển khai bằng mã sau đây bằng cách thêm một 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 đoạn mã trên, hãy thay thế giá trị cho phần giữ chỗ "<<YOUR_DEPLOYED_ENGINE_ID>>" rồi chạy lệnh "python test.py". Vậy là bạn đã sẵn sàng thực thi lệnh này để tương tác với một 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 mình!!!

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

Giờ đây, bạn đã kiểm thử hệ thống nhiều tác nhân được triển khai, hãy tìm hiểu các phương thức đơn giản hơn để trừu tượng hoá 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. Đối với 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 Agent Engine:

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 Agent Engine 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í vào tài khoản Google Cloud của bạn cho các tài nguyên được dùng trong bài đăng này, hãy làm theo các bước sau:

  1. Trong bảng điều khiển Cloud, 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 rồi nhấp vào 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 tác nhân đầu tiên của mình bằng ADK!