Các hệ thống AI cấp doanh nghiệp ngày càng mở rộng để xử lý các quy trình làm việc phức tạp, đặt ra thách thức lớn cho các tác nhân AI trong việc định tuyến các tác vụ phụ đến đúng công cụ và kỹ năng. Với hàng trăm công cụ, tác nhân thường gặp khó khăn trong việc xác định công cụ phù hợp cho từng bước. 🤯
Để giải quyết vấn đề này, các nhà nghiên cứu tại Alibaba đã phát triển SkillWeaver, một khung AI tiên tiến giúp tạo biểu đồ thực thi cho một tác vụ và lựa chọn các kỹ năng cần thiết cho từng nút. Họ cũng giới thiệu Skill-Aware Decomposition (SAD), một kỹ thuật mới lạ sử dụng vòng lặp phản hồi để tác nhân có thể tìm kiếm và xác minh các công cụ tiềm năng một cách lặp đi lặp lại. Cách tiếp cận mang tính tổng hợp và cơ chế phản hồi này là điểm khác biệt của SkillWeaver so với các khung định tuyến công cụ khác thường chọn công cụ một lần.
SkillWeaver rất phù hợp với các ứng dụng AI thực tế, nơi tác nhân tự động điều phối các hệ sinh thái đa công cụ, ví dụ như Giao thức Ngữ cảnh Mô hình (MCP), để thực hiện các nghiệp vụ kinh doanh nhiều bước như tải xuống tập dữ liệu, chuyển đổi thông tin và tạo báo cáo trực quan.
Trong thực tế, các thử nghiệm của Alibaba với SkillWeaver cho thấy phương pháp "truy xuất và định tuyến" này không chỉ tăng đáng kể độ chính xác mà còn giảm lượng token tiêu thụ hơn 99% so với việc cho tác nhân tiếp cận toàn bộ thư viện công cụ một cách "ngây thơ". Đối với các nhà phát triển tác nhân AI, bài học chính là: mức độ chi tiết của việc phân tách tác vụ là nút thắt cổ chai lớn nhất đối với việc truy xuất công cụ chính xác. 💡
Thách thức của việc định tuyến kỹ năng 🚧
Các kỹ năng là một mô hình then chốt trong kiến trúc tác nhân LLM hiện đại. Một kỹ năng là một đặc tả công cụ mô-đun, có thể tái sử dụng, sử dụng tài liệu ngôn ngữ tự nhiên có cấu trúc.
Khi các tác nhân cấp doanh nghiệp tích hợp với các hệ sinh thái công cụ khổng lồ, việc định tuyến chính xác các truy vấn của người dùng đến đúng kỹ năng trở thành một nhiệm vụ khó khăn. Việc hiển thị toàn bộ thư viện công cụ cho LLM để tìm kiếm công cụ phù hợp cực kỳ kém hiệu quả, nhanh chóng vượt quá giới hạn ngữ cảnh và tiêu tốn hàng trăm nghìn token.
Hầu hết các khung sử dụng công cụ hiện tại cố gắng giải quyết vấn đề này thông qua truy xuất API, khớp tài liệu hoặc cấu trúc phân cấp, coi việc định tuyến chỉ là một lựa chọn kỹ năng duy nhất hoặc một vấn đề từng bước.
Tuy nhiên, mô hình "một kỹ năng" này không đủ cho môi trường doanh nghiệp vì các truy vấn trong thế giới thực vốn dĩ mang tính tổng hợp. Một yêu cầu kinh doanh tiêu chuẩn như "Tải xuống tập dữ liệu, chuyển đổi nó và tạo báo cáo trực quan" không thể được thực hiện bằng một công cụ duy nhất. Nó đòi hỏi phải chia nhỏ lời nhắc và sắp xếp một máy khách API, một bộ xử lý dữ liệu và một công cụ trực quan hóa thành một kế hoạch thực thi đa bước, mạch lạc.
SkillWeaver và SAD hoạt động như thế nào? ⚙️
Để giải quyết vấn đề này, các nhà nghiên cứu định hình bài toán xử lý các tác vụ phức tạp đòi hỏi nhiều kỹ năng là "định tuyến kỹ năng tổng hợp". Với một lời nhắc phức tạp từ người dùng và một thư viện công cụ rộng lớn, một tác nhân phải đồng thời tìm ra cách chia yêu cầu thành một chuỗi các tác vụ con nguyên tử, cách ánh xạ từng tác vụ con đến kỹ năng tốt nhất hiện có và cách kết hợp các kỹ năng đó thành một kế hoạch thực thi.
SkillWeaver điều phối quá trình này thông qua ba giai đoạn riêng biệt: Phân tách (Decompose), Truy xuất (Retrieve) và Tổng hợp (Compose).
1. Giai đoạn Phân tách: Một LLM hoạt động như một bộ phân tách tác vụ, chia truy vấn phức tạp của người dùng thành một chuỗi các tác vụ con, mỗi tác vụ đòi hỏi một kỹ năng. 2. Giai đoạn Truy xuất: Sau khi các tác vụ con được xác định rõ ràng, hệ thống sử dụng một mô hình nhúng để so sánh từng tác vụ con với thư viện kỹ năng nhằm đưa ra một danh sách ngắn các công cụ ứng cử viên hàng đầu cho mỗi bước. 3. Giai đoạn Tổng hợp: Một trình lập kế hoạch đánh giá các ứng cử viên đã truy xuất dựa trên mức độ chúng hoạt động tốt cùng nhau. Nó kiểm tra khả năng tương thích giữa các kỹ năng để đảm bảo đầu ra của công cụ này tự nhiên chuyển thành đầu vào của công cụ tiếp theo. Sau đó, nó tạo ra một kế hoạch thực thi cuối cùng dưới dạng Biểu đồ Định hướng Không Chu trình (DAG) để vạch ra các phụ thuộc, cho phép các tác vụ độc lập có thể thực thi song song.
Ví dụ, hãy xem xét một người dùng yêu cầu một tác nhân AI "Tải xuống tập dữ liệu, chuyển đổi nó và tạo báo cáo trực quan." * Ở giai đoạn phân tách, LLM sẽ chia nhỏ thành ba tác vụ con riêng biệt: tải xuống tập dữ liệu, chuyển đổi dữ liệu và tạo báo cáo. * Ở giai đoạn truy xuất, hệ thống tìm kiếm trong thư viện và tìm các ứng cử viên như “api-client” hoặc “http-fetch” cho tác vụ một, “csv-parser” hoặc “etl-pipeline” cho tác vụ hai, v.v. * Cuối cùng, giai đoạn tổng hợp đánh giá các tùy chọn này, chọn sự kết hợp cụ thể của “api-client,” “csv-parser,” và “chart-gen” tương thích nhất, sau đó kết nối chúng thành một quy trình làm việc cuối cùng, sẵn sàng để thực thi.
Một thách thức quan trọng của quy trình này là các LLM thường tạo ra các mô tả bước chung chung, không khớp với từ vựng kỹ thuật cụ thể của các kỹ năng thực tế có sẵn trong thư viện. Để khắc phục điều này, SkillWeaver giới thiệu Iterative Skill-Aware Decomposition (SAD), một vòng lặp phản hồi mới lạ. SAD hoạt động bằng cách yêu cầu LLM phác thảo một kế hoạch ban đầu, tiến hành tìm kiếm sơ bộ để tìm các kỹ năng khớp lỏng lẻo, và sau đó đưa các kỹ năng đã truy xuất đó trở lại LLM dưới dạng gợi ý. Điều này cho phép LLM viết lại phần phân tách của nó để mức độ chi tiết và từ vựng hoàn toàn phù hợp với các công cụ thực tế hiện có. ✨
SkillWeaver trong thực tế 📈
Để đánh giá hiệu suất của SkillWeaver trong các kịch bản doanh nghiệp thực tế, các nhà nghiên cứu đã tạo ra một bộ tiêu chuẩn tùy chỉnh gọi là CompSkillBench. Nó bao gồm 300 truy vấn đa bước với các mức độ khó khác nhau. Để phản ánh môi trường thế giới thực, họ đã sử dụng thư viện gồm 2.209 kỹ năng thực tế được lấy từ hệ sinh thái MCP công cộng, bao gồm 24 danh mục chức năng như cơ sở hạ tầng đám mây, tài chính và cơ sở dữ liệu.
Đối với công cụ cốt lõi, các nhà nghiên cứu chủ yếu sử dụng mô hình 7 tỷ tham số nhẹ (Qwen2.5-7B-Instruct) để phân tách tác vụ, kết hợp với bộ truy xuất tìm kiếm ngữ nghĩa tiêu chuẩn (MiniLM với chỉ mục FAISS) để tìm công cụ. SkillWeaver được đánh giá so với ba thiết lập chính: phương pháp "LLM-Direct" (tấn công trực diện) nhồi tất cả tên công cụ vào lời nhắc của một mô hình lớn, phương pháp phân tách dựa trên LLM "thuần túy" không có SAD, và một tác nhân kiểu ReAct.
Các thí nghiệm chỉ ra rằng phân tách tác vụ là nút thắt cổ chai chính. Hành vi LLM tiêu chuẩn không đạt yêu cầu khi xử lý các thư viện công cụ lớn, nhưng vòng lặp phản hồi SAD đã tạo ra sự khác biệt đáng kể. Trong thiết lập thuần túy, mô hình 7B chỉ đạt độ chính xác phân tách (tức là dự đoán đúng số bước) 51,0% thời gian. Bằng cách kích hoạt vòng lặp phản hồi SAD, độ chính xác đã tăng vọt lên 67,7% (với mô hình Qwen-Max lớn hơn, độ chính xác đạt 92%). Đối với các tác vụ "khó" đòi hỏi bốn đến năm kỹ năng riêng biệt, SAD đã cải thiện độ chính xác tới 50%.
Một phát hiện thú vị là các mô hình lớn hơn thực sự có thể hoạt động kém hơn khi không được hướng dẫn. Khi được thử nghiệm trong thiết lập thuần túy, một mô hình 14 tỷ tham số lớn hơn đã thấy độ chính xác giảm xuống dưới mức của mô hình 7B vì nó có xu hướng phân tách quá mức các tác vụ thành các bước nhỏ, không cần thiết. Một khi SAD được giới thiệu, các gợi ý công cụ đã truy xuất đã neo giữ mô hình trở lại thực tế và tăng độ chính xác của nó. Điều này cho thấy rằng việc căn chỉnh một tác nhân với từ vựng của các công cụ cụ thể thường có tác động lớn hơn so với việc trả tiền cho một LLM lớn hơn, đắt tiền hơn. 💰
Một điểm quan trọng khác là tiết kiệm token. Đường cơ sở LLM-Direct, sử dụng mô hình Qwen-Max rất lớn, cho thấy việc nhồi tất cả các công cụ vào lời nhắc của một mô hình lớn là thất bại. Mặc dù có khả năng phân tách tác vụ gần như hoàn hảo, mô hình khổng lồ này chỉ truy xuất đúng danh mục công cụ 21,1% thời gian khi bị tràn ngập các tùy chọn công cụ. Cách tiếp cận "truy xuất và định tuyến" có mục tiêu của SkillWeaver đã vượt trội hơn hẳn về độ chính xác, đồng thời giảm lượng tiêu thụ cửa sổ ngữ cảnh từ ước tính 884.000 token xuống chỉ còn khoảng 1.160 token mỗi truy vấn, giảm 99,9%. Đối với các nhà phát triển, điều này trực tiếp dẫn đến chi phí API thấp hơn đáng kể và thời gian phản hồi nhanh hơn. 🚀
Cuối cùng, đường cơ sở ReAct truyền thống hoàn toàn thất bại, đạt 0% độ chính xác phân tách. Vòng lặp của nó tự nhiên gộp các kế hoạch đa bước thành các hành động riêng lẻ thay vì ánh xạ rõ ràng một chuỗi đa công cụ mạch lạc.
Lưu ý cho nhà phát triển 🧑💻
Mặc dù các nhà nghiên cứu chưa phát hành mã nguồn cho SkillWeaver, nhưng công trình của họ được xây dựng dựa trên các công cụ có sẵn và có thể dễ dàng tái tạo.
Skill-Aware Decomposition (SAD), đổi mới cốt lõi của khung, là một vòng lặp kỹ thuật nhắc lệnh (prompt engineering) và truy xuất thông minh. Các tác giả đã chia sẻ các mẫu lời nhắc trong bài báo của họ, và các nhà phát triển có thể tự triển khai khá dễ dàng bằng cách sử dụng các thư viện điều phối tiêu chuẩn như LangChain, LlamaIndex, hoặc thậm chí là các script Python thô.
Đối với thành phần truy xuất, các tác giả đã xây dựng khung cốt lõi bằng cách sử dụng all-MiniLM-L6-v2, một mô hình nhúng mã nguồn mở. Họ nhận thấy rằng việc thay thế bằng một bộ mã hóa mạnh hơn một chút (BGE-base-en-v1.5) đã ngay lập tức tăng độ chính xác mà không cần tinh chỉnh. Mặc dù một bộ mã hóa hai chiều (bi-encoder) có sẵn rất tốt trong việc đưa một công cụ liên quan vào top 10 ứng cử viên gần 70% thời gian, nhưng nó gặp khó khăn trong việc xếp hạng nhất quán công cụ hoàn hảo ở vị trí số một, chỉ đạt khoảng 37% thời gian. Để khắc phục khoảng cách này, các nhóm có thể sẽ cần triển khai một bộ sắp xếp lại thứ tự thứ cấp dựa trên cross-encoder hoặc LLM để sắp xếp lại 10 ứng cử viên hàng đầu đó.
Một yêu cầu chuẩn bị ban đầu là chuyển đổi thư viện công cụ thành vector và xây dựng chỉ mục FAISS trước. Trong thực tế, đây là một trở ngại không đáng kể. Việc nhúng và lập chỉ mục tất cả 2.209 kỹ năng trong bộ tiêu chuẩn chỉ mất vỏn vẹn 15 giây. Sau khi được xây dựng, việc truy xuất công cụ từ chỉ mục chỉ thêm ít hơn 15 mili giây độ trễ cho mỗi truy vấn. Đối với môi trường doanh nghiệp, việc đồng bộ hóa chỉ mục công cụ là một công việc nền đơn giản.
Một hạn chế hiện tại trong SkillWeaver là thiếu cơ chế khôi phục lỗi. Mặc dù SkillWeaver thành công trong việc vạch ra một DAG tương thích để thực thi, nhưng nghiên cứu thí điểm của các tác giả đã tiết lộ những thách thức của chuỗi công cụ đa bước. Ví dụ, nếu một lệnh gọi API thất bại ở bước hai, toàn bộ chuỗi sẽ bị hỏng. Đóng góp cốt lõi của bài báo này chỉ giới hạn ở giai đoạn định tuyến và lập kế hoạch. Để triển khai sản xuất thực sự, các nhà phát triển phải xây dựng các cơ chế khôi phục lỗi, dự phòng và thử lại của riêng họ trên giai đoạn tổng hợp để xử lý các sự cố hết thời gian chờ API hoặc đầu ra không đúng định dạng trong thế giới thực.