Đừng Cho AI Agent Một Ô Tìm Kiếm: Chìa Khóa Nằm Ở Công Cụ Có Kiểu Dữ Liệu, Giới Hạn Cứng Và Cổng Chặn Không Thể Vượt Qua
Bài viết phân tích sâu về việc xây dựng một AI agent hiệu quả, không phải bằng vòng lặp tìm kiếm lại, mà bằng cách trang bị cho mô hình một bộ công cụ có ngữ nghĩa rõ ràng từ một lớp tri thức có cấu trúc. Tác giả thử nghiệm trên cùng một bộ dữ liệu để so sánh giữa một đường ống cố định, một agent chỉ có hộp tìm kiếm và một agent có đầy đủ công cụ, từ đó chứng minh rằng vốn từ vựng của công cụ quyết định sức mạnh suy luận của agent. Kết quả cho thấy agent chỉ thực sự tỏa sáng với các câu hỏi đa bước, trong khi đường ống cố định vẫn tốt hơn cho các truy vấn đơn giản. Điều quan trọng không kém là việc thiết kế một 'cổng chặn' (gate) để đảm bảo quyền quản trị và phát hiện mâu thuẫn vẫn sống sót ngay cả khi giao quyền điều khiển cho mô hình, dù lời tiên đoán ban đầu của tác giả là nó sẽ thất bại.

Đừng Cho AI Agent Một Ô Tìm Kiếm: Chìa Khóa Nằm Ở Công Cụ Có Kiểu Dữ Liệu, Giới Hạn Cứng Và Cổng Chặn Không Thể Vượt Qua
Trong bối cảnh "agentic RAG" trở thành từ khóa được nhắc đến nhiều nhất nhưng cũng bị lạm dụng nhiều nhất, bài viết này đi ngược lại xu hướng để trả lời câu hỏi thực chất: điều gì thực sự tạo nên sức mạnh cho một AI agent? Thay vì tập trung vào vòng lặp, tác giả đưa ra một luận điểm mạnh mẽ rằng khả năng suy luận của agent bị giới hạn bởi "vốn từ vựng" của các công cụ mà nó được trang bị, và giá trị thực sự nằm ở việc thiết kế các công cụ có ngữ nghĩa sâu, giới hạn cứng và một cơ chế quản trị không thể bị thuyết phục.
Bài viết là phần thứ ba trong một chuỗi nghiên cứu về hệ thống truy xuất tri thức, thử nghiệm trên cùng một bộ dữ liệu và hạ tầng Azure nhất quán. Kết quả thực nghiệm không chỉ làm rõ khi nào nên dùng agent, mà còn hé lộ một bất ngờ thú vị về khả năng tự giác tuân thủ quy tắc của các mô hình ngôn ngữ khi được giao quyền tự chủ.
Vấn đề của một đường ống cố định (Fixed Pipeline)
Ở phần trước, tác giả đã xây dựng một hệ thống truy xuất cố định, nơi mọi truy vấn đều chạy qua một quy trình hợp nhất: tìm kiếm lai (hybrid search) và duyệt đồ thị có kiểu dữ liệu (typed graph traversal). Kết quả được xếp hạng lại và mang theo các đường dẫn mối quan hệ như bằng chứng. Hệ thống này nhanh, rẻ, dễ kiểm toán và có thể dự đoán được.
Tuy nhiên, nó có một giới hạn cơ bản: kế hoạch truy xuất được đóng băng trước khi quá trình suy luận bắt đầu. Mọi thứ cần thiết cho câu trả lời phải được lấy về trước khi mô hình bắt đầu lý luận. Đối với hầu hết các câu hỏi, điều này là chính xác. Nhưng với một lớp câu hỏi phức tạp, bạn chỉ khám phá ra mình cần truy xuất gì sau khi đã hiểu một phần những gì đã truy xuất. Đây chính là lúc một đường ống cố định trở nên sai hình dạng.
Điều thú vị về hành vi của một người phân tích giỏi không phải là trí thông minh, mà là việc cô ấy truy xuất thông tin xen kẽ với suy luận, mỗi bước cung cấp thông tin cho bước tiếp theo.
Vốn từ vựng của công cụ quyết định sức mạnh của Agent
Luận điểm trung tâm của bài viết rất rõ ràng: sức mạnh suy luận của một agent bị giới hạn bởi vốn từ vựng của các công cụ của nó. Nếu bạn chỉ cho nó một ô tìm kiếm và quyền lặp lại, sự lặp lại chỉ mang lại những phỏng đoán được diễn đạt lại. Nhưng nếu bạn cho nó một ngôn ngữ giàu có từ một lớp tri thức có cấu trúc, với các mối quan hệ có kiểu dữ liệu, các cạnh đồ thị biết thời điểm chúng đúng, các thực thể được chuẩn hóa, thì sự lặp lại trở thành sự điều hướng thực sự.
So sánh giữa vòng lặp trên công cụ phẳng và vòng lặp trên ngữ nghĩa của lớp tri thức
Cùng một vòng lặp, nhưng khác nhau về vốn từ vựng: sự lặp lại trên một công cụ phẳng chỉ mang lại những phỏng đoán được diễn đạt lại; sự lặp lại trên ngữ nghĩa của lớp tri thức mang lại các bước xác minh. (Ảnh: tác giả)
Tám công cụ, một hợp đồng
Thay vì một hộp tìm kiếm đơn lẻ, tác giả thiết kế một bộ công cụ với đúng tám hàm, mỗi hàm phục vụ một mục đích ngữ nghĩa cụ thể từ lớp tri thức:
- search_evidence: tìm kiếm nguyên văn trong các tài liệu nguồn
- search_knowledge: tìm kiếm tri thức đã được quản lý và tổng hợp
- resolve_entity: xác định danh tính chuẩn hóa của một thực thể
- traverse: duyệt các mối quan hệ có kiểu dữ liệu và thời gian hiệu lực
- timeline: xem lịch sử thay đổi của một thực thể
- diff: xem sự khác biệt giữa hai mốc thời gian
- list_contradictions: liệt kê các mâu thuẫn đã được ghi nhận
- get_source: lấy ngữ cảnh đầy đủ của một tài liệu nguồn
Tất cả các công cụ này đều chỉ đọc (read-only). Agent có nhiệm vụ trả lời câu hỏi, không được phép ghi vào lớp tri thức mà nó trích dẫn. Đây là một quyết định thiết kế quan trọng để phân tách rõ ràng vai trò và giảm thiểu rủi ro.
Vòng lặp đơn giản nhưng được kiểm soát chặt chẽ
Vòng lặp agent trong bài viết này chỉ có khoảng tám mươi dòng mã, không sử dụng framework điều phối nào. Điều này là có chủ đích. Tác giả cần ba thuộc tính mà anh ta khó có được từ các giải pháp trừu tượng được quản lý sẵn:
-
Giới hạn chặn (hard bounds): Một giới hạn tối đa về số vòng lặp (8 vòng), giới hạn về số lần gọi một công cụ cụ thể (3 lần cho mỗi công cụ), và giới hạn về tổng số token. Khi vượt quá, agent buộc phải dừng và chuyển sang chế độ không trả lời.
-
Khoanh vùng phương thức (method scope): Mỗi lần gọi hàm là một phần của yêu cầu
/agent/query, tạo ra một dấu vết phân tán tiêu chuẩn. -
Bộ soạn nhạc không tin tưởng (a composer that distrusts the loop): Đây là lớp kiểm soát cuối cùng, không phụ thuộc vào việc mô hình có tự nguyện tuân thủ hay không. Nó quét dấu vết của agent để tìm thực thể có mâu thuẫn đang mở. Nếu tìm thấy, nó ghi đè lên câu trả lời bằng một chuỗi xác định sẵn, không thể thay đổi, rằng hệ thống không thể đưa ra câu trả lời do xung đột thông tin.
Kiến trúc của vòng lặp agent với các giới hạn cứng và cổng chặn
So sánh thực nghiệm: Ba "bộ não" truy xuất
Tác giả đã chạy một thử nghiệm đối chứng trên 15 câu hỏi với ba cấu hình khác nhau trên cùng một bộ dữ liệu:
- A - Đường ống cố định hợp nhất (fixed fused pipeline)
- B - Agent với chỉ hộp tìm kiếm (agent with search box only)
- C - Agent với đầy đủ công cụ (agent with full tools)
| Chỉ số (15 câu hỏi, gpt-5-mini) | A - Cố định | B - Search box | C - Full tools |
|---|---|---|---|
| Độ chính xác (mini-bước đơn) | 0.95 | 0.78 | 0.70 |
| Độ chính xác (mini-bước đa) | 0.83 | 1.00 | 0.92 |
| Độ chính xác trích dẫn | 0.25 | 0.29 | 0.19 |
| Số lần gọi công cụ TB | 0 | 1.9 | 5.1 |
| Số token TB | Không đo | ~6,000 | ~11,400 |
| Độ trễ TB | 31s | 14s | 29s |
Ba phát hiện quan trọng
-
Agent thua trên câu hỏi đơn giản: Đường ống cố định (A) thắng áp đảo trên các câu hỏi một bước (0.95 so với 0.70). Agent thường làm việc quá sức, định vị sai thực thể hoặc từ chối trả lời không cần thiết. Điều này chứng minh agent là một chuyên gia, và chuyên gia là một lựa chọn tồi cho các tác vụ mặc định.
-
Kết quả 1.00 của "search box" là một cái bẫy: Agent B đạt điểm cao nhất ở nhóm câu hỏi đa bước, nhưng khi đọc kỹ câu trả lời, nó chỉ đơn giản là ném vào câu trả lời những đoạn văn bản bằng chứng dài dòng, điều mà phép đo keyword-coverage ưu ái. Nó không thể đi qua mối quan hệ, không thể đọc dòng thời gian, và chỉ có thể đưa ra mâu thuẫn nếu các mảnh văn bản tình cờ làm rõ điều đó. Điểm 1.00 này là bằng chứng rõ ràng nhất cho thấy sự thô thiển của phép đo.
-
Giấy chứng nhận trích dẫn thấp là lỗi của nhãn dữ liệu: Độ chính xác trích dẫn thấp một phần vì bộ dữ liệu vàng (golden set) đặt tên một tập tối thiểu các nguồn dự kiến cho mỗi câu hỏi, trong khi các hệ thống thường trích dẫn thêm các tài liệu có liên quan khác mà nhãn không liệt kê.
Thử nghiệm từ chối: Quản trị có sống sót khi trao quyền cho agent?
Câu hỏi quan trọng nhất mà tác giả quan tâm: khi mô hình tự điều khiển vòng lặp của mình, liệu "cổng chặn mâu thuẫn" có sống sót hay không, hay một agent "hữu ích" sẽ tìm cách né tránh sự quản trị khi nó trở nên bất tiện?
Kết quả thật bất ngờ: lời tiên đoán của tác giả đã sai theo hướng tích cực. Trên ba câu hỏi gây tranh cãi, mọi cấu hình, kể cả agent không có chính sách, đều trình bày cả hai quan điểm thay vì âm thầm chọn một phe. Ngay cả khi tắt cổng chặn (policy OFF), tất cả bốn mô hình (gpt-4o-mini, gpt-4.1, gpt-5-mini, gpt-5) đều tuân theo lời nhắc hệ thống và từ chối trả lời đúng cách.
| Cấu hình (3 câu hỏi tranh cãi) | Trình bày cả hai quan điểm | Chọn một phe | Không trả lời |
|---|---|---|---|
| A - Cố định | 2 | 0 | 1 |
| B - Agent, search box | 3 | 0 | 0 |
| C - Agent, full tools, policy OFF | 3 | 0 | 0 |
| C - Agent, full tools, policy ON | 3 | 0 | 0 |
Mặc dù vậy, tác giả vẫn giữ cổng chặn vì ba lý do: biến "mô hình tuân thủ lần này" thành "hệ thống thực thi mọi lúc", nó vẫn chạy kiểm tra tính hợp lý mà lời nhắc không làm, và lý do quan trọng nhất: thất bại quản trị thực sự trong bảng này đến từ đường ống cố định khi nó trả về câu trả lời trống cho một câu hỏi được diễn đạt theo cách thân thiện. Cổng chặn của nó phụ thuộc vào việc truy xuất làm nổi bật khái niệm tranh cãi, và cách diễn đạt đó đã không truy xuất được nó.
Quản trị phụ thuộc vào cách diễn đạt chạm đúng vào một đoạn văn bản chính là sự mong manh mà chuỗi bài viết này đang dần loại bỏ.
Hai máy chủ lưu trữ cho cùng một hợp đồng
Một điểm đáng chú ý khác là khả năng di chuyển của hợp đồng bộ công cụ. Tác giả đã chứng minh cùng một bộ tám công cụ có thể chạy hoàn hảo trên hai nền tảng khác nhau:
- Vòng lặp tùy chỉnh (custody loop): Nơi tác giả kiểm soát hoàn toàn cách điều phối, cần thiết cho các thí nghiệm.
- Microsoft Foundry Agent Service: Nền tảng được quản lý, giao tiếp với giao thức MCP một cách tự nhiên.
Thử nghiệm trên Foundry Agent Service đã tạo ra một câu trả lời tương đương với vòng lặp tùy chỉnh, chứng minh rằng giá trị nằm ở bộ công cụ và lớp tri thức, không phải ở vòng lặp hay nền tảng.
Chi phí và sự lựa chọn mô hình
Về chi phí
Lời tiên đoán của tác giả về chi phí cũng sai. Anh ta dự kiến agent sẽ chậm hơn đường ống cố định một cấp độ lớn về thời gian thực hiện. Nhưng trên thực tế, agent chỉ tốn thêm token, còn độ trễ gần như tương đương (29 giây so với 31 giây). Điều này là do đường ống cố định trong phần 2 cũng sử dụng hai lần gọi mô hình suy luận (reasoning model) cho quá trình xếp hạng lại và tạo câu trả lời.
Về mô hình
Tác giả đã giữ nguyên toàn bộ hệ thống và chỉ thay đổi mô hình. Kết quả cho thấy một sự khác biệt lớn giữa các mô hình:
| Mô hình | Độ chính xác (đơn) | Độ chính xác (đa) | Số lần gọi TB | Số token TB | Độ trễ TB |
|---|---|---|---|---|---|
| gpt-4o-mini | 0.36 | 0.58 | 3.3 | ~5,600 | 13s |
| gpt-4.1 | 0.78 | 0.75 | 6.7 | ~13,800 | 17s |
| gpt-5-mini | 0.70 | 0.92 | 5.1 | ~11,400 | 29s |
| gpt-5 | 0.61 | 0.75 | 7.1 | ~19,400 | 40s |
gpt-5-mini là điểm lý tưởng (sweet spot) cho loại hệ thống tri thức agentic này: câu trả lời đa bước tốt nhất, sử dụng công cụ tốt và chi phí hợp lý. Trong khi gpt-5, mô hình đắt nhất, không tạo ra giá trị tương xứng cho nhiệm vụ này. Điều thú vị là khả năng từ chối (refusal) đều là 3/3 cho tất cả các mô hình, cho thấy quản trị không phụ thuộc vào việc lựa chọn mô hình.
Chạy cùng một hệ thống với bốn mô hình khác nhau trên cùng một tài nguyên
Một tài khoản, bốn mô hình - gpt-4o-mini, gpt-4.1, gpt-5-mini và gpt-5 trên cùng một tài nguyên. Việc chọn mô hình là một nút điều chỉnh cấu hình, không phải là viết lại hệ thống. (Ảnh: tác giả)
Khi nào không nên dùng Agent?
Đây là phần kết thúc mà mọi bài viết về agent nên có nhưng hiếm khi cung cấp: agent thường không nên được chạy.
Mọi dữ liệu đo được đều chỉ ra điều tương tự. Đường ống cố định đạt điểm cao nhất cho các câu hỏi một bước (0.95 so với 0.70), chi phí ít token hơn và dễ dự đoán hơn. Nó cũng không nhanh hơn agent, nhưng nó là lựa chọn mặc định đúng đắn vì nó tốt hơn và rẻ hơn cho hầu hết các câu hỏi thông thường, và nó tạo ra một hệ thống có thể kiểm toán được.
Cách sử dụng đúng đắn là xây dựng một kiến trúc phân lớp:
- Làn đường mặc định (fast lane): Sử dụng đường ống cố định cho các câu hỏi đơn giản, thông dụng. Nhanh, chính xác và dễ hiểu.
- Làn đường leo thang (escalation lane): Sử dụng agent có đầy đủ công cụ cho các câu hỏi đa bước phức tạp, nơi kế hoạch truy xuất phải thay đổi giữa chừng dựa trên sự hiểu biết ban đầu.
Đây là một hệ thống phân cấp thông minh, giống như một tổ chức thực sự, nơi các câu hỏi được định tuyến đến đúng "chuyên gia" dựa trên độ phức tạp.
Kết luận cho độc giả Việt Nam
Bài viết này mang lại một bài học quý giá cho cộng đồng phát triển AI tại Việt Nam, nơi mà từ khóa "agent" đang trở nên phổ biến một cách nhanh chóng. Thay vì chạy theo phong trào và gắn một "vòng lặp" vào hệ thống tìm kiếm, giá trị thực sự nằm ở việc đầu tư xây dựng một lớp tri thức có cấu trúc tốt (knowledge layer) với các mối quan hệ rõ ràng, và thiết kế các công cụ có ngữ nghĩa phong phú để mô hình có thể "nói chuyện" với lớp tri thức đó.
Một hệ thống agent mạnh mẽ không đến từ một vòng lặp phức tạp hay một mô hình ngôn ngữ lớn nhất. Nó đến từ một bộ công cụ được thiết kế tốt, các giới hạn cứng để đảm bảo tính an toàn, và một cơ chế quản trị có thể kiểm toán được, hoạt động độc lập với sự tự nguyện của mô hình. Và quan trọng nhất: hãy biết khi nào không nên dùng agent. Đôi khi, một đường ống đơn giản, có thể dự đoán được vẫn là lựa chọn tốt nhất.


