
Trong kỷ nguyên trí tuệ nhân tạo (AI) đang phát triển vũ bão, các hệ thống AI agent ngày càng trở nên tinh vi, có khả năng tự động hóa các tác vụ phức tạp và tương tác thông minh. Google Agent Development Kit (ADK) nổi lên như một framework mạnh mẽ, giúp các nhà phát triển xây dựng, đánh giá và triển khai các agent AI, đặc biệt là các hệ thống đa tác tử (Multi-Agent Systems – MAS). Bài viết này sẽ cung cấp hướng dẫn chi tiết về cách cài đặt Google ADK trên Windows 11 để tạo AI Agent đơn giản, từ việc làm rõ các khái niệm cơ bản, chuẩn bị môi trường, cài đặt từng bước, đến việc xây dựng và gỡ lỗi hệ thống đa tác tử đầu tiên của bạn.
Google ADK và Hệ Thống Đa Tác Tử (Multi Agents): Chúng Là Gì?
Trước khi đi sâu vào cách cài đặt Google ADK trên Windows 11, điều quan trọng là phải hiểu rõ các thuật ngữ cốt lõi.
Google Agent Development Kit (ADK) là gì?
Google Agent Development Kit (ADK) là một framework mã nguồn mở, linh hoạt và module hóa được Google phát triển để đơn giản hóa quá trình xây dựng, đánh giá và triển khai các agent AI. Nó được thiết kế để mang lại cảm giác phát triển phần mềm truyền thống cho việc tạo agent, giúp các nhà phát triển dễ dàng tạo ra các kiến trúc agent từ đơn giản đến phức tạp. ADK cung cấp các khối xây dựng cơ bản như Agent
(đơn vị thực thi chính, có thể là LlmAgent
dùng mô hình ngôn ngữ lớn hoặc WorkflowAgent
để điều phối), Tool
(mở rộng khả năng của agent), Session
(quản lý ngữ cảnh hội thoại), Memory
(lưu trữ thông tin dài hạn), và Runner
(quản lý luồng thực thi). Mặc dù tối ưu cho hệ sinh thái Google Cloud và Gemini, ADK là model-agnostic (hỗ trợ nhiều LLM khác nhau qua LiteLLM) và deployment-agnostic (có thể triển khai ở nhiều môi trường).
Quan trọng: Cần phân biệt rõ ràng Google ADK (Agent Development Kit – framework phát triển agent AI của Google) với Windows ADK (Windows Assessment and Deployment Kit – bộ công cụ của Microsoft để tùy chỉnh và triển khai hệ điều hành Windows). Mặc dù cả hai đều có “ADK” trong tên và chạy trên Windows, chúng phục vụ các mục đích hoàn toàn khác nhau. Bài viết này tập trung vào Google ADK.
Hệ Thống Đa Tác Tử (Multi-Agent Systems – MAS) là gì?
Hệ thống đa tác tử (MAS) là một hệ thống máy tính bao gồm nhiều agent thông minh tương tác với nhau trong một môi trường chung để giải quyết các vấn đề phức tạp mà một agent đơn lẻ hoặc một hệ thống nguyên khối khó có thể xử lý. Mỗi agent trong MAS có thể hoạt động tự chủ, có vai trò và khả năng chuyên biệt, nhưng chúng phối hợp, giao tiếp và cộng tác (hoặc cạnh tranh) để đạt được mục tiêu chung.
Trong bối cảnh Google ADK, MAS là một ứng dụng nơi các agent khác nhau (thường được tổ chức theo cấu trúc phân cấp) phối hợp để hoàn thành một mục tiêu lớn hơn. ADK được thiết kế với khả năng xây dựng MAS ngay từ đầu (“Multi-Agent by Design”), cho phép kết hợp các LlmAgent
, WorkflowAgent
(Sequential, Parallel, Loop), và Custom Agent
để tạo ra các ứng dụng module hóa và có khả năng mở rộng. Việc phân chia nhiệm vụ phức tạp cho các agent chuyên biệt giúp tăng hiệu quả và khả năng giải quyết vấn đề. MAS có nhiều ứng dụng thực tế như tối ưu chuỗi cung ứng, phát hiện gian lận, điều khiển đội hình robot, mô phỏng xã hội, và tự động hóa quy trình kinh doanh.
Bài viết này sẽ hướng dẫn bạn cách cài đặt Google ADK trên Windows 11 và sử dụng nó để bắt đầu build Multi Agents, khai thác sức mạnh của việc kết hợp nhiều agent chuyên biệt.
Chuẩn Bị
Trước khi bắt đầu quá trình cài đặt Google ADK trên Windows 11, bạn cần đảm bảo hệ thống và môi trường phát triển của mình đáp ứng các yêu cầu cần thiết. Việc chuẩn bị kỹ lưỡng sẽ giúp quá trình cài đặt diễn ra suôn sẻ và tránh các lỗi không đáng có.
Yêu Cầu Hệ Thống và Phần Mềm:
- Hệ điều hành: Windows 11 (Bài viết tập trung vào Windows 11, nhưng ADK cũng có thể hoạt động trên các phiên bản Windows khác hỗ trợ Python). Cần đảm bảo Windows 11 của bạn đáp ứng các yêu cầu hệ thống tối thiểu.
- Python: Google ADK yêu cầu phiên bản Python 3.9 trở lên. Việc sử dụng phiên bản Python phù hợp là rất quan trọng, vì các phiên bản cũ hơn có thể không tương thích hoặc gây ra lỗi trong quá trình cài đặt và sử dụng ADK.
- Cách cài đặt Python trên Windows 11:
- Truy cập trang web chính thức của Python: https://www.python.org/downloads/.
- Tải xuống trình cài đặt Python mới nhất cho Windows.
- Chạy trình cài đặt. Quan trọng: Đảm bảo chọn tùy chọn “Add Python to PATH” trong quá trình cài đặt. Điều này cho phép bạn chạy lệnh
python
vàpip
từ Command Prompt hoặc PowerShell. - Kiểm tra cài đặt bằng cách mở Command Prompt và chạy:
python --version
vàpip --version
.
- Cách cài đặt Python trên Windows 11:
- Trình quản lý gói Pip: Pip thường được cài đặt cùng với Python. Nó được sử dụng để cài đặt Google ADK và các thư viện phụ thuộc khác.
- Môi trường ảo (Virtual Environment – Khuyến nghị): Sử dụng môi trường ảo như
venv
là một thực hành tốt nhất khi làm việc với các dự án Python. Nó giúp cô lập các gói và phiên bản thư viện của dự án, tránh xung đột với các dự án khác hoặc cài đặt Python toàn cục. Việc không sử dụng môi trường ảo có thể dẫn đến các vấn đề về dependency khó gỡ lỗi sau này.venv
là một module tích hợp sẵn trong Python 3.3 trở lên, do đó không cần cài đặt thêm.
Các Thư Viện Phụ Thuộc Chính:
google-adk
: Gói Python chính của Agent Development Kit.- Các thư viện khác (tùy theo ví dụ/nhu cầu): Khi xây dựng các agent phức tạp hơn hoặc chạy các ví dụ cụ thể, bạn có thể cần cài đặt thêm các thư viện như:
litellm
: Để sử dụng các mô hình LLM không phải của Google.fastapi
,uvicorn
: Nếu bạn muốn host agent dưới dạng API web.httpx
: Để giao tiếp HTTP giữa các agent.pydantic
: Để định nghĩa schema dữ liệu input/output.neo4j
: Nếu tích hợp với cơ sở dữ liệu Neo4j.openai
: Nếu sử dụng mô hình của OpenAI.streamlit
: Nếu xây dựng giao diện người dùng đơn giản.
Tài Khoản và API Keys:
Để LlmAgent
trong Google ADK có thể hoạt động (gọi đến các mô hình ngôn ngữ lớn), bạn cần cấu hình xác thực phù hợp. Đây là một bước cực kỳ quan trọng, và việc cấu hình sai là nguyên nhân phổ biến gây ra lỗi khi agent cố gắng thực hiện suy luận. Có hai phương thức chính:
- Sử dụng Google AI Studio API Key (Đơn giản hơn cho người mới bắt đầu):
- Yêu cầu: Cần có tài khoản Google.
- Lấy API Key: Truy cập Google AI Studio và tạo một API key mới.
- Cấu hình: Tạo một file
.env
trong thư mục dự án agent của bạn và thêm các dòng sau, thay thếPASTE_YOUR_ACTUAL_API_KEY_HERE
bằng key thực tế của bạn:GOOGLE_GENAI_USE_VERTEXAI=FALSE GOOGLE_API_KEY=PASTE_YOUR_ACTUAL_API_KEY_HERE
- Sử dụng Google Cloud Vertex AI (Mạnh mẽ hơn, phù hợp cho môi trường production):
- Yêu cầu: Cần có tài khoản Google Cloud và một Project đã được tạo và kích hoạt thanh toán. API Vertex AI cần được bật trong project đó.
- Xác thực: Có hai cách chính:
- Sử dụng
gcloud
CLI: Cài đặt Google Cloud CLI và chạygcloud auth login
để xác thực tài khoản của bạn. ADK sẽ tự động sử dụng thông tin xác thực này. - Sử dụng Service Account Key: Tạo một Service Account trong Google Cloud Console, cấp quyền truy cập Vertex AI (ví dụ: vai trò ‘Vertex AI User’), tạo và tải xuống tệp khóa JSON. Sau đó, đặt biến môi trường
GOOGLE_APPLICATION_CREDENTIALS
trỏ đến đường dẫn tuyệt đối của tệp khóa JSON này.
- Sử dụng
- Cấu hình: Tạo file
.env
trong thư mục dự án agent và thêm các dòng sau, thay thếYOUR_PROJECT_ID
vàyour-region
bằng thông tin project của bạn:GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT=YOUR_PROJECT_ID GOOGLE_CLOUD_LOCATION=your-region # ví dụ: us-central1
Việc hiểu rõ và chuẩn bị đầy đủ các điều kiện tiên quyết này sẽ đảm bảo bạn có một nền tảng vững chắc để tiến hành cài đặt Google ADK trên Windows 11 và khám phá thế giới AI Agent.
Hướng Dẫn các bước cài đặt Google ADK trên Windows 11
Sau khi đã chuẩn bị đầy đủ các điều kiện tiên quyết, bạn có thể bắt đầu quá trình cài đặt Google ADK trên Windows 11. Thực hiện theo các bước chi tiết dưới đây để đảm bảo cài đặt thành công.
Bước 1: Tạo Thư Mục Dự Án và chạy Terminal
Truy cập đến thư mục muốn lưu trữ dự án Google ADK và tạo một thư mục dự án mới ví dụ như my_adk_project
. Sau đó nhấn chuột phải vào thư mục và chọn Open in Terminal như hình. Nếu các bạn không thấy tùy chọn này có thể là do máy tính của bạn chưa cài Terminal. Các bạn có thể vào Microsoft Store để tìm và tải Terminal nếu chưa cài đặt.
Sau đó một cửa sổ Terminal hiện ra với vị trí hiện tại là thư mục bạn vừa tạo.
Bước 2: Tạo và Kích Hoạt Môi Trường Ảo (venv)
Đây là bước quan trọng để cô lập môi trường cài đặt ADK. Trong thư mục dự án (my_adk_project
), chạy lệnh sau để tạo môi trường ảo có tên là .venv
:
python -m venv .venv
Lệnh này sẽ tạo một thư mục con .venv
chứa bản sao của Python và pip.
Tiếp theo sẽ kích hoạt môi trường ảo vừa tạo. Ở trong cửa sổ Terminal các bạn gọi tiếp lệnh sau:
.venv\Scripts\activate.bat
Sau khi kích hoạt thành công, bạn sẽ thấy (.venv)
xuất hiện ở đầu dòng lệnh như hình dưới, cho biết bạn đang làm việc bên trong môi trường ảo. Mọi lệnh pip
và python
sau đây đều phải được thực thi khi môi trường ảo đã được kích hoạt.
Bước 3: Cài Đặt Google ADK bằng Pip
Với môi trường ảo đã được kích hoạt, sử dụng pip để cài đặt gói google-adk
:
pip install google-adk
Lệnh này sẽ tải xuống và cài đặt phiên bản ổn định mới nhất của Google ADK cùng với các thư viện phụ thuộc cần thiết vào môi trường ảo .venv
của bạn. Để kiểm tra xem ADK đã được cài đặt thành công hay chưa, bạn có thể chạy:
pip show google-adk
Lệnh này sẽ hiển thị thông tin về gói google-adk
đã cài đặt, bao gồm phiên bản và vị trí.
Bước 4: Cấu Hình Xác Thực (API Key / Google Cloud)
- Như đã đề cập ở phần điều kiện tiên quyết, bạn cần cấu hình xác thực để agent có thể gọi LLM. Bước này thường được thực hiện bằng cách tạo file
.env
bên trong thư mục của từng agent cụ thể (sẽ tạo ở phần sau), không phải ở thư mục gốc dự án (my_adk_project
). - Tham khảo lại Bước 6 trong phần “Provide detailed steps to install Google Agent Development Kit (ADK) on Windows 11…” 27 hoặc phần “Tài Khoản và API Keys” ở trên để biết cách tạo và điền nội dung cho file
.env
tùy theo phương thức xác thực bạn chọn (Google AI Studio hoặc Vertex AI).
Bước 5: (Tùy chọn) Cài Đặt Phiên Bản Development
Nếu bạn muốn sử dụng các tính năng mới nhất hoặc các bản vá lỗi chưa được phát hành chính thức, bạn có thể cài đặt phiên bản development trực tiếp từ nhánh main
trên GitHub:
pip install git+https://github.com/google/adk-python.git@main
Tuy nhiên, phiên bản này có thể chứa lỗi hoặc thay đổi chưa ổn định, chỉ nên sử dụng cho mục đích thử nghiệm.1
Chúc mừng! Bạn đã hoàn thành cách cài đặt Google ADK trên Windows 11. Bước tiếp theo là tạo và chạy agent đầu tiên của bạn. Hãy nhớ luôn kích hoạt môi trường ảo (.venv\Scripts\activate.bat
) mỗi khi bạn mở một cửa sổ dòng lệnh mới để làm việc với dự án ADK này.
Cách tạo AI Agent để Tương Tác với Google ADK
Sau khi cài đặt thành công Google ADK, bước tiếp theo là tạo một agent đơn giản và chạy nó để làm quen với quy trình làm việc cơ bản. ADK cung cấp các công cụ tiện lợi để chạy và gỡ lỗi agent cục bộ.
Chuẩn bị Code Agent:
- Tạo Cấu Trúc Thư Mục Agent: Bên trong thư mục dự án chính của bạn (ví dụ:
my_adk_project
), tạo một thư mục con cho agent đầu tiên. Theo ví dụ trong quickstart, hãy đặt tên làmulti_tool_agent
. Cấu trúc thư mục của bạn sẽ trông như sau:my_adk_project/ ├──.venv/ └── multi_tool_agent/
- Tạo File
__init__.py
: Trong thư mụcmulti_tool_agent
, tạo một file tên là__init__.py
. File này đánh dấumulti_tool_agent
là một Python package và cho phép ADK tìm thấy agent của bạn. Thêm nội dung sau vào file__init__.py
:# multi_tool_agent/__init__.py from. import agent
(Lưu ý cho người dùng Windows: Nên tạo file này bằng File Explorer hoặc IDE thay vì lệnh
echo
trong cmd để tránh lỗi encoding 27). - Tạo File
agent.py
: Tạo một file tên làagent.py
trong cùng thư mụcmulti_tool_agent
. Đây là nơi bạn định nghĩa logic của agent. Sao chép và dán đoạn mã ví dụ sau vào fileagent.py
. Ví dụ này tạo mộtLlmAgent
đơn giản có thể lấy thông tin thời tiết và thời gian bằng cách sử dụng các hàm Python làm công cụ (tool):# multi_tool_agent/agent.py import datetime from zoneinfo import ZoneInfo from google.adk.agents import Agent # Hoặc LlmAgent nếu chỉ dùng LLM # Định nghĩa tool 1: Lấy thời tiết def get_weather(city: str) -> dict: """Retrieves the current weather report for a specified city.""" print(f"-- Tool Call: get_weather(city='{city}') --") # Thêm log để dễ debug if city.lower() == "new york": return { "status": "success", "report": "The weather in New York is sunny with a temperature of 25 degrees Celsius (77 degrees Fahrenheit).", } else: return { "status": "error", "error_message": f"Weather information for '{city}' is not available.", } # Định nghĩa tool 2: Lấy thời gian hiện tại def get_current_time(city: str) -> dict: """Retrieves the current time for a specified city.""" print(f"-- Tool Call: get_current_time(city='{city}') --") # Thêm log để dễ debug tz_identifier = None if city.lower() == "new york": tz_identifier = "America/New_York" elif city.lower() == "paris": tz_identifier = "Europe/Paris" # Thêm các thành phố khác nếu muốn else: return { "status": "error", "error_message": f"Sorry, I don't have timezone information for {city}.", } try: tz = ZoneInfo(tz_identifier) now = datetime.datetime.now(tz) report = f'The current time in {city} is {now.strftime("%Y-%m-%d %H:%M:%S %Z%z")}' return {"status": "success", "report": report} except Exception as e: return {"status": "error", "error_message": f"Error getting time for {city}: {e}"} # Khởi tạo Agent root_agent = Agent( # Có thể dùng LlmAgent nếu muốn chỉ rõ name="weather_time_agent", # Tên định danh cho agent model="gemini-1.5-flash-latest", # Thay bằng model bạn muốn dùng (cần cấu hình API key tương ứng) description="Agent to answer questions about the time and weather in a city.", # Mô tả agent instruction=( # Hướng dẫn cho LLM "You are a helpful agent who can answer user questions about the time and weather in a city. " "Use the available tools (get_weather, get_current_time) when necessary. " "Respond clearly based on the tool's output." ), tools=[get_weather, get_current_time] # Danh sách các tool agent có thể sử dụng )
- Giải thích:
import
: Nhập các thư viện cần thiết.get_weather
,get_current_time
: Các hàm Python đơn giản đóng vai trò là “tools” cho agent. Chúng nhận input và trả về một dictionary chứa kết quả hoặc lỗi. Docstring của hàm rất quan trọng vì LLM sẽ dựa vào đó để hiểu chức năng và tham số của tool.Agent(...)
: Khởi tạo một instance của agent. Các tham số quan trọng bao gồmname
(định danh duy nhất),model
(LLM sử dụng),description
(mô tả cho các agent khác trong MAS),instruction
(hướng dẫn chi tiết cho LLM về cách hoạt động và khi nào sử dụng tool), vàtools
(danh sách các hàm hoặc đối tượng tool mà agent có thể gọi).
- Giải thích:
- Tạo File
.env
và Cấu Hình API Key: Trong thư mụcmulti_tool_agent
, tạo file.env
. Mở file này và thêm cấu hình API key/Vertex AI phù hợp với model bạn đã chọn trongagent.py
. Ví dụ, nếu dùng Google AI Studio API key:# multi_tool_agent/.env GOOGLE_GENAI_USE_VERTEXAI=FALSE GOOGLE_API_KEY=PASTE_YOUR_ACTUAL_API_KEY_HERE
Chạy Agent bằng Giao Diện Web (ADK Web UI):
Đây là cách được khuyến nghị để chạy và thử nghiệm agent trong quá trình phát triển vì nó cung cấp giao diện trực quan để tương tác và gỡ lỗi.
- Kích hoạt venv: Đảm bảo môi trường ảo của bạn đã được kích hoạt trong Command Prompt.
- Điều hướng đến thư mục cha: Quan trọng: Di chuyển ra thư mục cha của thư mục agent (
my_adk_project
). Lệnhadk web
cần được chạy từ đây để nó có thể tìm thấy thư mục agent (multi_tool_agent
).cd..
- Chạy lệnh
adk web
:
adk web
- Mở Trình Duyệt: Lệnh trên sẽ khởi động một server cục bộ và in ra URL (thường là
http://localhost:8000
hoặchttp://127.0.0.1:8000
). Mở URL này trong trình duyệt web của bạn. - Sử dụng ADK Web UI:
- Chọn Agent: Ở góc trên bên trái, bạn sẽ thấy một dropdown. Chọn agent của bạn (“multi_tool_agent”). Nếu không thấy, hãy kiểm tra lại xem bạn đã chạy
adk web
từ đúng thư mục cha chưa. - Chat: Nhập câu hỏi hoặc yêu cầu của bạn vào ô chat ở dưới và nhấn Enter.
- Quan sát và Debug: Giao diện sẽ hiển thị phản hồi của agent. Quan trọng hơn, nó cho phép bạn xem chi tiết các bước thực thi, bao gồm các lời gọi tool (function calls), tham số đầu vào, kết quả trả về từ tool, và cả phản hồi thô từ LLM. Bạn có thể nhấp vào các thành phần này để xem chi tiết, giúp ích rất nhiều cho việc gỡ lỗi.
- Tương tác Giọng nói: Giao diện cũng hỗ trợ nhập liệu bằng giọng nói nếu bạn cho phép trình duyệt truy cập micro.
- Chọn Agent: Ở góc trên bên trái, bạn sẽ thấy một dropdown. Chọn agent của bạn (“multi_tool_agent”). Nếu không thấy, hãy kiểm tra lại xem bạn đã chạy
- Thử nghiệm Prompts: Hãy thử các câu hỏi như :
- “What is the weather in New York?”
- “What time is it in Paris?”
- “How’s the weather in London?” (Sẽ trả về lỗi vì tool không hỗ trợ)
Các Cách Chạy Agent Khác (Tùy chọn):
ADK Run (CLI): Chạy agent trực tiếp từ dòng lệnh mà không cần giao diện web. Hữu ích cho việc kiểm thử nhanh hoặc tích hợp vào script.
# Chạy từ thư mục cha (my_adk_project)
adk run multi_tool_agent
Sau đó nhập prompt vào terminal.
ADK API Server: Khởi chạy agent như một backend API server, cho phép các ứng dụng khác tương tác với agent thông qua HTTP request (ví dụ: dùng curl
hoặc Postman). Phù hợp cho việc tích hợp agent vào các hệ thống lớn hơn.
# Chạy từ thư mục cha (my_adk_project)
adk api_server
Sự đa dạng trong cách chạy và tương tác (Web UI, CLI, API Server) cho thấy tính linh hoạt của Google ADK. Nó không chỉ cung cấp một môi trường phát triển trực quan thông qua Web UI, mà còn hỗ trợ các kịch bản tích hợp và tự động hóa thông qua CLI và API server. Điều này cho phép nhà phát triển lựa chọn phương thức phù hợp nhất với giai đoạn phát triển hoặc mục tiêu tích hợp của họ.
Bây giờ bạn đã biết cách cài đặt và chạy một agent đơn lẻ. Phần tiếp theo sẽ đi sâu vào cách build Multi Agents bằng Google ADK.
Xây Dựng Đội Ngũ AI: Bước Đầu với Hệ Thống Đa Tác Tử (Multi Agents) trong Google ADK
Google ADK không chỉ dừng lại ở việc tạo các agent đơn lẻ mà thực sự tỏa sáng khi bạn bắt đầu build Multi Agents – xây dựng các hệ thống phức tạp nơi nhiều agent chuyên biệt cộng tác với nhau. Khả năng thiết kế “Multi-Agent by Design” là một trong những điểm mạnh cốt lõi của framework này.
Kiến Trúc Đa Tác Tử trong ADK
Trong ADK, một hệ thống đa tác tử (MAS) thường được cấu trúc theo dạng phân cấp (hierarchy
), nơi có một agent cha (parent_agent
) điều phối hoạt động của các agent con (sub_agents
). Sự phối hợp và ủy quyền nhiệm vụ giữa các agent là chìa khóa để giải quyết các bài toán phức tạp.
Các Thành Phần Cốt Lõi cho MAS trong ADK
Để xây dựng MAS hiệu quả, bạn cần nắm vững vai trò của các loại agent khác nhau trong ADK:
Bảng: Các Loại Agent Chính trong Google ADK để Xây Dựng MAS
Loại Agent | Mô tả Ngắn gọn | Trường hợp sử dụng chính trong MAS |
LlmAgent |
Agent sử dụng Mô hình Ngôn ngữ Lớn (LLM) để suy luận, hiểu ngôn ngữ, ra quyết định và gọi tools/sub-agents. | Đóng vai trò điều phối viên (coordinator), agent thực thi nhiệm vụ cần hiểu ngữ cảnh phức tạp, agent giao tiếp với người dùng. |
SequentialAgent |
Agent điều phối: Thực thi tuần tự danh sách các sub_agents theo thứ tự được cung cấp. |
Xây dựng các pipeline xử lý dữ liệu hoặc quy trình công việc gồm nhiều bước nối tiếp nhau (ví dụ: Fetch data -> Process data -> Summarize data). |
ParallelAgent |
Agent điều phối: Thực thi song song các sub_agents . Các sự kiện từ sub-agents có thể xen kẽ. |
Chạy đồng thời các tác vụ độc lập để tiết kiệm thời gian (ví dụ: Tìm chuyến bay VÀ tìm khách sạn cùng lúc). |
LoopAgent |
Agent điều phối: Thực thi tuần tự các sub_agents trong một vòng lặp cho đến khi đạt điều kiện dừng. |
Thực hiện các tác vụ lặp đi lặp lại cho đến khi thỏa mãn một điều kiện nào đó (ví dụ: Thử lại một tác vụ cho đến khi thành công hoặc hết số lần thử). |
Custom Agent |
Agent do người dùng tự định nghĩa, kế thừa từ BaseAgent , thực thi logic tùy chỉnh không dựa vào LLM. |
Thực hiện các logic nghiệp vụ đặc thù, các tác vụ tính toán xác định (deterministic) không cần khả năng suy luận của LLM. |
AgentTool |
Không phải là một loại agent, mà là cơ chế để một LlmAgent cha coi một BaseAgent (bất kỳ loại nào) con như một công cụ (tool). |
Cho phép LlmAgent điều phối viên ủy quyền động các tác vụ phức tạp cho các agent chuyên biệt (con) dựa trên ngữ cảnh hội thoại. |
Việc hiểu rõ chức năng của từng loại agent này là nền tảng để thiết kế các kiến trúc MAS hiệu quả trong ADK. LlmAgent
đóng vai trò bộ não suy luận, trong khi các WorkflowAgent
(Sequential
, Parallel
, Loop
) cung cấp cấu trúc và kiểm soát luồng thực thi một cách xác định. Custom Agent
cho phép tích hợp logic nghiệp vụ riêng, và AgentTool
là cầu nối linh hoạt cho việc ủy quyền giữa các agent.
Workflow Agents (Sequential, Parallel, Loop)
Các agent này không tự thực hiện tác vụ mà điều phối (orchestrate
) luồng thực thi của các sub_agents
được cung cấp cho chúng.
SequentialAgent
: Thực thi cácsub_agents
lần lượt. Nó truyền cùng mộtInvocationContext
(bao gồm cảsession.state
) qua từng agent con, giúp việc truyền kết quả giữa các bước trở nên dễ dàng thông qua trạng thái chia sẻ.ParallelAgent
: Thực thi cácsub_agents
đồng thời. Nó tạo ra các nhánh (branch
) khác nhau trongInvocationContext
cho mỗi agent con, nhưng tất cả đều truy cập cùng mộtsession.state
. Điều này hữu ích để cô lập lịch sử nhưng vẫn cho phép chia sẻ kết quả (cần dùng key khác nhau trong state để tránh xung đột ghi dữ liệu – race conditions).LoopAgent
: Thực thi cácsub_agents
tuần tự trong một vòng lặp. Vòng lặp kết thúc khi đạtmax_iterations
hoặc khi một sub-agent trả về sự kiện yêu cầu dừng (actions.escalate=True
). Nó cũng truyền cùngInvocationContext
trong mỗi vòng lặp, cho phép trạng thái thay đổi qua các lần lặp.
Giao Tiếp Giữa Các Agent
session.state
: Cách phổ biến nhất để các agent trong cùng một hệ thống (đặc biệt là trongSequentialAgent
hoặcParallelAgent
) chia sẻ thông tin là ghi và đọc dữ liệu từ đối tượngsession.state
(một dictionary). Một agent có thể ghi kết quả vào state bằng cách sử dụng tham sốoutput_key
khi khởi tạo, hoặc ghi trực tiếp vàocontext.session.state
trong mộtCustom Agent
hoặc callback. Agent tiếp theo có thể đọc dữ liệu này từ state để sử dụng.AgentTool
: Khi một agent cha sử dụngAgentTool
để gọi một agent con, kết quả trả về từ agent con sẽ được xem như kết quả của một tool call thông thường, và được agent cha xử lý tiếp.- Agent2Agent (A2A) Protocol: Google cũng thúc đẩy một giao thức mở tên là A2A, cho phép các agent (ngay cả khi được xây dựng bằng các framework khác nhau hoặc bởi các nhà cung cấp khác nhau) khám phá khả năng của nhau và giao tiếp một cách chuẩn hóa. ADK tích hợp với A2A, mở ra khả năng xây dựng các hệ sinh thái agent liên kết rộng lớn hơn.
Ví Dụ Xây Dựng MAS Đơn Giản
Sử dụng SequentialAgent (Pipeline Xử Lý Thông Tin)
Giả sử chúng ta muốn tạo một pipeline: Agent 1 nhận tên quốc gia, tìm thủ đô và lưu vào state. Agent 2 đọc tên thủ đô từ state, tìm thông tin thời tiết cho thủ đô đó.
from google.adk.agents import SequentialAgent, LlmAgent
from google.adk.tools import google_search # Giả sử có tool search
# Agent 1: Tìm thủ đô
capital_finder = LlmAgent(
name="CapitalFinder",
model="gemini-1.5-flash-latest",
instruction="What is the capital of the country mentioned by the user?",
output_key="capital_city" # Lưu kết quả vào state['capital_city']
)
# Agent 2: Tìm thời tiết tại thủ đô (đọc từ state)
weather_finder = LlmAgent(
name="WeatherFinder",
model="gemini-1.5-flash-latest",
instruction="Find the current weather for the city stored in session state under the key 'capital_city'. Use the search tool if needed.",
tools=[google_search], # Cho phép agent này dùng search
output_key="weather_report"
)
# Tạo pipeline tuần tự
country_info_pipeline = SequentialAgent(
name="CountryInfoPipeline",
sub_agents=[capital_finder, weather_finder]
)
# Cách chạy (cần có runner và session):
# async for event in runner.run_async(user_id="user1", session_id="session1", new_message=types.Content(role='user', parts=[types.Part(text='France')])):
# if event.is_final_response():
# print(f"Final weather report: {session.state.get('weather_report')}")
# print(f"Capital found: {session.state.get('capital_city')}")
Trong ví dụ này, SequentialAgent
đảm bảo capital_finder
chạy trước, kết quả “Paris” được lưu vào state['capital_city']
. Sau đó, weather_finder
chạy, đọc “Paris” từ state và tìm thời tiết.
Sử dụng ParallelAgent (Thu Thập Thông Tin Song Song)
Giả sử chúng ta muốn tìm thông tin chuyến bay và khách sạn cho một địa điểm cùng lúc:
from google.adk.agents import ParallelAgent, LlmAgent
# Agent tìm chuyến bay
flight_agent = LlmAgent(
name="FlightFetcher",
model="gemini-1.5-flash-latest",
instruction="Find flight options to Paris for next week.",
output_key="flight_options" # Lưu vào state['flight_options']
)
# Agent tìm khách sạn
hotel_agent = LlmAgent(
name="HotelFetcher",
model="gemini-1.5-flash-latest",
instruction="Find hotels in Paris within a $200/night budget.",
output_key="hotel_options" # Lưu vào state['hotel_options']
)
# Tạo agent chạy song song
travel_info_gatherer = ParallelAgent(
name="TravelInfoGatherer",
sub_agents=[flight_agent, hotel_agent]
)
# Cách chạy (cần có runner và session):
# async for event in runner.run_async(user_id="user1", session_id="session2", agent_override=travel_info_gatherer):
# # Xử lý các event xen kẽ từ flight_agent và hotel_agent
# pass
# print(f"Flights: {session.state.get('flight_options')}")
# print(f"Hotels: {session.state.get('hotel_options')}")
Ở đây, ParallelAgent
sẽ khởi chạy flight_agent
và hotel_agent
cùng lúc. Chúng sẽ hoạt động độc lập và ghi kết quả vào các key khác nhau (flight_options
, hotel_options
) trong cùng session.state
.
Tích Hợp với Hệ Sinh Thái Rộng Lớn Hơn
Google ADK không hoạt động biệt lập. Nó được thiết kế để tích hợp và tương tác với các công cụ và framework khác trong hệ sinh thái AI đang phát triển nhanh chóng:
- Frameworks MAS Khác: ADK có thể tích hợp hoặc hoạt động cùng với các framework phổ biến như LangChain, LangGraph, CrewAI. Ví dụ, một agent ADK có thể gọi một agent được xây dựng bằng LangGraph như một tool, hoặc ngược lại.
- Thư Viện Python Phổ Biến: Khi lập trình multi agent Python với ADK, bạn thường xuyên cần đến các thư viện khoa học dữ liệu và máy học nền tảng như:
- NumPy: Cho tính toán số học hiệu năng cao, đặc biệt với mảng đa chiều.
- Pandas: Cho thao tác và phân tích dữ liệu có cấu trúc (dạng bảng).
- Scikit-learn: Cung cấp các thuật toán học máy cổ điển (phân loại, hồi quy, phân cụm).
- TensorFlow/Keras/PyTorch: Các thư viện học sâu mạnh mẽ, mặc dù ADK trừu tượng hóa việc tương tác trực tiếp với LLM, chúng vẫn hữu ích nếu bạn xây dựng các
Custom Agent
phức tạp hoặc các tool chuyên biệt.
- Thư Viện MAS Chuyên Dụng Khác: Ngoài ADK, có nhiều thư viện Python khác tập trung vào việc xây dựng agent và MAS, mỗi thư viện có điểm mạnh riêng:
- OpenAI Agents SDK: Framework nhẹ của OpenAI cho các workflow đa tác tử.
- AutoGen (Microsoft): Framework tập trung vào hội thoại đa tác tử để giải quyết các tác vụ phức tạp.
- CrewAI: Framework để tạo các “đội” agent AI cộng tác, tương thích với LangChain.42
- LangGraph: Thư viện từ LangChain để xây dựng các ứng dụng đa tác tử có trạng thái, hỗ trợ vòng lặp và phân nhánh.
- AgentPy: Framework cho mô hình hóa dựa trên tác tử (Agent-Based Modeling – ABM) trong Python.
- NVIDIA AgentIQ: Thư viện giúp kết nối và tối ưu hóa agent từ nhiều framework.
- Công cụ Tự động hóa Workflow: Các công cụ như n8n cũng có thể đóng vai trò quan trọng trong hệ sinh thái, giúp kết nối các agent với các dịch vụ khác hoặc tự động hóa các quy trình phức tạp mà agent tham gia. Bạn có thể tìm hiểu thêm về n8n tại: Giới thiệu N8N và Hướng dẫn Cài đặt Chi tiết (Docker, NPM) – Tự động hóa Workflow 2025
Việc Google ADK được thiết kế mở, hỗ trợ nhiều mô hình, có khả năng tích hợp với các framework khác và các giao thức mở như A2A và MCP (Model Context Protocol – để kết nối dữ liệu) cho thấy một chiến lược rõ ràng: xây dựng một công cụ mạnh mẽ nhưng không đóng kín, có khả năng hoạt động hiệu quả trong một hệ sinh thái AI đa dạng và không ngừng phát triển. Điều này mang lại lợi ích lớn cho các nhà phát triển, cho phép họ tận dụng các công cụ tốt nhất cho từng phần của bài toán và không bị khóa chặt vào một nhà cung cấp duy nhất.
Kết Luận
Qua bài viết này, chúng ta đã cùng nhau khám phá cách cài đặt Google ADK trên Windows 11 để tạo AI Agent đơn giản. Từ việc làm rõ các khái niệm nền tảng về Google ADK và Hệ thống Đa Tác Tử, chuẩn bị môi trường cần thiết, thực hiện các bước cài đặt chi tiết trên Windows 11, cho đến việc chạy agent đầu tiên và tìm hiểu cách xây dựng các hệ thống đa tác tử phức tạp hơn bằng cách kết hợp các loại agent khác nhau như LlmAgent
, SequentialAgent
, và ParallelAgent
. Chúng ta cũng đã điểm qua những lỗi thường gặp và cách khắc phục hiệu quả.
Google ADK chứng tỏ là một framework mạnh mẽ, linh hoạt và được thiết kế tốt, mang đến cho các nhà phát triển một bộ công cụ toàn diện để hiện thực hóa các ý tưởng về ứng dụng AI agent. Khả năng hỗ trợ đa dạng mô hình LLM, tích hợp dễ dàng với các tool và dịch vụ bên ngoài, cùng kiến trúc hướng đến việc xây dựng hệ thống đa tác tử phức tạp làm cho ADK trở thành một lựa chọn hấp dẫn trong bối cảnh AI agent đang phát triển nhanh chóng.
Hệ thống đa tác tử đang mở ra những tiềm năng to lớn trong việc giải quyết các bài toán phức tạp trong nhiều lĩnh vực. Việc nắm vững Google ADK trên nền tảng Windows 11 sẽ là một lợi thế đáng kể. Đừng ngần ngại bắt tay vào thực hành, thử nghiệm các ví dụ, khám phá sâu hơn tài liệu chính thức và tham gia vào cộng đồng để học hỏi và chia sẻ kinh nghiệm.
Bạn đã sẵn sàng xây dựng “đội quân” AI của riêng mình với Google ADK chưa? Hãy bắt đầu hành trình thú vị này ngay hôm nay!
Leave a Reply
Bạn phải đăng nhập hoặc đăng ký để bình luận.