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

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 nhiều tác nhân để xử lý việc cải tạo nhà bếp bằng Bộ công cụ MCP cho AlloyDB và ADK.

  1. Nhân viên đề xuất cải tạo
  2. Permits and Compliance Check Agent
  3. Kiểm tra trạng thái đơn đặt hàng (Công cụ sử dụng Bộ công cụ MCP cho cơ sở dữ liệu)

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

2. MCP

MCP là viết tắt của 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. Nền tảng 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 MCP, giao tiếp với các 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ể, một tác nhân AI sẽ gửi 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).

Bộ công cụ MCP dành cho cơ sở dữ liệu

Bộ công cụ MCP dành 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. Nền tảng này được thiết kế với chất lượng sản xuất và cấp doanh nghiệp. Nhờ đó, bạn có thể phát triển các công cụ cho nhà phát triển dễ dàng, nhanh chóng và an toàn hơn bằng cách xử lý các điểm phức tạp như nhóm kết nối, xác thực và nhiều điểm khác.

Cho phép các tác nhân 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 chỉ bằng 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, đồng thời triển khai các phiên bản mới của công cụ 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à nhiều phương pháp khác.

Tăng cường bảo mật: Cơ chế 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 ghi nhận từ đầu đến cuối: Các chỉ số và hoạt động theo dõi có sẵn với sự hỗ trợ tích hợp cho OpenTelemetry.

Phải lưu ý rằng việc này đã diễn ra trước khi có MCP!!!

MCP Toolbox for Databases nằm giữa khung điều phối của ứng dụng dựa trên tác nhân và cơ sở dữ liệu của bạn, cung cấp một lớp điều khiển được dùng để sửa đổi, phân phối hoặc gọi các công cụ. Nền tảng 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 thiết phải triển khai lại ứng dụng của mình.

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 trên Google Cloud đã bật tính năng thanh toán.

3. 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. 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)

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 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 (bắt đầu bằng tệp trống):
renovation-agent/
        __init__.py
        agent.py
        .env

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/renovation-agent-adk-mcp-toolbox/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 sử dụng 1 công cụ để gọi công cụ hộp công cụ.

  1. Chuyển đến requirements.txt và cập nhật tệp này bằng nội dung từ những tệp sau:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

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"
  • 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ư 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

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

  1. Để chuẩn bị thiết lập Toolbox, hãy bật kết nối IP công khai trong phiên bản 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 Bật IP công khai rồi nhập địa chỉ IP của máy Cloud Shell.
  3. Để lấy 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ạ là "/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ạ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 CREATE CLUSTER (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

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, khi tập dữ liệu đã sẵn sàng, hãy thiết lập MCP Toolbox for Databases để hoạt động như lớp đ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. Thiết lập Bộ công cụ MCP cho cơ sở dữ liệu

Toolbox nằm giữa khung điều phối của ứng dụng và cơ sở dữ liệu của bạn, cung cấp một mặt phẳng điều khiển được dùng để sửa đổi, phân phối hoặc gọi các công cụ. Điều 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 nhất thiết phải 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 đã cung cấ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à xuất hiện trong lời nhắc của thiết bị đầu cuối. Chạy lệnh bên dưới qua Cloud Shell Terminal để 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 Cloud Shell Editor (đối với chế độ chỉnh sửa mã) rồi thêm một tệp có tên là "tools.yaml" vào thư mục gốc của dự án
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 câu lệnh "statement" ở trên), chúng ta chỉ truy xuất giá trị cho trường trạng thái đơn đặt hàng khi tên vật 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 về tools.yaml

Nguồn đại diện cho các nguồn dữ liệu khác nhau mà một công cụ có thể tương tác. Nguồn đạ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 dưới dạng 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 những hành động mà một 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 một bản đồ trong phần công cụ của tệp tools.yaml. Thông thường, một công cụ sẽ cần một nguồn để hoạt độ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 Máy chủ Bộ công cụ MCP cho 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"

Giờ đây, 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ủ MCP Toolbox chạy trên cổng 5000. Hãy dùng Cloud Shell để kiểm thử.

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

f990712162e8e924.png

Nhấp vào Change port (Thay đổi cổng) rồi đặt cổng thành 5000 như minh hoạ bên dưới, sau đó nhấp vào Change and Preview (Thay đổi và xem trước).

d1b9de0c46ecef8a.png

Thao tác này sẽ cho ra kết quả sau:

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à thử nghiệm các công cụ, được ghi lại tại đây. Chúng ta sẽ bỏ qua phần đó và chuyển thẳng đến Bộ công cụ phát triển tác nhân (ADK) trong phần tiếp theo để sử dụng những 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ủ MCP Toolbox và lưu trữ máy chủ này trên Cloud Run. Sau đó, việc này sẽ cung cấp cho chúng ta 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ả ứng dụng Agent. Hướng dẫn về cách lưu trữ ứng dụng này trên Cloud Run có tại đây. Bây giờ, chúng ta sẽ xem xét các bước chính.

  1. Khởi chạy một Cửa sổ dòng lệnh Cloud Shell mới hoặc sử dụng Cửa sổ dòng lệnh Cloud Shell hiện có. Chuyển đến thư mục dự án có tệp nhị phân hộp công cụ 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ụ Google Cloud này
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 đó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ó đúng vai trò, tức là có khả năng truy cập vào Secret Manager và tương tác 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 mã 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 lệnh sau:

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

Đặt một biến môi trường cho hình ảnh vùng chứa mà bạn muốn 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 đối với 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 lên 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 dựa trên tác nhân của mình!!!

Hãy kết nối Công cụ hộp công cụ với Tác nhân của chúng ta!!!

Chúng ta đã tạo nguồn cho ứng dụng đại lý của mình. Hãy cập nhật thông tin đó để thêm một công cụ mới là Bộ công cụ MCP dành cho cơ sở dữ liệu mà chúng ta vừa triển khai trong Cloud Run.

  1. Quan sát tệp requirements.txt có nguồn từ kho lưu trữ:

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

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

  1. Quan sát tệp agent.py bằng mã trong kho lưu trữ:

Chúng tôi đang 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 vật 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 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.

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

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

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

12. Kết quả

3e74f6f757e2db2c.png

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

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 ADK và Bộ 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 về sản phẩm: Bộ công cụ phát triển tác nhânBộ công cụ MCP cho cơ sở dữ liệu.