Xây dựng các tác nhân AI bằng ADK: Nền tảng

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

Chào mừng bạn đến với phần đầu tiên của loạt video "Tạo các tác nhân AI bằng ADK"! Trong chuỗi lớp học lập trình thực hành này, bạn sẽ bắt đầu hành trình thú vị để tạo ra tác nhân AI thông minh của riêng mình bằng Bộ công cụ phát triển tác nhân (ADK) của Google.

Chúng ta sẽ bắt đầu với những điều cơ bản nhất, hướng dẫn bạn thiết lập môi trường phát triển và tạo một tác nhân đàm thoại cơ bản. Khi kết thúc lớp học lập trình này, bạn sẽ tạo được AI tương tác đầu tiên, sẵn sàng được mở rộng trong các phần tiếp theo của loạt bài này khi chúng ta chuyển đổi AI đó thành một Hệ thống đa tác nhân (MAS) tinh vi.

Bạn có thể hoàn tất lớp học lập trình này trong môi trường cục bộ hoặc trên Google Cloud. Để có trải nghiệm nhất quán nhất, bạn nên sử dụng Cloud Shell trong môi trường Google Cloud. Cloud Shell cũng cung cấp 5 GB bộ nhớ liên tục trong thư mục $HOME. Điều này hữu ích cho việc lưu trữ tập lệnh, tệp cấu hình hoặc kho lưu trữ được sao chép.

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

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

  • Cách thiết lập môi trường Python
  • Cách tạo một Trợ lý cá nhân đơn giản bằng ADK
  • Cách chạy, kiểm thử và gỡ lỗi tác nhân

Bạn cần có

  • Máy tính hoạt động và Wi-Fi đáng tin cậy
  • Một trình duyệt, chẳng hạn như Chrome, để truy cập vào Google Cloud Console
  • Một Dự án trên Google Cloud đã bật tính năng thanh toán
  • Có trí tò mò và ham học hỏi

2. Giới thiệu

Thế giới AI tạo sinh (GenAI) đang phát triển nhanh chóng và các AI Agent hiện là một chủ đề nóng. Tác nhân AI là một chương trình máy tính thông minh được thiết kế để hành động thay cho bạn, giống như một trợ lý cá nhân. AI có thể nhận biết môi trường kỹ thuật số của chính nó, đưa ra quyết định và hành động để đạt được các mục tiêu cụ thể mà không cần sự kiểm soát trực tiếp của con người. Hãy coi đây là một thực thể chủ động, tự chủ, có thể học hỏi và thích ứng để hoàn thành công việc.

Về cơ bản, một tác nhân AI sử dụng mô hình ngôn ngữ lớn (LLM) làm "bộ não" để hiểu và suy luận. Nhờ đó, mô hình này có thể xử lý thông tin từ nhiều nguồn, chẳng hạn như văn bản, hình ảnh và âm thanh. Sau đó, tác nhân sẽ sử dụng thông tin này để lập kế hoạch và thực hiện một loạt nhiệm vụ nhằm đạt được mục tiêu đã xác định trước.

Giờ đây, bạn có thể dễ dàng tạo các tác nhân AI của riêng mình, ngay cả khi không có chuyên môn sâu, nhờ các khung sẵn sàng sử dụng như Bộ công cụ phát triển tác nhân (ADK). Chúng ta sẽ bắt đầu hành trình này bằng cách xây dựng một trợ lý ảo cá nhân để giúp bạn thực hiện các nhiệm vụ. Bắt đầu nào!

3. Định cấu hình các dịch vụ của Google Cloud

Sử dụng tài khoản thanh toán dùng thử

Để sử dụng các dịch vụ của Google Cloud, bạn cần có một tài khoản thanh toán đang hoạt động. Nếu chưa có tài khoản thanh toán, chúng tôi đã cung cấp cho bạn một tài khoản thanh toán dùng thử để bạn có thể hoàn thành lớp học lập trình này.

Sau đây là các bước để sử dụng tài khoản thanh toán:

  1. Truy cập vào cổng nhận phần thưởng này
  2. Đăng nhập bằng tài khoản Gmail cá nhân
  3. Làm theo hướng dẫn từng bước

Nếu có thể đổi tài khoản thanh toán và thiết lập dự án thành công, bạn có thể chuyển đến phần Định cấu hình Cloud Shell.

Nếu đã dùng hết Tài khoản thanh toán dùng thử được cung cấp, bạn cần thiết lập một tài khoản thanh toán mới. Bạn có thể làm theo hướng dẫn sau để hoàn tất việc này:

Chọn hoặc tạo một dự án trên Google Cloud

  • Chuyển đến Google Cloud Console.
  • Ở trên cùng, hãy nhấp vào trình đơn thả xuống bộ chọn dự án (bên cạnh biểu trưng Google Cloud)
  • Chọn một dự án hiện có hoặc tạo một dự án mới.

Bật tính năng thanh toán cho dự án của bạn

Định cấu hình Cloud Shell

Bây giờ, hãy đảm bảo rằng bạn đã thiết lập chính xác trong Cloud Shell, một giao diện dòng lệnh tiện dụng ngay trong Google Cloud Console.

Khởi chạy Cloud Shell

Ở góc trên bên phải của Google Cloud Console, bạn sẽ thấy một biểu tượng trông giống như một thiết bị đầu cuối (>_). Hãy nhấp vào biểu tượng này để kích hoạt Cloud Shell.

8e234ad9973e49d4.png

Uỷ quyền truy cập

Nếu được nhắc, hãy nhấp vào Uỷ quyền để cấp cho Cloud Shell các quyền cần thiết để tương tác với dự án của bạn trên Google Cloud.

d5e271ec814f5769.png

Xác minh tài khoản của bạn:

Sau khi Cloud Shell tải xong, hãy xác nhận rằng bạn đang sử dụng đúng tài khoản Google Cloud. Chạy lệnh sau:

gcloud auth list

Bạn sẽ thấy kết quả tương tự của lệnh trong thiết bị đầu cuối:

Credentialed Accounts

ACTIVE: *
ACCOUNT: current_account@example.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

Chuyển đổi tài khoản (nếu cần):

Nếu tài khoản đang hoạt động không chính xác, hãy chuyển sang tài khoản chính xác bằng lệnh này sau khi thay thế your_username@example.com bằng email thực tế của bạn:

gcloud config set account your_username@example.com

Xác nhận dự án của bạn

Tiếp theo, hãy xác minh rằng Cloud Shell được định cấu hình để sử dụng đúng Dự án trên Google Cloud. Chạy:

gcloud config list project

Bạn sẽ thấy một danh sách cấu hình. Tìm phần [core] và đảm bảo giá trị project khớp với mã nhận dạng của Dự án Google Cloud mà bạn muốn sử dụng cho Lớp học lập trình này:

[core]
project = <current-project-id>

Thiết lập dự án (nếu cần)

Nếu giá trị project ID không chính xác, hãy đặt giá trị này thành dự án mà bạn muốn bằng cách dùng lệnh sau:

gcloud config set project <your-desired-project-id>

Bật các API bắt buộc

Để sử dụng các dịch vụ của Google Cloud, trước tiên, bạn phải kích hoạt các API tương ứng cho dự án của mình. Khi chạy các lệnh bên dưới trong cửa sổ dòng lệnh Cloud Shell, bạn sẽ bật được tất cả các dịch vụ cần thiết cho Lớp học lập trình này:

gcloud services enable aiplatform.googleapis.com

Nếu thao tác thành công, bạn sẽ thấy Operation/... finished successfully được in trong thiết bị đầu cuối.

4. Tạo môi trường ảo Python

Trước khi bắt đầu bất kỳ dự án Python nào, bạn nên tạo một môi trường ảo. Điều này giúp tách biệt các phần phụ thuộc của dự án, ngăn chặn xung đột với các dự án khác hoặc các gói Python toàn cục của hệ thống. Vì Agent Development Kit (ADK) yêu cầu Python 3.9 trở lên, nên chúng ta sẽ sử dụng một công cụ như uv để quản lý cả môi trường ảo và đảm bảo sử dụng đúng phiên bản Python.

uv là một công cụ hiện đại, nhanh chóng và hiệu quả để quản lý các dự án và môi trường Python, kết hợp các chức năng thường thấy trong các công cụ như pip, venv, pip-toolspipx. Được viết bằng Rust để tăng tốc độ.

Cloud Shell đã có sẵn uv nên chúng ta có thể bắt đầu ngay. Thực thi từng lệnh sau đây trong dòng lệnh.

Xác minh xem uv đã được cài đặt đúng cách hay chưa

uv --version

Tạo một thư mục dự án mới cho trợ lý ảo

uv init ai-agents-adk

Chuyển đến thư mục dự án

cd ai-agents-adk

Tạo môi trường ảo bằng Python 3.12

uv venv --python 3.12

Cài đặt thư viện ADK của Google trong môi trường ảo

uv add google-adk

Kiểm tra xem bạn đã cài đặt gói google-adk thành công hay chưa

uv pip list | grep google-adk

Nếu thấy một dòng đầu ra có google-adk và phiên bản của dòng đó, thì bạn có thể chuyển sang bước tiếp theo.

5. Tạo một nhân viên hỗ trợ

Giờ đây, môi trường phát triển của bạn đã được thiết lập và sẵn sàng, đã đến lúc đặt nền tảng cho tác nhân AI của bạn. Bộ công cụ phát triển (ADK) của tác nhân giúp đơn giản hoá quy trình này, chỉ yêu cầu một số tệp thiết yếu để xác định cấu hình và logic cốt lõi của tác nhân.

Ba tệp này phối hợp với nhau để giúp tác nhân của bạn có thể phát hiện, chạy và định cấu hình:

  • agent.py: Đây là cốt lõi của trợ lý ảo. Tệp này chứa mã Python chính xác định hành vi của tác nhân, bao gồm tên, mô hình ngôn ngữ lớn (LLM) mà tác nhân sử dụng làm "bộ não" và các chỉ dẫn cốt lõi hướng dẫn phản hồi của tác nhân.
  • __init__.py: Trong Python, tệp __init__.py đánh dấu một thư mục là gói Python. Đối với ADK, điều này là rất quan trọng vì nó giúp khung hình phát hiện và tải định nghĩa tác nhân của bạn từ agent.py. Trong các dự án ADK đơn giản, tệp này thường chứa một dòng duy nhất để nhập mô-đun agent, giúp trình chạy ADK có thể truy cập vào tác nhân của bạn.
  • .env: Tệp này (viết tắt của "environment" – môi trường) được dùng để lưu trữ thông tin nhạy cảm và các biến cấu hình mà tác nhân của bạn cần, chẳng hạn như khoá API, mã dự án và vị trí địa lý. Lưu giữ những thông tin chi tiết này trong một tệp .env riêng biệt là một phương pháp hay nhất để đảm bảo tính bảo mật và khả năng di động, vì phương pháp này ngăn chặn việc mã hoá cứng dữ liệu nhạy cảm trực tiếp vào mã của bạn. Bạn cũng có thể dễ dàng thay đổi cấu hình mà không cần sửa đổi logic chính của tác nhân.

Hãy dùng các lệnh bên dưới để tạo những tệp này trong một thư mục riêng cho trợ lý ảo của bạn:

uv run adk create personal_assistant

Sau khi thực thi lệnh, bạn sẽ được yêu cầu chọn một số lựa chọn để định cấu hình tác nhân. Đối với bước đầu tiên, hãy chọn lựa chọn 1 để sử dụng mô hình gemini-2.5-flash, một mô hình nhanh chóng và hiệu quả, phù hợp với các tác vụ đàm thoại.

Choose a model for the root agent:
1. gemini-2.5-flash
2. Other models (fill later)
Choose model (1, 2): 1

Đối với bước thứ hai, hãy chọn Vertex AI (lựa chọn 2), nền tảng AI được quản lý mạnh mẽ của Google Cloud, làm nhà cung cấp dịch vụ phụ trợ.

1. Google AI
2. Vertex AI
Choose a backend (1, 2): 2

Sau đó, bạn cần xác minh rằng mã dự án xuất hiện trong dấu ngoặc vuông [...] là chính xác. Nếu có, bạn chỉ cần nhấn phím Enter. Nếu không, hãy nhập mã dự án chính xác vào đây.

Enter Google Cloud project ID [project-id]: 

Cuối cùng, bạn cần xác minh rằng khu vực dự án xuất hiện trong dấu ngoặc vuông [...] là chính xác. Nếu có, bạn chỉ cần nhấn phím Enter. Nếu không, hãy tham khảo tài liệu này để biết các khu vực có sẵn của Google Cloud và nhập khu vực chính xác.

Enter Google Cloud region [project-region]:

Bạn sẽ thấy một kết quả tương tự trong thiết bị đầu cuối.

Agent created in /home/<your-username>/ai-agent-adk/personal_assistant:
- .env
- __init__.py
- agent.py

Bây giờ, hãy nhấp vào nút Open Editor (Mở trình chỉnh sửa) ở đầu cửa sổ Cloud Shell. Khi nhấp vào nút đó, bạn sẽ được chuyển đến cửa sổ Trình chỉnh sửa. Nhờ đó, bạn có thể dễ dàng khám phá nội dung trong các tệp của mình.

Quá trình chuyển đổi có thể mất một chút thời gian. Nếu bạn gặp phải tình trạng màn hình tải không ngừng trong vài phút, hãy thử làm mới trình duyệt.

331da4cf37a1e8a4.png

Sau khi cửa sổ Trình chỉnh sửa tải xong, hãy chuyển đến thư mục personal-assistant. Bạn sẽ thấy các tệp cần thiết như đã đề cập ở trên (agent.py, __init__.py.env). Hãy khám phá nội dung.

Nếu bạn không thấy tệp .env trong thư mục, hãy chuyển đến thanh trình đơn ở trên cùng, nhấp vào View (Xem), rồi chọn Toggle Hidden Files (Hiện/ẩn tệp). Đây là chế độ cài đặt phổ biến vì các tệp .env thường bị ẩn theo mặc định để tránh vô tình bị lộ.

ad3a52aebdae6142.png

Hãy khám phá nội dung của từng tệp.

agent.py

Tệp này khởi tạo tác nhân của bạn bằng cách sử dụng lớp Agent từ thư viện google.adk.agents.

from google.adk.agents import Agent

root_agent = Agent(
    model='gemini-2.5-flash',
    name='root_agent',
    description='A helpful assistant for user questions.',
    instruction='Answer user questions to the best of your knowledge',
)
  • from google.adk.agents import Agent: Dòng này nhập lớp Agent cần thiết từ thư viện ADK.
  • root_agent = Agent(...): Tại đây, bạn đang tạo một phiên bản của tác nhân AI.
  • name="root_agent": Giá trị nhận dạng duy nhất cho tác nhân của bạn. Đây là cách ADK nhận dạng và tham chiếu đến trợ lý ảo của bạn.
  • model="gemini-2.5-flash": Đây là tham số quan trọng, chỉ định Mô hình ngôn ngữ lớn (LLM) mà tác nhân của bạn sẽ sử dụng làm "bộ não" cơ bản để hiểu, suy luận và tạo câu trả lời. gemini-2.5-flash là một mô hình nhanh chóng và hiệu quả, phù hợp với các tác vụ đàm thoại.
  • description="...": Phần này cung cấp thông tin tóm tắt ngắn gọn về mục đích hoặc khả năng của trợ lý. Nội dung mô tả này chủ yếu để con người hiểu hoặc để các tác nhân khác trong hệ thống nhiều tác nhân hiểu được chức năng của tác nhân cụ thể này. Thường được dùng để ghi nhật ký, gỡ lỗi hoặc khi hiển thị thông tin về tác nhân.
  • instruction="...": Đây là câu lệnh hệ thống hướng dẫn hành vi của trợ lý và xác định tính cách của trợ lý. Câu lệnh này cho biết LLM nên hành động như thế nào và mục đích chính của nó là gì. Trong trường hợp này, câu lệnh này thiết lập tác nhân là một "trợ lý hữu ích". Chỉ dẫn này đóng vai trò quan trọng trong việc định hình phong cách trò chuyện và khả năng của trợ lý.

init.py

Tệp này là cần thiết để Python nhận dạng personal-assistant là một gói, cho phép ADK nhập chính xác tệp agent.py của bạn.

from . import agent
  • from . import agent: Dòng này thực hiện một thao tác nhập tương đối, yêu cầu Python tìm một mô-đun có tên là agent (tương ứng với agent.py) trong gói hiện tại (personal-assistant). Dòng đơn giản này đảm bảo rằng khi ADK cố gắng tải tác nhân personal-assistant của bạn, ADK có thể tìm và khởi tạo root_agent được xác định trong agent.py. Ngay cả khi trống, sự hiện diện của __init__.py là yếu tố giúp thư mục trở thành một gói Python.

.env

Tệp này chứa các cấu hình dành riêng cho môi trường và thông tin đăng nhập nhạy cảm.

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=YOUR_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_PROJECT_LOCATION
  • GOOGLE_GENAI_USE_VERTEXAI: Thông tin này cho ADK biết rằng bạn dự định sử dụng dịch vụ Vertex AI của Google cho các hoạt động liên quan đến AI tạo sinh. Điều này rất quan trọng để tận dụng các dịch vụ được quản lý và mô hình nâng cao của Google Cloud.
  • GOOGLE_CLOUD_PROJECT: Biến này sẽ lưu trữ giá trị nhận dạng duy nhất của Dự án trên Google Cloud. ADK cần thông tin này để liên kết chính xác tác nhân với tài nguyên trên đám mây và để bật tính năng thanh toán.
  • GOOGLE_CLOUD_LOCATION: Tham số này chỉ định khu vực Google Cloud nơi các tài nguyên Vertex AI của bạn được đặt (ví dụ: us-central1). Việc sử dụng đúng vị trí sẽ giúp tác nhân của bạn giao tiếp hiệu quả với các dịch vụ Vertex AI ở khu vực đó.

6. Chạy tác nhân trên Thiết bị đầu cuối

Khi đã có cả 3 tệp, bạn có thể chạy tác nhân ngay từ thiết bị đầu cuối. Để làm việc này, bạn cần mở cửa sổ Terminal. Nhấp vào Terminal (Thiết bị đầu cuối) trong thanh trình đơn, sau đó chọn New Terminal (Thiết bị đầu cuối mới) là xong!

77e87c904f45d1b2.png

Sau khi có thiết bị đầu cuối, bạn có thể khởi động tác nhân bằng lệnh adk run. Vì đây là một cửa sổ dòng lệnh mới và chúng ta đang sử dụng uv, nên trước tiên, bạn cần chuyển đến thư mục ai-agent-adk, sau đó thêm tiền tố uv run vào lệnh adk run.

Nhập các lệnh sau vào cửa sổ dòng lệnh:

cd ai-agents-adk
uv run adk run personal_assistant

Nếu thiết lập đúng mọi thứ, bạn sẽ thấy kết quả tương tự trong thiết bị đầu cuối.

...
Running agent personal_assistant, type exit to exit.
[user]: hello. What can you do for me?
[personal_assistant]: Hello! I am a large language model, trained by Google. I can do many things to help you, such as:
...

Hãy trò chuyện với nhân viên hỗ trợ! Bạn sẽ nhận thấy đôi khi đầu ra được định dạng bằng Markdown, khiến bạn khó đọc trong thiết bị đầu cuối. Ở bước tiếp theo, chúng ta sẽ sử dụng Giao diện người dùng phát triển để có trải nghiệm phong phú hơn nhiều, giống như ứng dụng trò chuyện.

7. Chạy tác nhân trên Giao diện người dùng web dành cho nhà phát triển

Agent Development Kit cũng cung cấp một cách thuận tiện để chạy tác nhân dưới dạng một ứng dụng trò chuyện bằng cách sử dụng giao diện người dùng phát triển của tác nhân. Bạn chỉ cần dùng lệnh adk web thay vì adk run.

Nếu bạn vẫn đang ở phiên trước, chỉ cần nhập exit vào thiết bị đầu cuối để đóng phiên đó. Sau khi đóng phiên trước, hãy nhập lệnh sau đây vào thiết bị đầu cuối:

uv run adk web

Bạn sẽ thấy kết quả tương tự trong thiết bị đầu cuối:

...
INFO:     Started server process [4978]
INFO:     Waiting for application startup.

+------------------------------------------------------+
| ADK Web Server started                               |
|                                                      |
| For local testing, access at http://localhost:8000.  |
+------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

Bạn có 2 lựa chọn để truy cập vào giao diện người dùng dành cho nhà phát triển:

  1. Mở qua Terminal (Thiết bị đầu cuối)
  • Nhấn tổ hợp phím Ctrl + Nhấp hoặc Cmd + Nhấp vào đường liên kết (ví dụ: http://localhost:8000) như minh hoạ trong cửa sổ dòng lệnh.
  1. Mở qua Chế độ xem trước trên web
  • Nhấp vào nút Xem trước trên web,
  • Chọn Thay đổi cổng.
  • Nhập số cổng (ví dụ: 8000)
  • Nhấp vào Thay đổi và xem trước

9af437bf60562635.png

Sau đó, bạn sẽ thấy giao diện người dùng giống như ứng dụng trò chuyện xuất hiện trong trình duyệt. Hãy trò chuyện với trợ lý cá nhân của bạn thông qua giao diện này! Bạn sẽ nhận thấy rằng định dạng Markdown hiện hiển thị chính xác và giao diện người dùng này cũng cho phép bạn gỡ lỗi và điều tra từng sự kiện nhắn tin, trạng thái của tác nhân, yêu cầu của người dùng và nhiều thông tin khác. Chúc bạn trò chuyện vui vẻ!

7b779b9601941a12.png

8. Dọn dẹp (Không bắt buộc)

Vì lớp học lập trình này không liên quan đến bất kỳ sản phẩm nào chạy trong thời gian dài, nên bạn chỉ cần dừng các phiên hoạt động của tác nhân (ví dụ: phiên bản adk web trong thiết bị đầu cuối) bằng cách nhấn tổ hợp phím Ctrl + C hoặc Cmd + C trong thiết bị đầu cuối.

Xoá thư mục và tệp dự án của nhân viên hỗ trợ

Nếu bạn chỉ muốn xoá mã khỏi môi trường Cloud Shell, hãy sử dụng các lệnh sau:

cd ~
rm -rf ai-agents-adk

Tắt Vertex AI API

Để tắt Vertex AI API đã được bật trước đó, hãy chạy lệnh sau:

gcloud services disable aiplatform.googleapis.com

Tắt toàn bộ dự án trên Google Cloud

Nếu bạn muốn tắt hoàn toàn dự án Google Cloud, hãy tham khảo hướng dẫn chính thức để biết hướng dẫn chi tiết.

9. Kết luận

Xin chúc mừng! Bạn đã tạo thành công một tác nhân trợ lý cá nhân đơn giản bằng Bộ công cụ phát triển tác nhân (ADK). Giờ đây, bạn đã có kiến thức nền tảng vững chắc và hiểu rõ các thành phần cốt lõi của một tác nhân ADK.

Trong bước tiếp theo, bạn có thể mở rộng đáng kể các chức năng của trợ lý bằng cách cung cấp cho trợ lý các công cụ để truy cập thông tin theo thời gian thực và tương tác với các dịch vụ bên ngoài. Nếu bạn muốn tiếp tục hành trình này, lớp học lập trình tiếp theo trong loạt lớp học lập trình này, Xây dựng các tác nhân AI bằng ADK: Trang bị các công cụ, sẽ hướng dẫn bạn thực hiện quy trình này.