Tạo ứng dụng nhiều tác nhân bằng Hộp công cụ MCP cho AlloyDB và ADK

Tạo ứng dụng nhiều tác nhân bằng Hộp công cụ MCP cho AlloyDB và ADK

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 17, 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 bằng cách sử dụng Hộp công cụ MCP cho AlloyDB và ADK.

  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. Kiểm tra trạng thái đơn đặt hàng (Công cụ sử dụng Hộp công cụ MCP cho cơ sở dữ liệu)

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. Nhưng đối với phần cơ sở dữ liệu này, chúng ta sẽ sử dụng MCP Toolbox for AlloyDB (Hộp công cụ MCP cho AlloyDB) để triển khai logic truy xuất trạng thái cho đơn đặt hàng.

2. MCP

MCP là viết tắt của Model Context Protocol (Giao thức ngữ cảnh mô hình), một tiêu chuẩn mở do Anthropic phát triển, cung cấp một cách nhất quán để các tác nhân AI kết nối với các công cụ, dịch vụ và dữ liệu bên ngoài. Về cơ bản, nó hoạt động như một tiêu chuẩn chung cho các ứng dụng AI, cho phép các ứng dụng này tương tác liền mạch với nhiều nguồn dữ liệu và công cụ.

  1. Công cụ này sử dụng mô hình máy khách-máy chủ, trong đó các ứng dụng AI (máy chủ lưu trữ) chạy ứng dụng khách MCP để giao tiếp với máy chủ MCP.
  2. Khi cần truy cập vào một công cụ hoặc dữ liệu cụ thể, tác nhân AI sẽ gửi một yêu cầu có cấu trúc đến ứng dụng MCP. Ứng dụng này sẽ chuyển tiếp yêu cầu đó đến máy chủ MCP thích hợp.
  3. Cho phép các mô hình AI truy cập vào dữ liệu và công cụ bên ngoài mà không cần mã tuỳ chỉnh cho mỗi lần tích hợp.
  4. Đơn giản hoá quy trình xây dựng các tác nhân và quy trình làm việc phức tạp dựa trên Mô hình ngôn ngữ lớn (LLM).

Hộp công cụ MCP cho cơ sở dữ liệu

Hộp công cụ MCP cho cơ sở dữ liệu của Google là một máy chủ MCP nguồn mở dành cho cơ sở dữ liệu. Công cụ này được thiết kế để đáp ứng tiêu chuẩn cấp doanh nghiệp và chất lượng sản xuất. Thư viện này giúp bạn phát triển các công cụ dễ dàng, nhanh chóng và an toàn hơn bằng cách xử lý các vấn đề phức tạp như gộp kết nối, xác thực, v.v.

Cho phép nhân viên hỗ trợ truy cập vào dữ liệu trong cơ sở dữ liệu của bạn!!! Cách thực hiện:

Đơn giản hoá quá trình phát triển: Tích hợp các công cụ vào tác nhân của bạn trong chưa đến 10 dòng mã, tái sử dụng các công cụ giữa nhiều tác nhân hoặc khung và triển khai các phiên bản công cụ mới dễ dàng hơn.

Hiệu suất tốt hơn: Các phương pháp hay nhất như nhóm kết nối, xác thực, v.v.

Tăng cường bảo mật: Tính năng xác thực tích hợp để truy cập vào dữ liệu của bạn một cách an toàn hơn

Khả năng quan sát toàn diện: Các chỉ số và tính năng theo dõi ngay từ đầu với tính năng hỗ trợ tích hợp cho OpenTelemetry.

Phải nói rằng sự kiện này diễn ra trước MCP!!!

Hộp công cụ MCP cho Cơ sở dữ liệu nằm giữa khung điều phối của ứng dụng tác nhân và cơ sở dữ liệu, cung cấp một vùng điều khiển dùng để sửa đổi, phân phối hoặc gọi các công cụ. Công cụ này giúp đơn giản hoá việc quản lý các công cụ bằng cách cung cấp cho bạn một vị trí tập trung để lưu trữ và cập nhật các công cụ, cho phép bạn chia sẻ các công cụ giữa các tác nhân và ứng dụng, đồng thời cập nhật các công cụ đó mà không cần triển khai lại ứng dụng.

9a9018b8596bd34e.png

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.

3. 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. 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 \alloydb.googleapis.com
  1. Đảm bảo bạn có Python 3.9 trở lên
  2. Tham khảo tài liệu để biết các lệnh và cách sử dụng gcloud.

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. Trên Cloud Shell Terminal, hãy chạy lần lượt các lệnh sau để tạo thư mục gốc và thư mục dự án:
mkdir agentic-apps
cd agentic
-apps
mkdir renovation
-agent
  1. Chuyển đến trình chỉnh sử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

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
  1. Đặt tên cho bộ chứa là "next-demo-store" hoặc bất kỳ tên nào mà bộ chứa cho phép. Hãy ghi lại giá trị này vì bạn cần cập nhật giá trị của STORAGE_BUCKET trong tệp .env (trong bước Thiết lập biến ENV).
  2. Tạo trong vị trí us-central1
  3. Để 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 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.

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"
  • Tương thích với PostgreSQL 16 / nên dùng phiên bản mới nhấ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

6. LƯU Ý QUAN TRỌNG: 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.

  1. Để chuẩn bị thiết lập Hộp công cụ, hãy bật kết nối IP công khai trong thực thể AlloyDB để công cụ mới có thể truy cập vào cơ sở dữ liệu.
  2. Chuyển đến phần Kết nối IP công khai, đánh dấu vào hộp Enable Public IP (Bật IP công khai) rồi nhập địa chỉ IP của máy Cloud Shell.
  3. Để lấy địa chỉ IP của máy Cloud Shell, hãy chuyển đến Cloud Shell Terminal rồi nhập ifconfig. Từ kết quả, hãy xác định địa chỉ inet eth0 và thay thế 2 chữ số cuối cùng bằng 0.0 với kích thước mặt nạ "/16". Ví dụ: "XX.XX.0.0/16", trong đó XX là các số.
  4. Dán địa chỉ IP này vào hộp văn bản "Mạng" của mục Mạng bên ngoài được uỷ quyền trên trang chỉnh sửa thực thể.

e4d1045e1255e40f.png

  1. 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 CLUSTER (TẠO CHUỖI) để hoàn tất việc thiết lập cụm như minh hoạ bên dưới:

e06623e55195e16e.png

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 thiết lập Hộp công cụ MCP cho Cơ sở dữ liệu để đóng vai trò là mặt điều khiển cho tất cả các hoạt động tương tác với Cơ sở dữ liệu đơn đặt hàng trong AlloyDB!!!

8. Hộp công cụ MCP để thiết lập cơ sở dữ liệu

Hộp công cụ nằm giữa khung điều phối của ứng dụng và cơ sở dữ liệu, cung cấp một vùng điều khiển dùng để sửa đổi, phân phối hoặc gọi các công cụ. Công cụ này giúp đơn giản hoá việc quản lý các công cụ bằng cách cung cấp cho bạn một vị trí tập trung để lưu trữ và cập nhật các công cụ, cho phép bạn chia sẻ các công cụ giữa các tác nhân và ứng dụng, đồng thời cập nhật các công cụ đó mà không cần triển khai lại ứng dụng.

Bạn có thể thấy rằng một trong những cơ sở dữ liệu được MCP Toolbox for Databases hỗ trợ là AlloyDB. Vì chúng ta đã cấp phép cơ sở dữ liệu đó trong phần trước, hãy tiếp tục thiết lập Toolbox.

  1. Chuyển đến Cloud Shell Terminal và đảm bảo dự án của bạn đã được chọn và hiển thị trong lời nhắc của dòng lệnh. Chạy lệnh dưới đây từ Dòng lệnh Cloud Shell để chuyển đến thư mục dự án:
cd adk-renovation-agent
  1. Chạy lệnh bên dưới để tải xuống và cài đặt hộp công cụ trong thư mục mới:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
  1. Chuyển đến Trình chỉnh sửa Cloud Shell (dành cho chế độ chỉnh sửa mã) và trong thư mục gốc của dự án, hãy thêm một tệp có tên "tools.yaml"
sources:
    alloydb-orders:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
        instance: "<<YOUR_ALLOYDB_INSTANCE>>"
        database: "<<YOUR_ALLOYDB_DATABASE>>"
        user: "<<YOUR_ALLOYDB_USER>>"
        password: "<<YOUR_ALLOYDB_PASSWORD>>"

tools:
  get-order-data:
    kind: postgres-sql
    source: alloydb-orders
    description: Get the status of an order based on the material description.
    parameters:
      - name: description
        type: string
        description: A description of the material to search for its order status.
    statement: |
      select order_status from material_order_status where lower(material_name) like lower($1)
      LIMIT 1;

Trong phần truy vấn (tham khảo tham số "statement" ở trên), chúng ta chỉ truy xuất giá trị cho trường order_status khi tên tài liệu khớp với văn bản tìm kiếm của người dùng.

Hãy tìm hiểu tools.yaml

Nguồn đại diện cho các nguồn dữ liệu mà một công cụ có thể tương tác. Nguồn (Source) đại diện cho một nguồn dữ liệu mà công cụ có thể tương tác. Bạn có thể xác định Nguồn là một bản đồ trong phần nguồn của tệp tools.yaml. Thông thường, cấu hình nguồn sẽ chứa mọi thông tin cần thiết để kết nối và tương tác với cơ sở dữ liệu.

Công cụ xác định các hành động mà tác nhân có thể thực hiện – chẳng hạn như đọc và ghi vào một nguồn. Công cụ đại diện cho một hành động mà tác nhân của bạn có thể thực hiện, chẳng hạn như chạy một câu lệnh SQL. Bạn có thể xác định Công cụ dưới dạng bản đồ trong phần công cụ của tệp tools.yaml. Thông thường, một công cụ sẽ yêu cầu một nguồn để thực hiện hành động.

Để biết thêm thông tin chi tiết về cách định cấu hình tools.yaml, hãy tham khảo tài liệu này.

Hãy chạy Hộp công cụ MCP cho Máy chủ cơ sở dữ liệu

Chạy lệnh sau (từ thư mục mcp-toolbox) để khởi động máy chủ:

./toolbox --tools-file "tools.yaml"

Bây giờ, nếu mở máy chủ ở chế độ xem trước trên web trên đám mây, bạn sẽ thấy máy chủ Toolbox đang hoạt động với công cụ mới có tên get-order-data.

Theo mặc định, Máy chủ Hộp công cụ MCP chạy trên cổng 5000. Hãy sử dụng Cloud Shell để kiểm thử điều này.

Nhấp vào Web Preview (Xem trước trang web) trong Cloud Shell như minh hoạ bên dưới:

f990712162e8e924.png

Nhấp vào Thay đổi cổng và đặt cổng thành 5000 như minh hoạ bên dưới rồi nhấp vào Thay đổi và Xem trước.

d1b9de0c46ecef8a.png

Thao tác này sẽ mang lại kết quả:

2fdcdac326034d41.png

Bộ công cụ MCP cho cơ sở dữ liệu mô tả một SDK Python để bạn xác thực và kiểm thử các công cụ. Bộ công cụ này được ghi lại tại đây. Chúng ta sẽ bỏ qua phần đó và chuyển thẳng đến Bộ phát triển ứng dụng (ADK) trong phần tiếp theo để sử dụng các công cụ này.

Hãy triển khai Hộp công cụ của chúng ta lên Cloud Run

Trước tiên, chúng ta có thể bắt đầu với máy chủ Hộp công cụ MCP và lưu trữ máy chủ đó trên Cloud Run. Sau đó, chúng ta sẽ có một điểm cuối công khai mà chúng ta có thể tích hợp với bất kỳ ứng dụng nào khác và/hoặc các ứng dụng của Agent. Bạn có thể xem hướng dẫn lưu trữ ứng dụng này trên Cloud Run tại đây. Bây giờ, chúng ta sẽ tìm hiểu các bước chính.

  1. Chạy một Cửa sổ dòng lệnh Cloud Shell mới hoặc sử dụng một Cửa sổ dòng lệnh Cloud Shell hiện có. Chuyển đến thư mục dự án chứa tệp nhị phân toolbox và tools.yaml, trong trường hợp này là adk-renovation-agent
  2. Đặt biến PROJECT_ID để trỏ đến Mã dự án Google Cloud của bạn.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. Bật các dịch vụ sau của Google Cloud
gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com
  1. Hãy tạo một tài khoản dịch vụ riêng biệt sẽ đóng vai trò là danh tính cho dịch vụ Hộp công cụ mà chúng ta sẽ triển khai trên Google Cloud Run.
gcloud iam service-accounts create toolbox-identity
  1. Chúng tôi cũng đảm bảo rằng tài khoản dịch vụ này có các vai trò chính xác, tức là có thể truy cập vào Trình quản lý bí mật và giao tiếp với AlloyDB
gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/secretmanager.secretAccessor

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/alloydb.client

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/serviceusage.serviceUsageConsumer
  1. Chúng ta sẽ tải tệp tools.yaml lên dưới dạng một khoá bí mật:
gcloud secrets create tools --data-file=tools.yaml

Nếu bạn đã có một khoá bí mật và muốn cập nhật phiên bản khoá bí mật, hãy thực thi các bước sau:

gcloud secrets versions add tools --data-file=tools.yaml

Đặt biến môi trường thành hình ảnh vùng chứa mà bạn muốn sử dụng cho Cloud Run:

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
  1. Bước cuối cùng trong lệnh triển khai quen thuộc cho Cloud Run:
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated

Thao tác này sẽ bắt đầu quy trình triển khai Máy chủ Hộp công cụ bằng tools.yaml đã định cấu hình của chúng tôi cho Cloud Run. Khi triển khai thành công, bạn sẽ thấy một thông báo tương tự như sau:

Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.                                                                                                                                                                                    
  OK Creating Revision...                                                                                                                                                                                            
  OK Routing traffic...                                                                                                                                                                                              
  OK Setting IAM Policy...                                                                                                                                                                                            
Done.                                                                                                                                                                                                                
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app

Bạn đã sẵn sàng sử dụng công cụ mới triển khai trong ứng dụng đại lý của mình!!!

Hãy kết nối Công cụ hộp công cụ với Nhân viên hỗ trợ của chúng ta!!!

Chúng ta đã tạo nguồn cho hệ thống nhiều tác nhân. Hãy cập nhật phần đó để thêm công cụ Hộp công cụ MCP mới cho Cơ sở dữ liệu mà chúng ta vừa triển khai trong Cloud Run.

  1. Sửa đổi tệp requirements.txt bằng nguồn từ kho lưu trữ:

Chúng tôi sẽ đưa phần phụ thuộc cho Hộp công cụ MCP cho Cơ sở dữ liệu vào requirements.txt

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

  1. Sửa đổi tệp agent.py bằng mã từ kho lưu trữ:

Chúng ta sẽ thêm công cụ gọi điểm cuối của hộp công cụ để tìm nạp dữ liệu đơn đặt hàng cho một tài liệu cụ thể đã đặt hàng.

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

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

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

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

11. 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 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. Check order status for Cement Bags.

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

14. Xin chúc mừng

Xin chúc mừng! Bạn đã tạo thành công một ứng dụng nhiều tác nhân bằng cách sử dụng ADK và Hộp công cụ MCP cho Cơ sở dữ liệu! Để biết thêm thông tin, hãy tham khảo tài liệu sản phẩm: Bộ phát triển tác nhânBộ công cụ MCP cho cơ sở dữ liệu.