1. Tổng quan
Trong lớp học lập trình này, bạn sẽ xây dựng một hệ thống nghiên cứu đầu tư phức tạp gồm nhiều tác nhân, kết hợp sức mạnh của Bộ công cụ phát triển tác nhân (ADK) của Google, Cơ sở dữ liệu đồ thị Neo4j và Bộ công cụ Giao thức ngữ cảnh mô hình (MCP). Hướng dẫn thực hành này minh hoạ cách tạo các tác nhân thông minh có thể hiểu được ngữ cảnh dữ liệu thông qua các mối quan hệ đồ thị và đưa ra câu trả lời cho truy vấn có độ chính xác cao.
Tại sao nên dùng GraphRAG + Hệ thống đa tác nhân?
GraphRAG (Tạo tăng cường dựa trên truy xuất bằng biểu đồ) giúp cải thiện các phương pháp RAG truyền thống bằng cách tận dụng cấu trúc mối quan hệ phong phú của biểu đồ tri thức. Thay vì chỉ tìm kiếm các tài liệu tương tự, các tác nhân GraphRAG có thể:
- Duyệt qua các mối quan hệ phức tạp giữa các thực thể
- Tìm hiểu bối cảnh thông qua cấu trúc biểu đồ
- Cung cấp kết quả có thể giải thích dựa trên dữ liệu được kết nối
- Thực hiện lập luận nhiều bước trên sơ đồ tri thức
Hệ thống nhiều tác nhân cho phép bạn:
- Phân tách các vấn đề phức tạp thành các nhiệm vụ phụ chuyên biệt
- Xây dựng các ứng dụng AI theo kiểu mô-đun và có thể duy trì
- Bật tính năng xử lý song song và sử dụng tài nguyên hiệu quả
- Tạo các mẫu lập luận phân cấp bằng cách phối hợp
Sản phẩm bạn sẽ tạo ra
Bạn sẽ tạo một hệ thống nghiên cứu đầu tư hoàn chỉnh với các tính năng:
- Graph Database Agent: Thực thi các truy vấn Cypher và hiểu giản đồ Neo4j
- Nhân viên nghiên cứu nhà đầu tư: Khám phá mối quan hệ với nhà đầu tư và danh mục đầu tư
- Tác nhân nghiên cứu đầu tư: Truy cập vào các sơ đồ tri thức toàn diện thông qua các công cụ MCP
- Root Agent: Điều phối tất cả các sub-agent một cách thông minh
Hệ thống sẽ trả lời những câu hỏi phức tạp như:
- "Đối thủ cạnh tranh chính của YouTube là ai?"
- "Những công ty nào được đề cập với thái độ tích cực trong tháng 1 năm 2023?"
- "Ai đã đầu tư vào ByteDance và họ đã đầu tư vào những công ty nào khác?"
Tổng quan về cấu trúc

Thông qua lớp học lập trình này, bạn sẽ tìm hiểu cả nền tảng khái niệm và cách triển khai thực tế để tạo các tác nhân GraphRAG cấp doanh nghiệp.
Kiến thức bạn sẽ học được
- Cách tạo hệ thống nhiều tác nhân bằng Bộ công cụ phát triển tác nhân (ADK) của Google
- Cách tích hợp cơ sở dữ liệu đồ thị Neo4j với ADK cho các ứng dụng GraphRAG
- Cách triển khai Bộ công cụ Giao thức ngữ cảnh mô hình (MCP) cho các truy vấn cơ sở dữ liệu đã được xác thực trước
- Cách tạo các công cụ và chức năng tuỳ chỉnh cho các tác nhân thông minh
- Cách thiết kế hệ thống phân cấp tác nhân và các mẫu điều phối
- Cách xây dựng hướng dẫn cho nhân viên hỗ trợ để đạt được hiệu suất tối ưu
- Cách gỡ lỗi hiệu quả cho các hoạt động tương tác giữa nhiều tác nhân
Bạn cần có
- Trình duyệt web Chrome
- Tài khoản Gmail
- Một Dự án trên Google Cloud đã bật tính năng thanh toán
- Quen thuộc cơ bản với các lệnh trên thiết bị đầu cuối và Python (hữu ích nhưng không bắt buộc)
Lớp học lập trình này được thiết kế cho nhà phát triển ở mọi cấp độ (kể cả người mới bắt đầu), sử dụng Python và Neo4j trong ứng dụng mẫu. Mặc dù việc có kiến thức cơ bản về Python và cơ sở dữ liệu đồ thị có thể hữu ích, nhưng bạn không cần có kinh nghiệm trước đó để hiểu các khái niệm hoặc theo dõi.
2. Tìm hiểu về GraphRAG và Hệ thống đa tác nhân
Trước khi đi sâu vào quá trình triển khai, hãy tìm hiểu các khái niệm chính hỗ trợ hệ thống này.
Neo4j là một cơ sở dữ liệu đồ thị gốc hàng đầu, lưu trữ dữ liệu dưới dạng một mạng lưới các nút (thực thể) và mối quan hệ (kết nối giữa các thực thể), khiến cơ sở dữ liệu này trở nên lý tưởng cho các trường hợp sử dụng mà việc hiểu rõ các mối kết nối là yếu tố then chốt – chẳng hạn như đề xuất, phát hiện hành vi gian lận, biểu đồ tri thức, v.v. Không giống như cơ sở dữ liệu quan hệ hoặc dựa trên tài liệu dựa vào các bảng hoặc cấu trúc phân cấp cứng nhắc, mô hình đồ thị linh hoạt của Neo4j cho phép biểu diễn dữ liệu phức tạp, có mối liên kết với nhau một cách trực quan và hiệu quả.
Thay vì sắp xếp dữ liệu theo hàng và bảng như cơ sở dữ liệu quan hệ, Neo4j sử dụng mô hình đồ thị, trong đó thông tin được biểu thị dưới dạng nút (thực thể) và mối quan hệ (kết nối giữa các thực thể đó). Mô hình này giúp bạn làm việc với dữ liệu được liên kết một cách tự nhiên (chẳng hạn như con người, địa điểm, sản phẩm hoặc trong trường hợp của chúng tôi là phim, diễn viên và thể loại) một cách cực kỳ trực quan.
Ví dụ: trong một tập dữ liệu về phim:
- Một nút có thể biểu thị
Movie,ActorhoặcDirector - Mối quan hệ có thể là
ACTED_INhoặcDIRECTED

Cấu trúc này giúp bạn dễ dàng đặt các câu hỏi như:
- Diễn viên này đã xuất hiện trong những bộ phim nào?
- Những ai từng làm việc với Christopher Nolan?
- Những bộ phim tương tự dựa trên diễn viên hoặc thể loại chung là gì?
GraphRAG là gì?
Cơ chế tạo sinh tăng cường truy xuất (RAG) cải thiện câu trả lời của LLM bằng cách truy xuất thông tin liên quan từ các nguồn bên ngoài. RAG truyền thống thường:
- Nhúng tài liệu vào vectơ
- Tìm kiếm các vectơ tương tự
- Truyền các tài liệu đã truy xuất đến LLM
GraphRAG mở rộng điều này bằng cách sử dụng sơ đồ tri thức:
- Nhúng các thực thể và mối quan hệ
- Duyệt qua các kết nối đồ thị
- Truy xuất thông tin theo bối cảnh nhiều cấp
- Cung cấp kết quả có cấu trúc và dễ hiểu
Tại sao cần có biểu đồ cho tác nhân AI?
Hãy cân nhắc câu hỏi này: "Đối thủ cạnh tranh của YouTube là ai và những nhà đầu tư nào đã tài trợ cho cả YouTube và các đối thủ cạnh tranh của YouTube?"
Điều gì xảy ra trong phương pháp RAG truyền thống:
- Tìm kiếm tài liệu về các đối thủ cạnh tranh của YouTube
- Tìm kiếm thông tin riêng cho nhà đầu tư
- Khó khăn trong việc kết nối hai thông tin này
- Có thể bỏ lỡ các mối quan hệ ngầm
Điều gì xảy ra trong phương pháp GraphRAG:
MATCH (youtube:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor:Company)
MATCH (investor:Investor)-[:INVESTED_IN]->(youtube)
MATCH (investor)-[:INVESTED_IN]->(competitor)
RETURN youtube, competitor, investor
Biểu đồ này thể hiện mối quan hệ một cách tự nhiên, giúp các truy vấn nhiều bước trở nên đơn giản và hiệu quả.
Hệ thống nhiều tác nhân trong ADK
Bộ phát triển tác nhân (ADK) là khung nguồn mở của Google để xây dựng và triển khai các tác nhân AI cấp sản xuất. Khung này cung cấp các thành phần cơ bản trực quan để điều phối nhiều tác nhân, tích hợp công cụ và quản lý quy trình công việc, giúp bạn dễ dàng kết hợp các tác nhân chuyên biệt thành các hệ thống phức tạp. ADK hoạt động liền mạch với Gemini và hỗ trợ triển khai cho Cloud Run, Kubernetes hoặc bất kỳ cơ sở hạ tầng nào.
Bộ công cụ phát triển tác nhân (ADK) cung cấp các thành phần cơ bản để xây dựng hệ thống nhiều tác nhân:
- Hệ thống phân cấp nhân viên hỗ trợ:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
name="RootAgent",
sub_agents=[
graph_db_agent,
investor_agent,
investment_agent
]
)
- Nhân viên hỗ trợ chuyên trách: Mỗi nhân viên hỗ trợ có
- Công cụ cụ thể: Các hàm mà công cụ có thể gọi
- Hướng dẫn rõ ràng: Vai trò và khả năng của hướng dẫn
- Kiến thức chuyên môn về miền: Kiến thức về lĩnh vực của miền
- Mẫu điều phối:
- Tuần tự: Thực thi các tác nhân theo thứ tự
- Song song: Chạy nhiều tác nhân cùng lúc
- Có điều kiện: Định tuyến dựa trên loại truy vấn
Hộp công cụ MCP cho cơ sở dữ liệu
Model Context Protocol (MCP) là một tiêu chuẩn mở để kết nối các hệ thống AI với các nguồn dữ liệu và công cụ bên ngoài. MCP Toolbox for Databases là một cách triển khai của Google cho phép quản lý truy vấn cơ sở dữ liệu khai báo, cho phép bạn xác định các truy vấn đã được xác thực trước do chuyên gia tạo dưới dạng các công cụ có thể sử dụng lại. Thay vì cho phép LLM tạo các truy vấn có thể không an toàn, MCP Toolbox sẽ phân phát các truy vấn đã được phê duyệt trước bằng cách xác thực tham số, đảm bảo tính bảo mật, hiệu suất và độ tin cậy trong khi vẫn duy trì tính linh hoạt cho các tác nhân AI.
Phương pháp truyền thống:
# LLM generates query (may be incorrect/unsafe)
query = llm.generate("SELECT * FROM users WHERE...")
db.execute(query) # Risk of errors/SQL injection
Phương pháp MCP:
# Pre-validated query definition
- name: get_industries
description: Fetch all industries from database
query: |
MATCH (i:Industry)
RETURN i.name, i.id
Lợi ích:
- Được các chuyên gia xác thực trước
- An toàn trước các cuộc tấn công tiêm mã
- Đã tối ưu hoá hiệu suất
- Được quản lý tập trung
- Có thể dùng lại trên nhiều nhân viên hỗ trợ
Kết hợp thành sản phẩm
Sự kết hợp giữa GraphRAG + Multi-Agent Framework của ADK + MCP tạo ra một hệ thống mạnh mẽ:
- Root Agent nhận được truy vấn của người dùng
- Chuyển đến nhân viên hỗ trợ chuyên trách dựa trên loại câu hỏi
- Nhân viên hỗ trợ sử dụng các công cụ MCP để tìm nạp dữ liệu một cách an toàn
- Cấu trúc biểu đồ cung cấp bối cảnh phong phú
- LLM tạo ra câu trả lời dựa trên thông tin thực tế và có thể giải thích
Giờ đây, khi đã hiểu rõ về cấu trúc, hãy bắt đầu xây dựng!
3. Thiết lập dự án trên Google Cloud
Tạo dự án
- 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.
- Đả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 trên một dự án hay không .
- Bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud. Nhấp vào Kích hoạt Cloud Shell ở đầu bảng điều khiển Google Cloud. 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.

- 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
- 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
- Nếu bạn chưa đặt dự án, hãy dùng lệnh sau để đặt:
gcloud config set project <YOUR_PROJECT_ID>
Tham khảo tài liệu để biết các lệnh và cách sử dụng gcloud.
Tuyệt vời! Bây giờ, chúng ta đã sẵn sàng chuyển sang bước tiếp theo: tìm hiểu tập dữ liệu.
4. Tìm hiểu về tập dữ liệu Công ty
Trong lớp học lập trình này, chúng ta sẽ sử dụng cơ sở dữ liệu Neo4j chỉ đọc được điền sẵn dữ liệu về hoạt động đầu tư và công ty từ Sơ đồ tri thức của Diffbot.
Tập dữ liệu này chứa:
- 237.358 nút đại diện cho:
- Tổ chức (công ty)
- Mọi người (nhà quản lý, nhân viên)
- Bài viết (tin tức và lượt đề cập)
- Ngành
- Công nghệ
- Nhà đầu tư
- Các mối quan hệ bao gồm:
INVESTED_IN– Mối liên hệ với các khoản đầu tưCOMPETES_WITH– Mối quan hệ cạnh tranhMENTIONS– Tài liệu tham khảo về bài viếtWORKS_AT– Mối quan hệ việc làmIN_INDUSTRY– Phân loại ngành

Truy cập vào Cơ sở dữ liệu minh hoạ
Trong lớp học lập trình này, chúng ta sẽ sử dụng một phiên bản minh hoạ được lưu trữ. Thêm thông tin đăng nhập này vào ghi chú của bạn:
URI: neo4j+s://demo.neo4jlabs.com
Username: companies
Password: companies
Database: companies
Quyền truy cập qua trình duyệt:
Bạn có thể khám phá dữ liệu một cách trực quan tại: https://demo.neo4jlabs.com:7473
Đăng nhập bằng thông tin đăng nhập tương tự và thử chạy:
// Sample query to explore the graph
MATCH (o:Organization)-[:HAS_COMPETITOR]->(competitor:Organization)
RETURN o.name, competitor.name
LIMIT 10
Trực quan hoá cấu trúc biểu đồ
Hãy thử truy vấn này trong Neo4j Browser để xem các mẫu mối quan hệ:
// Find investors and their portfolio companies
MATCH (investor:Organization)-[:HAS_INVESTOR]->(company:Organization)
WITH investor, collect(company.name) as portfolio
RETURN investor.name, size(portfolio) as num_investments, portfolio
ORDER BY num_investments DESC
LIMIT 5
Truy vấn này trả về 5 nhà đầu tư hoạt động tích cực nhất và danh mục đầu tư của họ.
Tại sao nên dùng cơ sở dữ liệu này cho GraphRAG?
Tập dữ liệu này rất phù hợp để minh hoạ GraphRAG vì:
- Mối quan hệ đa dạng: Mối kết nối phức tạp giữa các thực thể
- Dữ liệu ngoài đời thực: Công ty, con người và bài viết tin tức thực tế
- Truy vấn nhiều bước: Yêu cầu đi qua nhiều loại mối quan hệ
- Dữ liệu tạm thời: Bài viết có dấu thời gian để phân tích dựa trên thời gian
- Phân tích cảm xúc: Điểm cảm xúc được tính toán trước cho các bài viết
Giờ khi bạn đã hiểu cấu trúc dữ liệu, hãy thiết lập môi trường phát triển!
5. Sao chép kho lưu trữ và định cấu hình môi trường
Sao chép kho lưu trữ
Trong cửa sổ dòng lệnh Cloud Shell, hãy chạy:
# Clone the repository
git clone https://github.com/sidagarwal04/neo4j-adk-multiagents.git
# Navigate into the directory
cd neo4j-adk-multiagents
Khám phá cấu trúc kho lưu trữ
Hãy dành chút thời gian để tìm hiểu bố cục dự án:
neo4j-adk-multiagents/
├── investment_agent/ # Main agent code
│ ├── agent.py # Agent definitions
│ ├── tools.py # Custom tool functions
│ └── .adk/ # ADK configuration
│ └── tools.yaml # MCP tool definitions
├── main.py # Application entry point
├── setup_tools_yaml.py # Configuration generator
├── requirements.txt # Python dependencies
├── example.env # Environment template
└── README.md # Project documentation
Thiết lập môi trường ảo
Trước khi tạo và kích hoạt môi trường ảo Python, hãy đảm bảo bạn đã cài đặt gói uv trong hệ thống:
# Install uv if not already installed
pip install uv
Tạo và kích hoạt môi trường ảo Python bằng uv:
# Create virtual environment
uv venv
# Activate the environment
source .venv/bin/activate # On macOS/Linux
# or
.venv\Scripts\activate # On Windows
Bạn sẽ thấy (.venv) được thêm vào trước dấu nhắc của thiết bị đầu cuối.
Cài đặt các phần phụ thuộc
Cài đặt tất cả các gói bắt buộc:
uv pip install -r requirements.txt
Các phần phụ thuộc chính bao gồm:
google-adk>=1.21.0 # Agent Development Kit
neo4j>=6.0.3 # Neo4j Python driver
python-dotenv>=1.0.0 # Environment variables
Định cấu hình các biến môi trường
- Tạo tệp
.env:
cp example.env .env
- Chỉnh sửa tệp
.env:
Nếu bạn đang sử dụng Cloud Shell, hãy nhấp vào Open Editor (Mở trình chỉnh sửa) trong thanh công cụ, sau đó chuyển đến .env rồi cập nhật:
# Neo4j Configuration (Demo Database)
NEO4J_URI=neo4j+ssc://demo.neo4jlabs.com
NEO4J_USERNAME=companies
NEO4J_PASSWORD=companies
NEO4J_DATABASE=companies
# Google AI Configuration
# Choose ONE of the following options:
# Option 1: Google AI API (Recommended)
GOOGLE_GENAI_USE_VERTEXAI=0
GOOGLE_API_KEY=your_api_key_here # Get from https://aistudio.google.com/app/apikey
# Option 2: Vertex AI (If using GCP)
# GOOGLE_GENAI_USE_VERTEXAI=1
# GOOGLE_CLOUD_PROJECT=your-project-id
# GOOGLE_CLOUD_LOCATION=us-central1
# ADK Configuration
GOOGLE_ADK_MODEL=gemini-3-pro-preview # or gemini-3-flash-preview
# MCP Toolbox Configuration
MCP_TOOLBOX_URL=https://toolbox-990868019953.us-central1.run.app/mcp/sse
- Cấu hình MCP Toolbox (Được định cấu hình sẵn – không cần chạy):
Trong phòng thí nghiệm này, Hộp công cụ MCP đã được lưu trữ và định cấu hình sẵn, vì vậy bạn không cần tạo hoặc quản lý tệp tools.yaml cục bộ.
Thông thường, bạn sẽ chạy lệnh sau để tạo tools.yaml từ các biến môi trường sau khi cập nhật investment_agent/.adk/tools.yaml.template nếu cần:
python setup_tools_yaml.py
Thao tác này sẽ tạo investment_agent/.adk/tools.yaml với thông tin đăng nhập Neo4j được định cấu hình đúng cách cho MCP Toolbox.
Bạn chỉ chạy tập lệnh trên nếu:
- Bạn đang tự lưu trữ MCP Toolbox
- Bạn đang kết nối với một cơ sở dữ liệu hoặc tập dữ liệu Neo4j khác
- Bạn muốn xác định các công cụ hoặc thông tin đăng nhập tuỳ chỉnh
Trong những trường hợp đó, bạn cần cập nhật URL của MCP Toolbox và cấu hình tools.yaml cho phù hợp.
Xác minh cấu hình
Kiểm tra để đảm bảo bạn đã thiết lập mọi thứ đúng cách:
# Verify .env file exists
ls -la .env
# Verify tools.yaml was generated
ls -la investment_agent/.adk/tools.yaml
# Test Python environment
python -c "import google.adk; print('ADK installed successfully')"
# Test Neo4j connection
python -c "from neo4j import GraphDatabase; print('Neo4j driver installed')"
Môi trường phát triển của bạn hiện đã được định cấu hình đầy đủ! Tiếp theo, chúng ta sẽ tìm hiểu về cấu trúc nhiều tác nhân.
6. Tìm hiểu về Cấu trúc nhiều tác nhân
Hệ thống bốn tác nhân
Hệ thống nghiên cứu đầu tư của chúng tôi sử dụng cấu trúc nhiều tác nhân theo hệ thống phân cấp với 4 tác nhân chuyên biệt phối hợp với nhau để trả lời các câu hỏi phức tạp về công ty, nhà đầu tư và thông tin tình báo thị trường.
┌──────────────┐
│ Root Agent │ ◄── User Query
└──────┬───────┘
│
┌────────────────┼────────────────┐
│ │ │
┌─────▼─────┐ ┌────▼─────┐ ┌────▼──────────┐
│ Graph DB │ │ Investor │ │ Investment │
│ Agent │ │ Research │ │ Research │
└───────────┘ │ Agent │ │ Agent │
└──────────┘ └───────────────┘
- Tác nhân gốc (Điều phối viên):
Root Agent đóng vai trò là đơn vị điều phối thông minh của toàn bộ hệ thống. LLM nhận các truy vấn của người dùng, phân tích ý định và chuyển các yêu cầu đến tác nhân chuyên biệt phù hợp nhất. Hãy coi tính năng này như một người quản lý dự án hiểu rõ thành viên nào trong nhóm phù hợp nhất với từng nhiệm vụ. Công cụ này cũng xử lý việc tổng hợp phản hồi, định dạng kết quả dưới dạng bảng hoặc biểu đồ khi được yêu cầu và duy trì bối cảnh trò chuyện trên nhiều truy vấn. Tác nhân gốc luôn ưu tiên các tác nhân chuyên biệt hơn tác nhân cơ sở dữ liệu chung, đảm bảo các truy vấn được xử lý bởi thành phần chuyên gia nhất hiện có.
- Graph Database Agent:
Graph Database Agent là mối kết nối trực tiếp của bạn với các chức năng biểu đồ mạnh mẽ của Neo4j. Nó hiểu lược đồ cơ sở dữ liệu, tạo truy vấn Cypher từ ngôn ngữ tự nhiên và thực thi các hoạt động duyệt qua đồ thị phức tạp. Trợ lý này chuyên về các câu hỏi có cấu trúc, các câu hỏi tổng hợp và các câu hỏi suy luận nhiều bước trên biểu đồ tri thức. Đây là chuyên gia dự phòng khi các truy vấn yêu cầu logic tuỳ chỉnh mà các công cụ được xác định trước không thể xử lý, khiến nó trở thành yếu tố cần thiết cho việc phân tích khám phá và các truy vấn phân tích phức tạp không được dự đoán trong thiết kế hệ thống.
- Nhân viên nghiên cứu nhà đầu tư:
Nhân viên nghiên cứu nhà đầu tư chỉ tập trung vào mối quan hệ đầu tư và phân tích danh mục đầu tư. Công cụ này có thể phát hiện những người đã đầu tư vào các công ty cụ thể bằng cách so khớp tên chính xác, truy xuất danh mục đầu tư đầy đủ của nhà đầu tư cho thấy tất cả các khoản đầu tư của họ và phân tích các mô hình đầu tư trên nhiều ngành. Nhờ chuyên môn hoá này, mô hình có thể trả lời các câu hỏi như "Ai đã đầu tư vào ByteDance?" hoặc "Sequoia Capital còn đầu tư vào công ty nào khác?" một cách cực kỳ hiệu quả. Tác nhân này sử dụng các hàm Python tuỳ chỉnh để trực tiếp truy vấn cơ sở dữ liệu Neo4j về các mối quan hệ liên quan đến nhà đầu tư.
- Nhân viên nghiên cứu đầu tư:
Tác nhân nghiên cứu đầu tư tận dụng Bộ công cụ Giao thức ngữ cảnh mô hình (MCP) để truy cập vào các truy vấn đã được xác thực trước và do chuyên gia tạo. Công cụ này có thể tìm nạp tất cả các ngành hiện có, truy xuất các công ty trong những ngành cụ thể, tìm bài viết có phân tích tình cảm, khám phá những thông tin đề cập đến tổ chức trong tin tức và lấy thông tin về những người làm việc tại các công ty. Không giống như Graph Database Agent (Tác nhân cơ sở dữ liệu đồ thị) tạo truy vấn một cách linh hoạt, tác nhân này sử dụng các truy vấn an toàn, được tối ưu hoá và xác định trước, được quản lý và xác thực tập trung. Điều này giúp quy trình trở nên an toàn và hiệu quả đối với các quy trình nghiên cứu phổ biến.
7. Chạy và kiểm thử hệ thống nhiều tác nhân
Khởi chạy ứng dụng
Giờ đây, bạn đã hiểu rõ cấu trúc, hãy chạy toàn bộ hệ thống và tương tác với hệ thống đó.
Khởi động giao diện web ADK:
# Make sure you're in the project directory with activated virtual environment
cd ~/neo4j-adk-multiagents
source .venv/bin/activate # If not already activated
# Launch the application
uv run adk web
Bạn sẽ thấy kết quả tương tự như sau:
INFO: Started server process [2542]
INFO: Waiting for application startup.
+----------------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://127.0.0.1:8000. |
+----------------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Sau khi thấy máy chủ khởi động thành công, hãy mở trình duyệt và chuyển đến http://127.0.0.1:8000 để truy cập vào ứng dụng.
Cụm từ tìm kiếm kiểm thử và hành vi dự kiến
Hãy khám phá các khả năng của hệ thống bằng các truy vấn ngày càng phức tạp:
Truy vấn cơ bản (Một nhân viên)
Câu hỏi 1: Khám phá các ngành
What industries are available in the database?
Hành vi dự kiến:
- Root Agent chuyển đến Investment Research Agent
- Sử dụng công cụ MCP:
get_industries() - Trả về danh sách đã được định dạng của tất cả các ngành
Những điều cần quan sát:
Trong giao diện người dùng ADK, hãy mở rộng thông tin chi tiết về quá trình thực thi để xem:
- Quyết định lựa chọn tác nhân
- Cuộc gọi công cụ:
get_industries() - Kết quả thô từ Neo4j
- Câu trả lời được định dạng
Câu hỏi 2: Tìm nhà đầu tư
Who invested in ByteDance?
Hành vi dự kiến:
- Nhân viên hỗ trợ cấp cao xác định đây là câu hỏi liên quan đến nhà đầu tư
- Đường dẫn đến Tác nhân nghiên cứu nhà đầu tư
- Sử dụng công cụ:
find_investor_by_name("ByteDance") - Trả về nhà đầu tư cùng với loại nhà đầu tư (Cá nhân/Tổ chức)
Những điều cần biết:
- Danh sách các nhà đầu tư có liên kết với ByteDance
- Mỗi nhà đầu tư được trả về cùng với tên và loại pháp nhân (Cá nhân hoặc Tổ chức)
- Bản tóm tắt ngắn gọn, dễ đọc về kết quả
- Một lời nhắc tiếp theo đề nghị khám phá các khoản đầu tư hoặc danh mục đầu tư có liên quan (có thể)
Câu hỏi 3: Công ty theo ngành
Show me companies in the Artificial Intelligence industry
Hành vi dự kiến:
- Root Agent chuyển đến Investment Research Agent
- Sử dụng công cụ MCP:
get_companies_in_industry("Artificial Intelligence") - Trả về danh sách các công ty AI kèm theo mã nhận dạng và ngày thành lập
Những điều cần quan sát:
- Lưu ý cách nhân viên hỗ trợ sử dụng tính năng so khớp tên ngành chính xác
- Kết quả bị giới hạn để tránh xuất ra quá nhiều thông tin
- Dữ liệu được định dạng rõ ràng để dễ đọc
Truy vấn trung gian (Nhiều bước trong một tác nhân)
Câu hỏi 4: Phân tích tình cảm
Find articles with positive sentiment from January 2023
Hành vi dự kiến:
- Đường dẫn đến Tác nhân nghiên cứu đầu tư
- Sử dụng công cụ MCP:
get_articles_with_sentiment(0.7, 2023, 1) - Trả về các bài viết có tiêu đề, điểm số cảm xúc và ngày xuất bản
Mẹo gỡ lỗi:
Xem các tham số gọi công cụ:
min_sentiment: 0,7 (tác nhân diễn giải "tích cực" là >= 0,7)year: 2023month: 1
Câu hỏi 5: Truy vấn cơ sở dữ liệu phức tạp
How many companies are in the database?
Hành vi dự kiến:
- Root Agent định tuyến đến Graph Database Agent
- Tác nhân gọi
get_neo4j_schema()trước tiên để hiểu cấu trúc - Tạo Cypher:
MATCH (c:Company) RETURN count(c) - Thực thi truy vấn và trả về số lượng
Câu trả lời dự kiến:
There are 46,088 companies in the database.
Truy vấn nâng cao (Điều phối nhiều tác nhân)
Câu hỏi 6: Phân tích danh mục
Who invested in ByteDance and what else have they invested in?
Hành vi dự kiến:
Đây là một truy vấn gồm 2 phần và cần có sự phối hợp của nhân viên hỗ trợ:
- Bước 1: Root Agent → Investor Research Agent
- Cuộc gọi
find_investor_by_name("ByteDance") - Gets investor list: [Rong Yue, Wendi Murdoch]
- Bước 2: Đối với mỗi nhà đầu tư → Investor Research Agent (Nhân viên nghiên cứu nhà đầu tư)
- Cuộc gọi
find_investor_by_id(investor_id) - Truy xuất toàn bộ danh mục đầu tư
- Bước 3: Root Agent tổng hợp và định dạng
Những điều cần biết:
- Danh sách các nhà đầu tư đã đầu tư vào ByteDance
- Đối với mỗi nhà đầu tư:
- Tên và loại thực thể (Cá nhân hoặc Tổ chức)
- Danh sách các công ty khác mà họ đã đầu tư, dựa trên dữ liệu hiện có
- Bản tóm tắt có cấu trúc, dễ đọc, được nhóm theo nhà đầu tư
Những điều cần quan sát:
- Nhiều lệnh gọi công cụ theo trình tự
- Bối cảnh được duy trì giữa các bước
- Kết quả được tổng hợp một cách thông minh
Câu hỏi 7: Nghiên cứu đa miền
What are 5 AI companies mentioned in positive articles, and who are their CEOs?
Hành vi dự kiến:
Câu hỏi phức tạp này đòi hỏi nhiều tác nhân và công cụ:
- Bước 1: Trợ lý nghiên cứu đầu tư
get_companies_in_industry("Artificial Intelligence")- Trả về danh sách các công ty AI
- Bước 2: Trợ lý nghiên cứu đầu tư
get_articles_with_sentiment(0.8)- Trả về các bài viết tích cực
- Bước 3: Bộ lọc Root Agent
- Xác định những công ty AI xuất hiện trong các bài viết tích cực
- Chọn 5
- Bước 4: Trợ lý nghiên cứu đầu tư
get_people_in_organizations([company_names], "CEO")- Trả về thông tin về Giám đốc điều hành
- Bước 5: Root Agent định dạng câu trả lời
Những điều cần biết:
- Danh sách 5 công ty trong ngành Trí tuệ nhân tạo
- Chỉ những công ty xuất hiện trong các bài viết có điểm số tích cực
- Đối với mỗi công ty:
- Tên công ty
- Ngành
- Tên Giám đốc điều hành
- Điểm cảm xúc tổng hợp hoặc đại diện
Những điều cần quan sát:
- Nhiều lệnh gọi công cụ trên nhiều tác nhân
- Logic lọc và kết hợp dữ liệu
Câu hỏi 8: Phân tích cạnh tranh
Who are YouTube's main competitors?
Hành vi dự kiến:
- Root Agent chuyển đến Graph Database Agent (truy vấn mối quan hệ)
- Tác nhân tạo Cypher được tăng cường bằng GraphRAG:
MATCH (c:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor)
RETURN competitor.name as competitor_name
- Trả về danh sách các công ty cạnh tranh
Câu trả lời dự kiến:
YouTube's main competitors are:
- TikTok (ByteDance)
- Dailymotion
- Twitter
- BuzzFeed
- Mixer
- OpenAI (for video content)
Câu hỏi tiếp theo dựa trên bối cảnh
Câu hỏi 9: Câu hỏi tiếp theo (Sau câu hỏi 8)
Which investors funded both YouTube and its competitors?
Hành vi dự kiến:
- Root Agent ghi nhớ bối cảnh trước đó (YouTube và các đối thủ cạnh tranh)
- Đường dẫn đến Tác nhân nghiên cứu nhà đầu tư
- Đối với YouTube và mỗi đối thủ cạnh tranh, hãy tìm nhà đầu tư
- Xác định những nhà đầu tư xuất hiện trong nhiều công ty
Những điều cần biết:
- Hệ thống sử dụng ngữ cảnh đàm thoại hiện có (YouTube và các đối thủ cạnh tranh)
- Danh sách các nhà đầu tư đã đầu tư vào nhiều công ty trong môi trường cạnh tranh này
- Đối với mỗi nhà đầu tư:
- Tên nhà đầu tư
- Danh sách theo nhóm gồm những công ty có liên quan mà họ đã đầu tư
- Bản tóm tắt ngắn gọn mang tính diễn giải, nêu bật điểm trùng lặp hoặc các mẫu chiến lược (có thể)
Câu hỏi 10: Tóm tắt nghiên cứu
Summarize our research findings so far
Hành vi dự kiến:
- Nhân viên hỗ trợ cấp cao xem xét nhật ký trò chuyện
- Tổng hợp các kết quả chính từ các truy vấn trước
- Cung cấp bản tóm tắt mạch lạc
Những điều cần biết:
- Bản tóm tắt ngắn gọn, có cấu trúc rõ ràng về thông tin chi tiết thu thập được từ các truy vấn trước
- Các kết quả chính được nhóm theo chủ đề (tổng quan về ngành, phân tích công ty, mức độ hài lòng, cạnh tranh, khả năng lãnh đạo)
- Xoá dấu đầu dòng làm nổi bật:
- Các ngành được khám phá
- Các công ty và nhà đầu tư nổi bật
- Mô hình đầu tư giữa các công ty
- Xu hướng tâm lý thị trường
- Một câu chuyện mạch lạc phản ánh quá trình tổng hợp dựa trên ngữ cảnh trong suốt phiên trò chuyện
Tìm hiểu về các lượt tương tác của tác nhân trong Chế độ xem gỡ lỗi
Giao diện web ADK cung cấp thông tin chi tiết về khả năng thực thi. Sau đây là những điều cần lưu ý:
- Tiến trình sự kiện
Cho thấy dòng thời gian:
[USER] Query received
[ROOT_AGENT] Analyzing query intent
[ROOT_AGENT] Routing to investment_research_agent
[INVESTMENT_RESEARCH_AGENT] Tool call: get_companies_in_industry
[TOOL] Executing with params: {"industry_name": "Artificial Intelligence"}
[TOOL] Returned 47 results
[INVESTMENT_RESEARCH_AGENT] Formatting response
[ROOT_AGENT] Presenting to user
- Thông tin chi tiết về lệnh gọi công cụ
Nhấp vào một lệnh gọi công cụ bất kỳ để xem:
- Tên chức năng
- Thông số đầu vào
- Giá trị trả về
- Thời gian thực thi
- Mọi lỗi
- Đưa ra quyết định của tác nhân
Quan sát quá trình suy luận của LLM:
- Lý do chọn một tác nhân cụ thể
- Cách hệ thống diễn giải cụm từ tìm kiếm
- Những công cụ mà công ty này đã cân nhắc
- Lý do kết quả được định dạng theo một cách nhất định
Thông tin chi tiết và điểm chung
Mẫu định tuyến truy vấn:
- Các từ khoá như "nhà đầu tư", "đầu tư" → Trợ lý nghiên cứu nhà đầu tư
- Các từ khoá như "ngành", "công ty", "bài viết" → Investment Research Agent (Đại lý nghiên cứu đầu tư)
- Hoạt động tổng hợp, số lượng, logic phức tạp → Graph Database Agent
Lưu ý về hiệu suất:
- Các công cụ MCP thường nhanh hơn (truy vấn được tối ưu hoá trước)
- Việc tạo Cypher phức tạp sẽ mất nhiều thời gian hơn (thời gian suy nghĩ của LLM)
- Nhiều lệnh gọi công cụ làm tăng độ trễ nhưng mang lại kết quả phong phú hơn
Xử lý lỗi:
Nếu một truy vấn không thành công:
- Nhân viên giải thích vấn đề đã xảy ra
- Đề xuất nội dung chỉnh sửa (ví dụ: "Không tìm thấy tên công ty, hãy kiểm tra lỗi chính tả")
- Có thể thử các phương pháp thay thế
Mẹo để thử nghiệm hiệu quả
- Bắt đầu đơn giản: Kiểm thử chức năng cốt lõi của từng tác nhân trước khi đưa ra các truy vấn phức tạp
- Sử dụng câu hỏi nối tiếp: Kiểm tra khả năng lưu giữ bối cảnh bằng các câu hỏi nối tiếp
- Theo dõi việc định tuyến: Theo dõi nhân viên nào xử lý từng câu hỏi để hiểu rõ logic
- Kiểm tra Lệnh gọi công cụ: Xác minh rằng các tham số được trích xuất chính xác từ ngôn ngữ tự nhiên
- Kiểm thử các trường hợp hiếm gặp: Thử các cụm từ tìm kiếm mơ hồ, lỗi chính tả hoặc yêu cầu bất thường
Giờ đây, bạn đã có một hệ thống GraphRAG đa tác nhân hoạt động đầy đủ! Hãy thử đặt câu hỏi của riêng bạn để khám phá các khả năng của Gemini.
8. Dọn dẹp
Để tránh bị tính phí cho tài khoản Google Cloud của bạn đối với các tài nguyên được dùng trong bài đăng này, hãy làm theo các bước sau:
- Trong Google Cloud Console, hãy chuyển đến trang Quản lý tài nguyên.
- 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á.
- Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Tắt để xoá dự án.
9. Xin chúc mừng
🎉 Xin chúc mừng! Bạn đã tạo thành công một hệ thống GraphRAG có nhiều tác nhân với chất lượng sản xuất bằng cách sử dụng Agent Development Kit (Bộ công cụ phát triển tác nhân) của Google, Neo4j và MCP Toolbox!
Bằng cách kết hợp các khả năng điều phối thông minh của ADK với mô hình dữ liệu phong phú về mối quan hệ của Neo4j và tính an toàn của các truy vấn MCP đã được xác thực trước, bạn đã tạo ra một hệ thống tinh vi vượt xa các truy vấn cơ sở dữ liệu đơn giản – hệ thống này hiểu được bối cảnh, lý do trong các mối quan hệ phức tạp và điều phối các tác nhân chuyên biệt để cung cấp thông tin chi tiết toàn diện và chính xác.
Trong lớp học lập trình này, bạn đã hoàn thành những việc sau:
✅ Xây dựng hệ thống nhiều tác nhân bằng Bộ công cụ phát triển tác nhân (ADK) của Google với cơ chế điều phối theo hệ thống phân cấp
✅ Cơ sở dữ liệu biểu đồ Neo4j tích hợp để tận dụng các truy vấn nhận biết mối quan hệ và suy luận nhiều bước
✅ Triển khai MCP Toolbox cho các truy vấn cơ sở dữ liệu an toàn, được xác thực trước dưới dạng các công cụ có thể dùng lại
✅ Tạo các tác nhân chuyên biệt để nghiên cứu nhà đầu tư, phân tích hoạt động đầu tư và vận hành cơ sở dữ liệu đồ thị
✅ Thiết kế tính năng định tuyến thông minh để tự động uỷ quyền các câu hỏi cho nhân viên hỗ trợ chuyên gia phù hợp nhất
✅ Xử lý các kiểu dữ liệu phức tạp bằng cách sử dụng quy trình chuyển đổi tuần tự kiểu Neo4j phù hợp để tích hợp Python một cách liền mạch
✅ Áp dụng các phương pháp hay nhất về sản xuất cho thiết kế tác nhân, xử lý lỗi và gỡ lỗi hệ thống
Tiếp theo là gì?
Cấu trúc GraphRAG đa tác nhân này không chỉ giới hạn ở nghiên cứu đầu tư mà còn có thể mở rộng sang:
- Dịch vụ tài chính: Tối ưu hoá danh mục, đánh giá rủi ro, phát hiện hành vi gian lận
- Chăm sóc sức khoẻ: Điều phối việc chăm sóc bệnh nhân, phân tích tương tác thuốc, nghiên cứu lâm sàng
- Thương mại điện tử: Đề xuất phù hợp với từng người dùng, tối ưu hoá chuỗi cung ứng, thông tin chi tiết về khách hàng
- Pháp lý và việc tuân thủ: Phân tích hợp đồng, giám sát quy định, nghiên cứu án lệ
- Nghiên cứu học thuật: Tham khảo tài liệu nghiên cứu, khám phá cơ hội cộng tác, phân tích trích dẫn
- Thông tin tình báo doanh nghiệp: Phân tích đối thủ cạnh tranh, nghiên cứu thị trường, biểu đồ tri thức của tổ chức
Bất cứ nơi nào bạn có dữ liệu phức tạp có mối liên kết với nhau + kiến thức chuyên môn về miền + giao diện ngôn ngữ tự nhiên, sự kết hợp này giữa các hệ thống đa tác nhân ADK + biểu đồ tri thức Neo4j + các truy vấn được xác thực MCP có thể hỗ trợ thế hệ tiếp theo của các ứng dụng doanh nghiệp thông minh.
Khi Bộ công cụ phát triển tác nhân và các mô hình Gemini của Google tiếp tục phát triển, bạn sẽ có thể kết hợp các mẫu suy luận tinh vi hơn, tích hợp dữ liệu theo thời gian thực và các chức năng đa phương thức để xây dựng các hệ thống thực sự thông minh, nhận biết ngữ cảnh.
Tiếp tục khám phá, tiếp tục xây dựng và đưa các ứng dụng tác nhân thông minh của bạn lên một tầm cao mới!
Khám phá thêm các hướng dẫn thực hành về biểu đồ tri thức tại Neo4j GraphAcademy và khám phá các mẫu tác nhân bổ sung trong Kho mẫu ADK.
🚀 Bạn đã sẵn sàng xây dựng hệ thống tác nhân thông minh tiếp theo chưa?