learningai.vn
VI
Phần 4 · Chương 11

Khi Chatbot Biết Dùng Công Cụ

Thời gian đọc: 12 phút

Khi có công cụ và biết lặp lại các bước, mô hình không chỉ trả lời mà còn có thể làm việc. Nhưng nó vẫn có thể sai, nên bạn cần kiểm tra kết quả.

Hãy hình dung sự khác nhau giữa một người bạn rất hiểu biết đang nói chuyện với bạn qua điện thoại và một trợ lý riêng đang ngồi ngay tại bàn làm việc của bạn. Gọi cho người bạn ấy rất hữu ích. Bạn đặt câu hỏi, người ấy đưa ra một câu trả lời hợp lý, rồi cuộc gọi kết thúc. Nhưng người bạn đó chỉ có thể nói chuyện với bạn. Người ấy không thể tự gọi điện đặt khách sạn, không thể tìm thông tin trong đống hồ sơ, cũng không thể thử cách khác nếu cách đầu tiên không hiệu quả. Một trợ lý ngồi ngay tại bàn thì khác. Người ấy có thể gọi điện cho người khác, tra cứu trong tủ hồ sơ, và theo dõi danh sách việc cần làm. Khi bạn nói: "Giúp mình lo chuyến công tác Đà Nẵng", người trợ lý sẽ không chỉ trả lời bằng một câu ngắn. Người ấy sẽ tìm chuyến bay, phát hiện một chuyến bị trùng với cuộc họp thứ Ba của bạn, kiểm tra lại lịch, chọn chuyến bay muộn hơn, rồi quay lại xác nhận với bạn. Ở mỗi bước, người ấy xem chuyện gì vừa xảy ra và quyết định nên làm gì tiếp theo. Vì vậy, mọi điều bạn sắp đọc về "agent" của AI thực chất chỉ nói về một thay đổi quan trọng: từ một hệ thống chỉ biết trả lời, AI tiến tới một hệ thống biết hành động, biết quan sát kết quả, rồi tiếp tục hành động.

"Agent" thật ra là gì

Người ta hay dùng từ agent (tác nhân) như thể đó là một khái niệm rất bí ẩn, nhưng thật ra nó khá dễ hiểu. Một agent là một mô hình ngôn ngữ có thể dùng công cụ và làm việc theo vòng lặp: thực hiện một hành động, xem kết quả, quyết định bước tiếp theo, rồi lặp lại. Nó không chỉ đưa ra một câu trả lời duy nhất rồi dừng lại.

Đó là toàn bộ mẹo chính. Nó đến từ việc thêm đúng hai thành phần vào mô hình ngôn ngữ mà bạn đã biết. Thành phần thứ nhất là công cụ. Đây là những cách giúp mô hình làm việc với thế giới bên ngoài. Ví dụ, công cụ có thể giúp mô hình tra cứu web, đọc một tập tin, thực hiện một phép tính hoặc gửi email. Nếu đứng một mình, mô hình chỉ có thể tạo ra văn bản. Khi có công cụ, mô hình giống như có thêm đôi tay để làm việc. Thành phần thứ hai là một vòng lặp. Thay vì trả lời một lần rồi dừng lại, mô hình sẽ thực hiện một hành động, xem kết quả nhận được, rồi quyết định bước tiếp theo. Quá trình này lặp lại cho đến khi hoàn thành nhiệm vụ. Nói đơn giản là: làm một bước, xem kết quả, rồi chọn bước tiếp theo. Chính chu trình lặp đi lặp lại đó là động cơ của mọi agent.

Khi đặt agent cạnh một chatbot thông thường, sự khác biệt hiện ra rất rõ. Chatbot thông thường chỉ làm một việc: bạn nhập nội dung, hệ thống trả lời bằng văn bản, rồi cuộc trao đổi kết thúc. Nó không thể tự tra cứu thông tin, không thể nhấn nút hay thực hiện hành động nào, cũng không thể tiếp tục thử cách khác. Chatbot chỉ đưa ra một câu trả lời mà nó cho là tốt nhất, sau đó dừng lại. Nó giống như một người bạn rất giỏi ở đầu dây bên kia, nhưng chỉ được phép nói.

Vì sao agent phải biết làm, xem kết quả, rồi làm tiếp

Điều khiến mô hình thật sự làm được việc nằm ở vòng lặp, nhất là lúc nó xem lại những gì vừa xảy ra. Bước phản hồi này tạo ra khác biệt giữa một hệ thống biết hành động và một hệ thống chỉ biết nói. Vì nhìn thấy kết quả thực tế trong quá trình thực hiện, chẳng hạn tìm kiếm không có kết quả, phép tính trả về một con số, hoặc đặt chỗ thất bại, mô hình có thể điều chỉnh hướng đi giữa chừng thay vì tiếp tục dựa vào một phỏng đoán ban đầu.

Hãy hình dung người trợ lý đang ngồi ở bàn làm việc vào đúng lúc việc đặt chỗ gặp lỗi. Nếu đó chỉ là một hệ thống biết nói, nó có thể chọn ngay chuyến bay đầu tiên rồi tiếp tục, mà không nhận ra chuyến bay đó bị trùng với cuộc họp vào thứ Ba. Nhưng nếu đó là một hệ thống biết hành động, nó sẽ kiểm tra lịch, phát hiện sự trùng lịch, rồi quay lại xem lại trước khi xác nhận đặt vé. Ở khoảnh khắc đó, mô hình không tự nhiên trở nên thông minh hơn. Nó chỉ có cơ hội nhận ra mình sai khi vẫn còn thời gian để sửa. Đây là sức mạnh âm thầm của vòng lặp: không phải tạo ra những dự đoán tốt hơn ngay từ đầu, mà là cho hệ thống cơ hội phản ứng và sửa lại khi dự đoán ban đầu không đúng.

Điều tương tự cũng xảy ra với những việc rất nhỏ. Ví dụ, ta nhờ một agent tìm một con số nằm trong một tài liệu dài. Lần tìm đầu tiên có thể không ra kết quả. Nếu không có vòng lặp, kết quả trống đó sẽ là điểm dừng: agent bỏ cuộc và trả lời rằng không tìm thấy con số. Nếu có vòng lặp, kết quả trống chỉ là một thông tin mới để agent xem lại và xử lý. Nó sẽ thử một cách hỏi khác, tìm lại lần nữa, rồi có thể tìm ra con số. Mỗi lượt tìm giúp mở ra bước tiếp theo. Mô hình không đi thẳng một mạch đến đáp án, mà lần mò từng bước và kiểm tra sau mỗi bước. Chính vòng lặp giúp nó giữ hướng và sửa sai.

chatbot
yêu cầu của bạn
mô hình
một câu trả lờirồi dừng lại
agent
yêu cầu của bạn
mô hìnhvẫn là mô hình dự đoán token
công cụtra web, tệp, email
kết quả
hoàn thànhsau vài vòng lặp
chọn bước sau
Chatbot thường trả lời một lần rồi dừng. Agent có thể dùng công cụ, đọc kết quả và chọn bước tiếp theo cho đến khi hoàn thành nhiệm vụ.

Đừng nhầm workflow với agent

Khi một hệ thống đã có khả năng hành động, có hai cách rất khác nhau để quyết định nó sẽ làm gì. Cần phân biệt rõ hai cách này, vì trong thực tế chúng tạo ra những hành vi khác nhau.

Trong một workflow hay quy trình làm việc, con người đã viết sẵn các bước cần làm, giống như một công thức nấu ăn: làm A, rồi làm B, rồi làm C. Mô hình chỉ hỗ trợ những phần cần dùng đến ngôn ngữ, còn thứ tự công việc đã được con người quyết định trước. Người thiết kế quy trình đã biết công việc sẽ diễn ra như thế nào. Còn với một agent, chính mô hình tự quyết định bước tiếp theo là gì và cần dùng công cụ nào. Không có ai viết sẵn toàn bộ kịch bản từ đầu. Mô hình tự tìm cách đi đến mục tiêu, từng bước một.

Sự khác biệt giữa hai kiểu này chính là lý do ta cần phân biệt chúng. Workflow dễ đoán hơn vì bạn đã viết sẵn các bước, nên có thể biết trước phần lớn điều sẽ xảy ra. Agent linh hoạt hơn nhưng cũng khó đoán hơn, vì mô hình tự quyết định bước tiếp theo và có thể chọn cách khác với bạn dự tính. Nhìn chung, không có kiểu nào luôn tốt hơn kiểu nào. Nếu các bước luôn cố định, bạn nên dùng một quy trình rõ ràng. Nếu các bước có thể thay đổi theo tình huống, bạn cần khả năng tự điều chỉnh của agent.

Điều bất ngờ là một agent được trao quá nhiều quyền tự quyết có thể đi lòng vòng, làm nhiều bước không cần thiết, tốn chi phí hơn khi vận hành và gặp lỗi theo những cách khó đoán, vì không có ai cố định đường đi cho nó. Những người có kinh nghiệm xây dựng các hệ thống này thường khuyên rằng nên bắt đầu bằng giải pháp đơn giản nhất có thể chạy được, thường chỉ là một prompt tốt. Chỉ thêm công cụ và vòng lặp khi tác vụ thật sự cần đến. Hãy chỉ tăng mức tự chủ khi tác vụ thật sự xứng đáng, không phải vì một agent tự do trông có vẻ hấp dẫn hơn.

Cái bẫy: biết hành động không có nghĩa là đáng tin hơn

Rất dễ nghĩ rằng khi AI biết dùng công cụ và tự thực hiện hành động, thì AI đã trở nên thông minh, đáng tin cậy, giống như một nhân viên biết suy nghĩ. Nhưng không phải vậy. Đằng sau các công cụ và các bước xử lý, AI vẫn là mô hình ngôn ngữ như đã nói ở những chương trước. Nó vẫn chỉ đang dự đoán những từ tiếp theo sao cho hợp lý nhất. Việc trao cho mô hình khả năng hành động không làm nó trung thực hơn hay cẩn thận hơn. Nó vẫn là một cỗ máy đoán chữ. Điểm khác biệt là bây giờ, những sai lầm của nó không chỉ dừng lại ở lời nói, mà còn có thể trở thành hành động thực tế.

Điều đó làm mức rủi ro tăng lên, chứ không làm mô hình đáng tin hơn. Khi một chatbot trả lời trôi chảy và tự tin nhưng sai, hậu quả có thể chỉ là một gợi ý sai về chuyến bay, rồi bạn nhận ra và bỏ qua. Nhưng khi một mô hình có thể dùng công cụ mà vẫn tự tin sai, nó có thể đặt nhầm chuyến bay thật, chứ không chỉ đề xuất. Một lỗi tự tin từ một agent bây giờ có thể tạo ra hành động thật, như gửi email hoặc đặt phòng. Mô hình không hiểu mức độ nghiêm trọng của việc mình đang làm. Nó không tự cảm nhận được sự khác biệt giữa việc viết nháp một email và gửi email đó cho toàn bộ danh sách người nhận. Công cụ và các vòng kiểm tra đôi khi giúp mô hình phát hiện lỗi của chính nó khi kết quả trả về không khớp, và điều này thật sự hữu ích. Tuy vậy, chúng không mang lại cho mô hình khả năng phán đoán. Vì thế, mô hình càng có nhiều năng lực thì việc con người kiểm tra lại càng có giá trị. Nó không loại bỏ nhu cầu kiểm tra đó. Một trợ lý càng tự làm được nhiều việc, thì càng cần có người giữ quyền kiểm soát.

Tự thử: bật và tắt công cụ để thấy khác biệt

Bạn có thể trực tiếp thấy quá trình chuyển từ workflow sang agent chỉ trong vài phút. Bạn không cần viết dòng mã nào, chỉ cần dùng một chatbot thông thường có nút "tìm trên web" hoặc "duyệt web".

Trước tiên, hãy tắt công cụ và đặt một câu hỏi cần thông tin mới, chẳng hạn: "Những tin tức nổi bật hôm qua là gì?" Khi không thể truy cập thế giới bên ngoài, mô hình chỉ có thể dựa vào kiến thức cũ đã được học. Hãy quan sát cách nó phản ứng. Nó thường sẽ từ chối trả lời, hoặc đoán dựa trên thông tin đã lỗi thời, vì câu trả lời chính xác thật sự không có sẵn trong nó. Lúc đó, mô hình chỉ là một hệ thống biết tạo lời nói: đưa ra phỏng đoán tốt nhất rồi dừng lại.

Bây giờ hãy bật lại đúng công cụ đó và hỏi lại đúng câu hỏi ban nãy. Lần này, đừng chỉ nhìn vào câu trả lời cuối cùng, mà hãy để ý cả quá trình. Mô hình sẽ làm từng bước: trước tiên nó tìm kiếm, sau đó đọc kết quả vừa nhận được rồi quyết định bước tiếp theo. Có thể nó sẽ tìm thêm một lần nữa trước khi đưa ra câu trả lời. Bạn đang thấy vòng lặp này diễn ra trực tiếp: hành động, quan sát, quyết định, rồi lại hành động tiếp. Vẫn là cùng một mô hình, cùng một câu hỏi. Điều duy nhất bạn thay đổi là việc mô hình có được dùng công cụ hay không. Sự khác biệt giữa hai lần chạy cho thấy rõ khoảng cách giữa một hệ thống chỉ biết trả lời bằng lời nói và một hệ thống có thể thực sự hành động.

gpt-5.5 không có công cụ:
Không có công cụ:
PROMPT
Những tin tức nổi bật hôm qua là gì?
gpt-5.5

"Mình không có quyền truy cập tin tức thời gian thực trong cuộc trò chuyện này, nên không thể xác nhận chính xác 'những tin nổi bật hôm qua' là gì…"

một kẻ chỉ biết nói, đụng phải bức tường
gpt-5.5 khi có sẵn một công cụ, vòng lặp ra-tay-nhìn-quyết, một lần chạy riêng:
Có sẵn một công cụ:
PROMPT
Những tin tức nổi bật hôm qua là gì? Hãy dùng công cụ nếu cần.
gpt-5.5: (gọi một công cụ) get_headlines({"day": "hôm qua"})
Tool: trả về ba dòng tin.
gpt-5.5

Những tin tức nổi bật hôm qua gồm:

  • Hội đồng thành phố phê duyệt tuyến metro mới ở trung tâm.
  • Đám cháy rừng trong vùng đã được dập tắt hoàn toàn sau một tuần.
  • Một trường đại học địa phương ra mắt chương trình gia sư miễn phí.

Đừng lo nếu bạn thấy một dòng giống như mã nằm trong ngoặc ở giữa đoạn. Đó chỉ là cách mô hình ghi ngắn gọn yêu cầu để công cụ hiểu và lấy các tin nổi bật của ngày hôm qua. Bạn không cần tự gõ dòng đó. Mô hình sẽ tự tạo nó khi cần, nên toàn bộ quá trình không đòi hỏi bạn phải viết mã. Lần chạy thứ hai này cho thấy ý chính của cả chương: vẫn là cùng một mô hình dự đoán chữ, nhưng nó không chỉ đoán rồi dừng lại. Nó tạo ra một hành động, đọc kết quả công cụ trả về, rồi dựa vào đó để trả lời. Nói cách khác, nó đang lặp lại các bước: hành động, quan sát, quyết định.

Khi nào để AI tự làm, khi nào bạn phải giữ quyền kiểm soát

Sự thay đổi này đang âm thầm diễn ra ngay trong những ứng dụng bạn dùng hằng ngày. Các trợ lý số ngày càng không chỉ trả lời câu hỏi, mà còn có thể đặt lịch hẹn, soạn và gửi phản hồi, hoặc lấy trực tiếp số liệu từ tập tin của bạn. Ranh giới giữa một công cụ chỉ biết nói và một công cụ có thể hành động đang ngày càng mờ đi, nhiều khi không có thông báo rõ ràng. Trợ lý email trước đây chỉ gợi ý câu trả lời, giờ có thể đề nghị gửi luôn email đó. Ứng dụng du lịch trước đây chỉ liệt kê các chuyến bay, giờ có thể đề nghị mua luôn vé. Trong mỗi trường hợp, cùng một sự thay đổi âm thầm đã xảy ra: một công cụ từng chỉ biết đưa ra lời khuyên nay đã được trao quyền hành động, và nếu nó phán đoán sai, hậu quả cũng có thể lớn hơn nhiều.

Đó là lý do mô hình tư duy trong chương này rất hữu ích. Khi bạn biết một công cụ đang hoạt động như một quy trình cố định, dễ dự đoán, hay như một tác nhân AI có thể tự chọn cách làm, bạn sẽ dễ quyết định hơn. Bạn cũng cần nhớ rằng nếu trao cho tác nhân AI quyền thực hiện các hành động thật, thì hậu quả của sai lầm sẽ lớn hơn, chứ không nhỏ đi. Hiểu được điều này sẽ giúp bạn biết khi nào có thể để mô hình tự làm và khi nào cần giám sát chặt chẽ. Sau khi thấy một trợ lý AI có thể làm được gì với vài công cụ, câu hỏi tiếp theo sẽ là điều gì xảy ra nếu ta không chỉ dùng một trợ lý duy nhất, mà chia công việc cho nhiều trợ lý cùng phối hợp. Đó là hướng mà chương tiếp theo sẽ đi tới.

Nguồn

Building Effective Agents
Nguồn cho lời khuyên của chương này: bắt đầu bằng thứ đơn giản nhất chạy được và chỉ thêm công cụ cùng vòng lặp khi việc thật sự cần, cùng với sự phân biệt workflow và agent.
How we built our multi-agent research system
Phần đọc thêm cho câu hỏi khép chương: điều gì xảy ra khi bạn thôi dựa vào một trợ lý biết dùng công cụ duy nhất và chia việc ra cho nhiều trợ lý.
Survey of Hallucination in Natural Language Generation
Nền cho luận điểm rằng một mô hình biết dùng công cụ vẫn là cùng một cỗ máy đoán chữ đưa ra phỏng đoán tốt nhất, nên trao cho mô hình tay chân chỉ khiến mô hình hành động trên những sai lầm tự tin của mình chứ không làm mô hình trung thực hơn.
CHÚ THÍCH
  1. 1.
    Anthropic, "Building Effective Agents" (tháng 12/2024), anthropic.com/research/building-effective-agents. Bài viết khuyên nên "tìm giải pháp đơn giản nhất có thể, và chỉ tăng độ phức tạp khi cần", khuyên người xây dựng hãy "bắt đầu bằng những prompt đơn giản" và "chỉ thêm các hệ agent nhiều bước khi những giải pháp đơn giản hơn tỏ ra chưa đủ". Bài định nghĩa workflow là hệ trong đó mô hình và công cụ được điều phối qua những lối đi đã viết sẵn trong mã, còn agent là hệ trong đó mô hình tự điều hướng tiến trình và cách dùng công cụ của mình.