Triển khai một tác nhân có nhận thức về hoạt động quản trị doanh nghiệp bằng MCP và Cloud Run

1. Giới thiệu

Lớp học lập trình này nằm trong loạt nội dung gồm 2 phần, khám phá cách tạo một Đặc vụ AI tạo sinh có nhận thức về hoạt động quản trị.

(Bạn có thể đọc phần đầu tiên của loạt bài này, trong đó trình bày cách thiết lập nền tảng dữ liệu bằng cách áp dụng Các khía cạnh của Dataplex cho các bảng BigQuery và kiểm thử các quy tắc cục bộ thông qua Gemini CLI. 👉 Đọc Phần 1)

Tuy nhiên, việc kiểm thử trong CLI cục bộ chỉ là bước khởi đầu. Để triển khai tính năng này cho toàn bộ công ty, bạn cần có hệ thống bảo mật tập trung, các kết nối công cụ AI được tiêu chuẩn hoá và một khung ứng dụng phù hợp để điều phối logic của tác nhân và cung cấp giao diện trò chuyện quen thuộc.

Trong phần thứ hai này, bạn sẽ giải quyết những thách thức này và mở rộng quy mô để sản xuất. Bạn sẽ triển khai các quy tắc quản trị vào một máy chủ MCP trung tâm được lưu trữ trên Cloud Run. Sau đó, bạn sẽ sử dụng Bộ phát triển tác nhân (ADK) của Google để tạo ứng dụng tác nhân thực tế và kết nối ứng dụng đó với các công cụ MCP của bạn, cùng với giao diện người dùng web chuyên nghiệp.

be15d5f41f0d716c.png

Điều kiện tiên quyết

  • Một dự án trên Google Cloud đã bật tính năng thanh toán.
  • Có kiến thức cơ bản về Cloud Run, tài khoản dịch vụ IAM và Python.
  • Tập dữ liệu BigQuery và Khía cạnh Dataplex được tạo trong Phần 1. (Đừng lo lắng nếu bạn đã xoá các tệp này; chúng tôi cung cấp một tập lệnh nhanh ở bên dưới để tạo lại các tệp đó!)

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

  • Cách sử dụng Giao thức ngữ cảnh mô hình (MCP) để chuẩn hoá cách các tác nhân AI tương tác với dữ liệu trên Google Cloud.
  • Cách triển khai một máy chủ MCP bảo mật lên Cloud Run.
  • Cách tạo một tác nhân AI bằng Agent Development Kit (ADK) và kết nối tác nhân đó với phần phụ trợ MCP.
  • Cách chạy giao diện người dùng dành cho nhà phát triển tích hợp của ADK để tương tác với nhân viên hỗ trợ được kiểm soát.

Bạn cần có

  • Quyền truy cập vào Google Cloud Shell

Các khái niệm chính

  • Giao thức ngữ cảnh mô hình (MCP): Hãy coi MCP như một "cáp USB-C đa năng" cho các tác nhân AI. Thay vì viết mã tích hợp API tuỳ chỉnh cho từng mô hình AI, MCP cung cấp một cách tiêu chuẩn để AI kết nối an toàn với các công cụ dữ liệu doanh nghiệp của bạn (chẳng hạn như Dataplex và BigQuery).
  • Bộ công cụ phát triển tác nhân (ADK): Một khung linh hoạt, nguồn mở của Google được thiết kế để đơn giản hoá quy trình phát triển tác nhân AI từ đầu đến cuối. LangChain áp dụng các nguyên tắc kỹ thuật phần mềm cho việc tạo tác nhân, cho phép bạn điều phối các công cụ phức tạp, quản lý trạng thái và dễ dàng khởi chạy giao diện người dùng dành cho nhà phát triển tích hợp để kiểm thử và triển khai.

2. Thiết lập và yêu cầu

Khởi động Cloud Shell

Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.

Trên Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Kích hoạt Cloud Shell

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Ảnh chụp màn hình cửa sổ dòng lệnh Google Cloud Shell cho thấy môi trường đã kết nối

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện mọi thao tác trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt bất cứ thứ gì.

Khởi chạy môi trường

Mở Cloud Shell và đặt các biến dự án để đảm bảo tất cả các lệnh đều nhắm đến cơ sở hạ tầng phù hợp.

export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export REGION="us-central1"

Điểm dừng: Tiếp tục hay xây dựng lại?

Vì đây là Phần 2, nên nhân viên hỗ trợ của bạn cần dữ liệu được quản lý từ Phần 1 để hoạt động. Vui lòng chọn lộ trình của bạn:

Trường hợp A: Tôi vừa hoàn thành Phần 1 và các tài nguyên của tôi vẫn đang chạy.

Tuyệt vời! Chuyển đến thư mục đang hoạt động và bạn đã sẵn sàng tiếp tục.

cd ~/devrel-demos/data-analytics/governance-context

Cách B: Tôi đã bỏ qua Phần 1 HOẶC tôi đã xoá tài nguyên của mình (Dọn dẹp).

Không sao cả! Chúng tôi đã cung cấp một khối lệnh "Fast-Track" (Tăng tốc) bên dưới. Thao tác này sẽ tự động tạo lại hồ dữ liệu BigQuery và áp dụng siêu dữ liệu quản trị Dataplex giống hệt như chúng ta đã làm trong Phần 1.

# 1. Clone the repo and navigate to the working directory
git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
cd devrel-demos
git sparse-checkout set data-analytics/governance-context
cd data-analytics/governance-context

# 2. Rebuild the messy data lake with Terraform
cd terraform
terraform init
terraform apply -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve

# 3. Generate and apply Dataplex Aspects (Governance rules)
cd ..
chmod +x ./generate_payloads.sh ./apply_governance.sh
./generate_payloads.sh
./apply_governance.sh

3. Mở rộng quy mô bằng MCP: Xây dựng lớp kiểm soát dữ liệu

Cho đến nay, bạn đã thử nghiệm thành công logic quản trị bằng Gemini CLI. Đây là một lựa chọn tuyệt vời để tạo mẫu nhanh, nhưng nó chạy cục bộ bằng thông tin đăng nhập người dùng cá nhân của bạn.

Trong môi trường doanh nghiệp thực tế, bạn cần có một lớp kiểm soát dữ liệu tập trung. Để xây dựng ứng dụng này, chúng ta sẽ sử dụng GenAI Toolbox for Databases (Bộ công cụ AI tạo sinh cho cơ sở dữ liệu), một dự án nguồn mở chính thức của Google. Bộ công cụ này cung cấp một máy chủ MCP được tạo sẵn, được thiết kế riêng để kết nối các tác nhân AI một cách an toàn với cơ sở dữ liệu và dịch vụ siêu dữ liệu của Google Cloud, chẳng hạn như Dataplex.

Bằng cách triển khai bộ công cụ này dưới dạng Máy chủ MCP trên Cloud Run, chúng tôi đạt được:

  1. Danh tính tập trung: Tác nhân chạy dưới dạng Tài khoản dịch vụ bị hạn chế, chứ không phải tài khoản người dùng cá nhân của bạn.
  2. Tiêu chuẩn hoá: Mọi ứng dụng (ADK, Gemini, ứng dụng tuỳ chỉnh) đều có thể "cắm" vào máy chủ này bằng giao thức MCP tiêu chuẩn.
  3. Phạm vi được kiểm soát (đặc quyền tối thiểu): Chúng tôi không cấp cho LLM quyền truy cập không giới hạn vào BigQuery. Chúng tôi buộc nó phải điều hướng qua danh mục siêu dữ liệu Dataplex trước.

Định cấu hình định nghĩa công cụ (tools.yaml)

GenAI Toolbox yêu cầu một tệp cấu hình khai báo, tools.yaml. Tệp này xác định sources (nơi kết nối) và tools (những việc mà AI được phép làm).

  1. Chuyển đến thư mục máy chủ và chèn Mã dự án vào tệp cấu hình:
cd ~/devrel-demos/data-analytics/governance-context/mcp_server
envsubst < tools.yaml > tools.tmp && mv tools.tmp tools.yaml
cat tools.yaml

Đoạn mã này phải giống hệt đoạn mã sau. Xác minh rằng trường dự án hiện khớp với Mã dự án thực tế trên Google Cloud.

sources:
  dataplex:
    kind: dataplex
    project: YOUR-PROJECT-ID

tools:
  search_entries:
    kind: dataplex-search-entries
    source: dataplex
    description: Search for entries in Dataplex Catalog.

  lookup_entry:
    kind: dataplex-lookup-entry
    source: dataplex
    description: Retrieve a specific entry from Dataplex Catalog.

  search_aspect_types:
    kind: dataplex-search-aspect-types
    source: dataplex
    description: Find aspect types relevant to a query.

toolsets:
  dataplex-toolset:
    - search_entries
    - lookup_entry
    - search_aspect_types

Bằng cách xác định 3 công cụ này, chúng ta có thể buộc AI ở chế độ "chỉ đọc" và "ưu tiên quản trị".

Bảo mật cấu hình (Secret Manager)

Trong cấu trúc doanh nghiệp, bạn không bao giờ được đưa trực tiếp các tệp cấu hình vào hình ảnh vùng chứa. Chúng tôi sẽ lưu trữ tools.yaml một cách an toàn trong Trình quản lý bí mật của Google Cloud.

gcloud services enable secretmanager.googleapis.com
gcloud secrets create dataplex-tools-config --data-file=tools.yaml

Triển khai đặc quyền tối thiểu (IAM)

Tiếp theo, chúng ta sẽ tạo một Tài khoản dịch vụ chuyên dụng cho máy chủ MCP của Hộp công cụ AI tạo sinh. Danh tính này sẽ chỉ có các quyền chính xác cần thiết để đọc danh mục Dataplex và truy cập vào dữ liệu BigQuery.

export MCP_SA=mcp-sa
gcloud iam service-accounts create ${MCP_SA} \
    --display-name="Service Account for Dataplex MCP"
export MCP_SERVICE_ACCOUNT="${MCP_SA}@${PROJECT_ID}.iam.gserviceaccount.com"

# Allow the server to read its own config from Secret Manager
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
  --role="roles/secretmanager.secretAccessor"

# Allow the server to read Dataplex Metadata and BigQuery Data
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
  --role="roles/dataplex.catalogViewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
  --role="roles/bigquery.dataViewer"

Triển khai máy chủ MCP lên Cloud Run

Giờ đây, chúng ta sẽ triển khai Hộp công cụ AI tạo sinh. Chúng tôi sử dụng hình ảnh vùng chứa được tạo sẵn của Google (database-toolbox/toolbox) và gắn cấu hình của chúng tôi từ Secret Manager (--set-secrets) trong thời gian chạy.

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest

gcloud run deploy governance-mcp \
    --image=$IMAGE \
    --service-account $MCP_SERVICE_ACCOUNT \
    --region=$REGION \
    --no-allow-unauthenticated \
    --set-secrets="/app/tools.yaml=dataplex-tools-config:latest" \
    --args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080"

Giờ thì bạn đã thiết lập được một API được quản lý! Thay vì cấp quyền truy cập trực tiếp vào cơ sở dữ liệu cho giao diện người dùng GenAI, giao diện này sẽ kết nối với URL Cloud Run này. Trợ lý ảo chỉ có thể xem những thông tin mà Hộp công cụ này cho phép.

4. Tạo phần phụ trợ của tác nhân bằng ADK

Bạn đã thiết lập một MCP (Mặt phẳng kiểm soát dữ liệu) an toàn, được quản lý chạy trên Cloud Run. Giờ đây, nhân viên hỗ trợ AI của bạn cần một khung để điều phối logic của nó, chẳng hạn như xử lý thông tin đầu vào của người dùng, quyết định thời điểm gọi máy chủ MCP và định dạng đầu ra.

Thay vì viết tất cả mã khởi tạo này từ đầu, chúng ta sẽ sử dụng Agent Development Kit (ADK) của Google. ADK là một khung hình đầu tiên về mã, tự động bao bọc logic của tác nhân vào một phần phụ trợ FastAPI. Ngoài ra, công cụ này còn có giao diện người dùng dành cho nhà phát triển tích hợp, cho phép bạn hình dung ngay lập tức quy trình suy luận và các lệnh gọi công cụ của tác nhân mà không cần tạo giao diện người dùng tuỳ chỉnh trước.

Kiểm tra logic của tác nhân (agent.py)

Trước khi định cấu hình cơ sở hạ tầng, hãy xem xét cốt lõi của ứng dụng này.

Chuyển đến thư mục và xuất nội dung của agent.py. Tệp này là "bộ não" của việc triển khai ADK.

cd ~/devrel-demos/data-analytics/governance-context/mcp_server
cat agent.py

Xem cấu trúc mã. Thao tác này thực hiện 3 chức năng quan trọng với văn bản mẫu tối thiểu:

  1. Tích hợp MCPToolset: Thay vì viết các ứng dụng HTTP tuỳ chỉnh để tương tác với các công cụ Dataplex, ADK sẽ sử dụng MCPToolset(server_url=mcp_url). Thao tác này sẽ tìm nạp động định nghĩa tools.yaml từ máy chủ MCP đã triển khai của bạn và dịch chúng thành các lệnh gọi hàm gốc cho LLM.
  2. Hướng dẫn hệ thống: Tham số instructions chứa các quy tắc quản trị nghiêm ngặt (cùng logic mà chúng tôi đã sử dụng trong CLI GEMINI.md). Tham số này yêu cầu mô hình thực hiện rõ ràng vòng lặp suy luận từ Giai đoạn 1 (Tra cứu siêu dữ liệu) đến Giai đoạn 2 (Truy vấn dữ liệu).
  3. Điều phối tác nhân: Lớp Agent(...) liên kết mô hình Gemini, câu lệnh hệ thống và các công cụ MCP với nhau. Khi được triển khai, ADK sẽ tự động chuyển đổi đối tượng này thành một điểm cuối FastAPI có thể mở rộng.

Phân chia trách nhiệm: Định cấu hình danh tính giao diện người dùng

Để chạy mã này một cách an toàn, chúng ta phải cho tác nhân biết vị trí của máy chủ MCP. Chúng ta sẽ tạo URL một cách linh động và lưu URL đó vào một tệp .env mà ADK sẽ đọc trong thời gian chạy.

Chúng ta cũng sẽ tạo một danh tính riêng biệt (dataplex-agent-sa) cho ứng dụng dành cho người dùng này. Việc phân tách các nhiệm vụ này đảm bảo rằng tác nhân giao diện người dùng có các quyền khác với máy chủ quản trị phụ trợ.

Chạy các lệnh sau để định cấu hình môi trường và danh tính:

export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export MCP_SERVER_URL=https://governance-mcp-${PROJECT_NUMBER}.${REGION}.run.app/mcp

export AGENT_SA=dataplex-agent-sa
export AGENT_SERVICE_ACCOUNT="${AGENT_SA}@${PROJECT_ID}.iam.gserviceaccount.com"

gcloud iam service-accounts create ${AGENT_SA} \
    --display-name="Service Account for Dataplex Agent "

Định cấu hình các biến thời gian chạy

Khung ADK dựa vào các biến môi trường để hiểu rõ bối cảnh của nó. Chúng ta cần đặt rõ ràng Mã dự án, Khu vực và bật chế độ sử dụng Vertex AI. Chúng tôi sẽ thêm các tệp này vào cùng một tệp .env.

echo MCP_SERVER_URL=$MCP_SERVER_URL > .env
echo GOOGLE_GENAI_USE_VERTEXAI=1 >> .env
echo GOOGLE_CLOUD_PROJECT=$PROJECT_ID >> .env
echo GOOGLE_CLOUD_LOCATION=$REGION >> .env

Cấp quyền

Mặc dù tác nhân uỷ quyền kiểm tra hoạt động quản trị cho máy chủ MCP, nhưng tác nhân vẫn cần có các quyền cơ bản để hoạt động. Chúng tôi chỉ cấp đúng 2 vai trò:

  1. Người dùng Vertex AI: Để gọi mô hình Gemini nhằm tạo câu trả lời bằng ngôn ngữ tự nhiên.
  2. Cloud Run Invoker: Để gọi API Máy chủ MCP một cách an toàn. Công cụ này không có quyền truy cập trực tiếp vào BigQuery hoặc Dataplex!
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
  --role="roles/aiplatform.user"

gcloud run services add-iam-policy-binding governance-mcp \
  --region=$REGION \
  --member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
  --role="roles/run.invoker"

Triển khai lên Cloud Run

Cuối cùng, chúng ta sẽ triển khai toàn bộ ngăn xếp lên Cloud Run.

Chúng tôi sử dụng uvx để chạy công cụ ADK mà không cần cài đặt các phần phụ thuộc theo cách thủ công. Lệnh bên dưới sẽ đóng gói logic agent.py, tạo một hình ảnh vùng chứa, chèn Tài khoản dịch vụ và khởi chạy một máy chủ FastAPI. Bằng cách thêm cờ --with_ui, thao tác này cũng sẽ kết hợp ADK Web Playground để gỡ lỗi.

Lệnh này sẽ tạo và triển khai vùng chứa. Quá trình này có thể mất từ 1 đến 3 phút.

uvx --from google-adk \
adk deploy cloud_run \
  --project=$PROJECT_ID \
  --region=$REGION \
  --service_name=dataplex-agent \
  --with_ui \
  . \
  -- \
  --service-account=$AGENT_SERVICE_ACCOUNT \
  --allow-unauthenticated

Sau khi hoàn tất lệnh này, lệnh sẽ xuất ra một URL dịch vụ (e.g., https://dataplex-agent-xyz.run.app). Nhấp vào đường liên kết đó để mở Giao diện trò chuyện bằng AI tạo sinh được quản lý hoàn toàn.

12a5fa4c2aaf381f.png

Quy trình kiến trúc toàn diện

Bạn đã hoàn tất việc thiết lập hệ thống. Khi người dùng tương tác với giao diện người dùng ADK, trình tự sau sẽ diễn ra:

  1. Người dùng gửi một câu lệnh trong ADK Agent (Giao diện người dùng dành cho nhà phát triển).
  2. Tác nhân ADK (agent.py) xử lý dữ liệu đầu vào và gọi mô hình Gemini.
  3. Gemini xác định rằng cần có ngữ cảnh và yêu cầu Máy chủ MCP thực thi các công cụ Dataplex.
  4. Máy chủ MCP thực thi các quy tắc Quản trị Dataplex và trả về siêu dữ liệu.
  5. Gemini tổng hợp câu trả lời đáng tin cậy dựa trên siêu dữ liệu và trả về cho người dùng.

5. Kiểm thử Enterprise Agent

Giờ đây, khi tác nhân của bạn đang hoạt động, hãy xem lại các tình huống quản trị đã được kiểm thử trước đó bằng CLI. Logic vẫn giữ nguyên, nhưng giờ đây bạn đang tương tác với ADK Web Playground đã triển khai, giúp trực quan hoá trạng thái nội bộ và quá trình thực thi công cụ.

  1. Điều phối: ADK Agent (chạy trên Cloud Run) nhận văn bản của bạn.
  2. Định tuyến công cụ: Gemini nhận ra rằng câu hỏi của bạn cần có bối cảnh dữ liệu và chuyển yêu cầu đến Máy chủ MCP.
  3. Kiểm tra hoạt động quản trị: MCP Server (chạy trên một phiên bản Cloud Run riêng biệt) truy vấn Dataplex cho các Loại khía cạnh cụ thể.
  4. Tổng hợp: Siêu dữ liệu liên quan được trả về cho Gemini để tạo câu trả lời cuối cùng.

Xác minh logic quản trị

Mở URL dịch vụ mà bạn đã tạo ở bước trước (e.g., https://dataplex-agent-xyz.run.app) trong trình duyệt. Dán câu lệnh sau:

"My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?"

Quan sát quy trình suy luận của Agent trong giao diện người dùng dành cho nhà phát triển:

  1. Nhận dạng ý định: Tác nhân phân tích "ngay bây giờ" và "không thể chờ qua đêm".
  2. Metadata Lookup (Tra cứu siêu dữ liệu): Thao tác này gọi công cụ MCP search_aspect_types. Công cụ này tìm kiếm những tài sản dữ liệu có update_frequency Khía cạnh được đặt thành THEO THỜI GIAN THỰC hoặc PHÁT TRỰC TIẾP, thay vì HẰNG NGÀY hoặc HẰNG THÁNG.
  3. Lựa chọn: Lựa chọn này xác định rằng bảng mkt_realtime_campaign_performance đáp ứng các tiêu chí này, trong khi fin_monthly_closing_internal (mặc dù có chất lượng cao) lại quá chậm so với yêu cầu của bạn.
  4. Phản hồi: Nhân viên đề xuất bảng theo thời gian thực.

e0da615724199e.png

Lý do điều này quan trọng:

Nếu không có siêu dữ liệu quản trị này, LLM có thể sẽ đề xuất bảng fin_monthly_closing_internal chỉ vì bảng này có một cột tên là "ad_spend", bỏ qua việc dữ liệu đã cũ 24 giờ. Bối cảnh siêu dữ liệu của bạn đã ngăn chặn một lỗi nghiệp vụ.

Bạn cũng có thể thử câu lệnh "Board Meeting" (Cuộc họp hội đồng quản trị) để xem cách trợ lý chuyển sang các bảng khác nhau dựa trên khía cạnh Cấp sản phẩm dữ liệu:

"We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?"

6. 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 lớp học lập trình này, hãy làm theo các bước sau để huỷ tất cả cơ sở hạ tầng đã tạo trong Phần 1 và Phần 2.

Huỷ Datalake (Terraform)

Sử dụng Terraform để xoá các bảng, tập dữ liệu BigQuery và định nghĩa Khía cạnh Dataplex.

cd ~/devrel-demos/data-analytics/governance-context/terraform
terraform destroy -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve

Xoá các dịch vụ Cloud Run

Xoá tài nguyên điện toán để dừng mọi hoạt động thanh toán đang diễn ra cho các vùng chứa đang chạy.

gcloud run services delete governance-mcp --region=$REGION --quiet
gcloud run services delete dataplex-agent --region=$REGION --quiet

Dọn dẹp các cấu phần phần mềm và bộ nhớ dàn dựng

Khi bạn triển khai tác nhân ADK bằng uvx, hệ thống sẽ tự động tạo một hình ảnh vùng chứa và tải mã nguồn của bạn lên một bộ chứa Cloud Storage tạm thời. Các cấu phần phần mềm này vẫn tồn tại ngay cả sau khi dịch vụ Cloud Run bị xoá và sẽ phát sinh chi phí lưu trữ liên tục.

Xoá kho lưu trữ Artifact Registry và bộ chứa dàn dựng Cloud Storage:

# Delete the repository used for the agent build
gcloud artifacts repositories delete cloud-run-source-deploy \
    --location=$REGION \
    --quiet

# Delete the staging bucket created by Cloud Run source deploy
gcloud storage rm --recursive gs://run-sources-${PROJECT_ID}-${REGION}

Xoá danh tính, quyền và khoá bí mật

Trước tiên, hãy xoá các liên kết chính sách IAM để ngăn các mục "tombstone" (bản ghi bị bỏ rơi) vẫn còn trong trang IAM của dự án. Sau đó, hãy xoá Tài khoản dịch vụ và các khoá bí mật cấu hình.

# Remove IAM roles granted to the MCP Service Account
gcloud projects remove-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
  --role="roles/secretmanager.secretAccessor" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
  --role="roles/dataplex.catalogViewer" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
  --role="roles/bigquery.dataViewer" --quiet

# Remove IAM roles granted to the Agent Service Account
gcloud projects remove-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
  --role="roles/aiplatform.user" --quiet

# Delete the Service Accounts
gcloud iam service-accounts delete $MCP_SERVICE_ACCOUNT --quiet
gcloud iam service-accounts delete $AGENT_SERVICE_ACCOUNT --quiet

# Delete the Secret Manager entry
gcloud secrets delete dataplex-tools-config --quiet

Xoá cấu hình cục bộ

Cuối cùng, hãy dọn dẹp các tệp cấu hình cục bộ và biến môi trường trong Cloud Shell.

# Uninstall the Gemini CLI extension (installed in Part 1)
gemini extensions uninstall dataplex

# Remove local repository files and unset variables
cd ~
rm -rf ~/devrel-demos
unset MCP_SERVER_URL
unset MCP_SERVICE_ACCOUNT
unset AGENT_SERVICE_ACCOUNT

7. Xin chúc mừng!

Bạn đã triển khai thành công một tác nhân AI tạo sinh toàn diện, có nhận thức về hoạt động quản trị.

Trong lớp học lập trình gồm 2 phần này, bạn đã vượt ra ngoài kỹ thuật tạo câu lệnh đơn giản để triển khai một cấu trúc mạnh mẽ, sẵn sàng cho sản xuất. Bằng cách coi hoạt động quản trị dữ liệu là điều kiện tiên quyết cho AI tạo sinh, bạn đã thiết lập một phương pháp có hệ thống để ngăn mô hình truy xuất dữ liệu không được chứng nhận hoặc dữ liệu ảo.

Những điểm chính cần ghi nhớ

  • AI xác định thông qua siêu dữ liệu: Thay vì dựa vào LLM để đoán bảng chính xác dựa trên tên cột, bạn đã thực thi một vòng lặp suy luận nghiêm ngặt bằng cách sử dụng Hộp công cụ GenAI cho cơ sở dữ liệu. Bằng cách chỉ hiển thị rõ ràng 3 công cụ Dataplex (search_aspect_types, search_entries, lookup_entry), bạn đã buộc mô hình phải xác minh chứng nhận dữ liệu trước khi tổng hợp câu trả lời.
  • Kiến trúc tách rời (MCP): Bằng cách triển khai máy chủ Giao thức ngữ cảnh mô hình (MCP) trên Cloud Run, bạn đã trừu tượng hoá các quy tắc quản trị dữ liệu của mình thành một API tập trung, tiêu chuẩn hoá. Tác nhân giao diện người dùng không cần chứa logic cơ sở dữ liệu; tác nhân này chỉ cần giao tiếp thông qua tiêu chuẩn MCP. Điều này có nghĩa là bạn có thể kết nối mọi mô hình hoặc ứng dụng AI trong tương lai vào cùng một phần phụ trợ được quản lý.
  • Tách biệt nhiệm vụ: Bạn đã áp dụng nguyên tắc đặc quyền tối thiểu bằng cách tách biệt các danh tính IAM. Tác nhân ADK mà người dùng nhìn thấy hoạt động với các quyền bị hạn chế đối với lệnh gọi mô hình và định tuyến API, trong khi máy chủ MCP phụ trợ xử lý một cách an toàn các truy vấn danh mục Dataplex và việc truy xuất dữ liệu BigQuery.
  • Điều phối tác nhân ưu tiên mã nguồn: Bạn đã sử dụng Bộ công cụ phát triển tác nhân (ADK) của Google để ngay lập tức bao bọc logic tác nhân Python của mình vào một phần phụ trợ FastAPI có khả năng mở rộng, sử dụng giao diện người dùng tích hợp sẵn dành cho nhà phát triển để trực quan hoá và gỡ lỗi các hoạt động thực thi công cụ nội bộ của tác nhân.

Bước tiếp theo