Từ một ReAct agent đơn lẻ đến quy trình nghiên cứu có giám sát
Giới thiệu
Khi triển khai dự án này, mục tiêu đặt ra không phải là xây dựng một hệ thống đa tác tử (multi-agent) tiên tiến nhất, mà là nhằm làm rõ những thay đổi thực tế khi chuyển đổi một quy trình nghiên cứu từ một agent đơn lẻ sang nhiều agent chuyên biệt; đồng thời đánh giá liệu việc bổ sung cơ chế điều phối có giúp nâng cao độ tin cậy của hệ thống hay không.
Ba quy trình nghiên cứu đã được thiết lập bằng LangGraph và kết nối với công cụ tìm kiếm web. Quy trình thứ nhất sử dụng một agent đơn lẻ theo mô hình ReAct. Quy trình thứ hai phân tách các khâu nghiên cứu, biên soạn và phản biện thành một chu trình (pipeline) cố định. Quy trình thứ ba bổ sung một tác tử giám sát (supervisor) có nhiệm vụ lựa
Từ một tác tử ReAct đơn lẻ đến quy trình nghiên cứu có giám sát
Mở đầu
Khi bắt đầu dự án này, mục tiêu không nhằm xây dựng một hệ thống đa tác tử (multi-agent) tối tân nhất, mà nhằm tìm hiểu những thay đổi thực tế khi chuyển đổi quy trình nghiên cứu từ một tác tử sang nhiều tác tử chuyên biệt, đồng thời đánh giá liệu việc bổ sung cơ chế điều phối có giúp nâng cao độ tin cậy của hệ thống hay không.
Dự án đã xây dựng ba quy trình nghiên cứu bằng LangGraph và kết nối với một công cụ tìm kiếm trên web. Quy trình thứ nhất sử dụng một tác tử đơn lẻ theo mô hình ReAct. Quy trình thứ hai phân tách các khâu nghiên cứu, biên soạn và phản biện thành một chu trình cố định. Quy trình thứ ba bổ sung một tác tử giám sát (supervisor) có nhiệm vụ lựa chọn vai trò tiếp theo cần thực thi.
Mỗi hệ thống được đánh giá trên cùng năm chủ đề nghiên cứu, mỗi chủ đề được chạy thử nghiệm ba lần trên từng hệ thống, tạo ra tổng cộng 45 lượt chạy. Quá trình theo dõi ghi nhận tỷ lệ hoàn thành và thất bại, hành vi thực thi, mức tiêu thụ token, số lượt gọi công cụ và các chỉ số liên quan đến trích dẫn nguồn.
Bài học cốt lõi không phải là việc tăng số lượng tác tử luôn mang lại hiệu quả cao hơn, mà việc phân tách trách nhiệm sẽ làm thay đổi hành vi của hệ thống, đồng thời làm thay đổi các dạng lỗi phát sinh.
Ba kiến trúc hệ thống
Hệ thống A: Một tác tử đảm nhiệm toàn bộ quy trình
Hệ thống A là quy trình sử dụng một tác tử đơn lẻ theo mô hình ReAct. Tác tử này tự suy luận về chủ đề, gọi công cụ tìm kiếm trên web, phân tích kết quả, quyết định việc có cần tìm kiếm thêm hay không và biên soạn báo cáo cuối cùng. Cấu trúc triển khai được đặt trong tệp system_a_baseline.py.
Thiết kế này tương đối đơn giản: một phiên hội thoại chính điều khiển toàn bộ quá trình nghiên cứu và biên soạn. Tuy nhiên, các lệnh gọi công cụ, kết quả tìm kiếm, thông điệp thử lại và chỉ dẫn biên soạn đều tích lũy trong cùng một ngữ cảnh (context). Trong quá trình triển khai, yếu tố này đã trở thành nguồn phát sinh lỗi gọi công cụ.
Hệ thống A hoàn thành 8 trên 15 lượt chạy và thất bại 7 lượt. Cả bảy lượt thất bại đều ghi nhận cùng một dạng lỗi: “Tool choice is none, but model called a tool” (Lựa chọn công cụ là 'none', nhưng mô hình vẫn gọi công cụ). Một số đối số không hợp lệ chứa các trường như {“cursor”: 0, “id”: 0}, trong khi công cụ tìm kiếm yêu cầu một chuỗi truy vấn (query).
Hệ thống B: Phân tách nghiên cứu, biên soạn và phản biện
Hệ thống B phân chia quy trình làm việc thành ba vai trò: nghiên cứu, biên soạn và phản biện. Tác tử nghiên cứu thu thập ghi chú thông qua một vòng lặp tìm kiếm có giới hạn. Tác tử biên soạn chuyển hóa các ghi chú đó thành bài viết hoàn chỉnh. Tác tử phản biện tiến hành đánh giá bản thảo về độ chính xác, tính cụ thể và độ rõ ràng. Nếu bản thảo không được phê duyệt, tác tử biên soạn sẽ tiếp nhận phản hồi để chỉnh sửa.
Sự phân tách này đồng nghĩa với việc tác tử biên soạn không trực tiếp điều khiển công cụ tìm kiếm. Tác tử này chỉ tiếp nhận các ghi chú nghiên cứu thay vì duy trì toàn bộ tiến trình hội thoại sử dụng công cụ. Hệ thống B hoàn thành 13 trên 15 lượt chạy. Hai lượt thất bại xuất phát từ các nguyên nhân khác nhau: một lỗi do tác tử phản biện trả về định dạng JSON không hợp lệ, và một lỗi do vượt giới hạn tần suất yêu cầu (rate-limit error).
Sự cải thiện này không xuất phát từ việc mô hình nền tảng nâng cao năng lực, mà do kiến trúc hệ thống đã giảm bớt khối lượng trách nhiệm phải xử lý trong cùng một phiên hội thoại. Việc tách biệt khâu sử dụng công cụ khỏi khâu biên soạn đã loại bỏ triệt để lỗi sai cấu trúc lệnh tìm kiếm từng xuất hiện ở Hệ thống A.
Tuy nhiên, Hệ thống B cũng bộc lộ hạn chế trong việc lưu giữ trích dẫn nguồn. Tác tử nghiên cứu đã thu thập các đường dẫn URL nguồn, song tác tử biên soạn thường bỏ qua các đường dẫn này trong bản thảo cuối cùng. Câu lệnh chỉ dẫn (prompt) dành cho tác tử biên soạn yêu cầu một bài viết rõ ràng, dựa trên thực tế từ các ghi chú, nhưng không bắt buộc phải giữ lại URL nguồn. Đây là vấn đề phát sinh từ khâu bàn giao dữ liệu và thiết kế câu lệnh chỉ dẫn, không phải do tác tử nghiên cứu thất bại trong việc thu thập nguồn.
Hệ thống C: Bổ sung tác tử giám sát
Hệ thống C bổ sung một tác tử giám sát đứng trên các tác tử nghiên cứu, biên soạn và phản biện. Tại mỗi bước, tác tử giám sát tiếp nhận bản mô tả tóm tắt về trạng thái của quy trình và đề xuất một trong bốn hành động:
nghiên cứu (researcher), soạn thảo (writer), phản biện (critic) hoặc kết thúc (finish).
Ví dụ, bộ điều phối (supervisor) có thể chọn vai trò researcher khi chưa có ghi chú nghiên cứu; chọn writer khi đã có ghi chú nhưng chưa lập bản thảo; chọn critic khi bản thảo cần được đánh giá; hoặc chọn hoàn tất quy trình khi bản thảo đã được phê duyệt.
Bộ điều phối supervisor không có quyền kiểm soát tuyệt đối. Chương trình áp dụng các cơ chế bảo đảm mang tính tiền định (deterministic safeguards) sau khi tiếp nhận quyết định. Hệ thống không thể kết thúc khi chưa có bản thảo; vai trò critic không thể vận hành trước khi bản thảo xuất hiện; quá trình nghiên cứu không thể lặp lại khi đã có ghi chú; đồng thời các giới hạn về số lần chỉnh sửa, lượng token và độ đệ quy đều được áp dụng nghiêm ngặt. Các lỗi có thể khắc phục được phép thử lại, trong khi kết quả đầu ra không hợp lệ từ các tác vụ thành phần đều bị ghi nhận là thất bại.
Điều này dẫn đến một trong những nguyên tắc thiết kế hữu ích nhất của dự án: mô hình ngôn ngữ đề xuất lộ trình, nhưng chương trình thực thi các quy tắc.
Hệ thống C đã hoàn thành 11 trong số 15 lượt chạy và thất bại 4 lượt. Ba lượt thất bại diễn ra ở giai đoạn researcher do kết quả tìm kiếm không chứa các đường dẫn URL hợp lệ. Một lượt chạy chạm mức giới hạn đệ quy của đồ thị. Các yêu cầu khắt khe hơn có thể bảo vệ các giai đoạn tiếp theo khỏi kết quả nghiên cứu kém cấu trúc, nhưng cũng có thể loại bỏ những dữ liệu đầu ra mà một quy trình linh hoạt hơn có thể chấp nhận.
Phương pháp đánh giá các hệ thống
Năm chủ đề nghiên cứu được áp dụng đồng nhất cho cả ba hệ thống: Quang hệ II (Photosystem II) trong quá trình quang hợp tạo oxy; các kiến trúc điện toán lượng tử vào năm 2026; những bằng chứng trái chiều về tác động của caffeine đối với hệ tim mạch; các chính sách thương mại bán dẫn toàn cầu gần đây; cùng sự phát triển và các đặc điểm phương ngữ của tiếng Elfdalian.
Mỗi hệ thống được vận hành ba lần trên từng chủ đề, tương ứng 15 lượt chạy cho mỗi hệ thống và tổng cộng 45 lượt chạy trên toàn bộ thử nghiệm. Quá trình đánh giá được tiến hành trong môi trường ảo Python 3.12.3. Các phiên bản chính bao gồm LangGraph 0.2.70, LangChain Core 0.3.36, LangChain Groq 0.2.4, DuckDuckGo Search 7.3.0 và Pydantic 2.14.1.
Mô hình được sử dụng là openai/gpt-oss-20b thông qua nền tảng Groq. Tham số nhiệt độ (temperature) có sự khác biệt tùy theo vai trò: Hệ thống A sử dụng mức 0,0 cho các lệnh gọi thông thường và 0,3 cho mô hình thử lại; Hệ thống B sử dụng mức 0,0 cho researcher, 0,7 cho writer và 0,0 cho critic; Hệ thống C sử dụng mức 0,0 cho supervisor và kế thừa các mức tham số nhiệt độ theo vai trò của Hệ thống B.
Công cụ tìm kiếm sử dụng DuckDuckGo thông qua giao diện DDGS. Mỗi lượt tìm kiếm trả về tối đa ba kết quả. Các kết quả được lưu trữ tạm thời (cache) tại máy bộ và mỗi kết quả sau khi định dạng được cắt gọn xuống còn khoảng 2.500 ký tự trước khi chuyển đến mô hình.
Các hệ thống cũng áp dụng các giới hạn quy trình làm việc khác nhau. Hệ thống A cho phép thực thi công cụ tìm kiếm tối đa bốn lần và sử dụng giới hạn đệ quy LangGraph...
Nguồn tin: Medium Towards AI — Tác giả: Gulrezqayyum. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.