Khi AI Skill thiếu dữ liệu hoặc gặp yêu cầu ngoài phạm vi, câu trả lời “đoán cho đủ” có thể nguy hiểm hơn việc báo lỗi. Error handling cho AI Skill là cách thiết kế trạng thái thiếu nguồn, fallback và giới hạn để Skill biết khi nào nên tiếp tục, khi nào cần hỏi lại và khi nào phải từ chối an toàn.
Error handling trong AI Skill là gì?
Error handling là tập hợp quy tắc mô tả cách Skill phản ứng khi đầu vào không đủ, công cụ thất bại, dữ liệu mâu thuẫn hoặc yêu cầu nằm ngoài phạm vi. Một quy trình tốt xác định loại lỗi, thông tin cần bổ sung và định dạng phản hồi. Với người mới, có thể hiểu đơn giản: Skill không chỉ cần biết làm gì, mà còn phải biết không làm gì khi điều kiện chưa đủ.
Bốn nhóm lỗi thường gặp khi chạy AI Skill
Các lỗi phổ biến gồm thiếu nguồn hoặc trường bắt buộc; yêu cầu nằm ngoài phạm vi; công cụ hoặc dữ liệu trung gian thất bại; và kết quả không đạt output contract. Mỗi nhóm cần một nhánh xử lý riêng để tránh tạo kết quả trông hợp lệ nhưng không thể kiểm tra.
Thiết kế trạng thái NEEDS_SOURCE thay vì đoán
NEEDS_SOURCE là tín hiệu cho biết Skill chưa đủ dữ liệu đáng tin cậy để hoàn thành nhiệm vụ. Trạng thái này nên nêu nguồn còn thiếu, lý do cần nguồn và cách người dùng cung cấp. Ví dụ: NEEDS_SOURCE: Chưa có URL sản phẩm và đối tượng khách hàng. Hãy cung cấp hai thông tin này để tạo phần mô tả chính xác. Không nên dùng trạng thái này cho yêu cầu đã đủ dữ liệu nhưng nằm ngoài phạm vi.
Fallback nên có những tầng nào?
Fallback là phương án dự phòng khi đường xử lý chính không thể hoàn tất. Có thể hỏi bổ sung khi thiếu trường bắt buộc, giảm phạm vi khi chỉ một phần đủ dữ liệu, dùng định dạng an toàn khi công cụ xuất lỗi, hoặc từ chối có lý do khi yêu cầu ngoài phạm vi hay rủi ro cao. Mỗi tầng cần điều kiện kích hoạt và giới hạn rõ ràng.
Viết rule lỗi trong SKILL.md như thế nào?
Một rule dễ kiểm thử nên nêu đủ điều kiện, hành động và đầu ra. Công thức thực dụng là: Nếu [điều kiện lỗi], thì [trạng thái hoặc hành động], kèm [thông tin bắt buộc phải hiển thị]. Ví dụ: nếu thiếu URL nguồn, trả NEEDS_SOURCE và liệt kê URL cần cung cấp; nếu file không đọc được, yêu cầu tải lại thay vì suy đoán; nếu yêu cầu ngoài phạm vi, nêu phần Skill hỗ trợ và gợi ý hướng phù hợp.
Kiểm thử error handling bằng positive, negative và edge case
Hãy tạo positive case với đủ dữ liệu và đúng phạm vi; negative control với yêu cầu gần nghĩa nhưng thiếu nguồn hoặc thuộc Skill khác; và edge case như dữ liệu rỗng, file quá dài, link hỏng, ký tự đặc biệt hoặc nhiều điều kiện mâu thuẫn. Ghi lại đầu vào, trạng thái mong đợi, phản hồi thực tế và chạy lại cùng bộ test sau mỗi lần sửa SKILL.md.
Checklist trước khi đóng gói AI Skill
Checklist gồm: định nghĩa lỗi thiếu nguồn, lỗi phạm vi và lỗi công cụ; NEEDS_SOURCE chỉ xuất hiện khi cần; mỗi fallback có giới hạn; không đoán dữ kiện chưa xác minh; output contract có trường trạng thái và lỗi tối thiểu; có positive, negative và edge case; đã chạy test hồi quy sau khi sửa rule.
Có nên để AI tự sửa lỗi bằng cách đoán không?
Không. Khi dữ kiện ảnh hưởng đến tính chính xác, Skill nên báo thiếu nguồn hoặc hỏi lại. Chỉ tự sửa lỗi hình thức khi quy tắc cho phép và không làm thay đổi ý nghĩa dữ liệu.
Khi nào nên dùng fallback giảm phạm vi?
Dùng khi một phần yêu cầu đã đủ nguồn và an toàn để xử lý, nhưng phần còn lại chưa đủ điều kiện. Cần nói rõ phần nào đã làm và phần nào đang chờ dữ liệu.
NEEDS_SOURCE có làm trải nghiệm người dùng kém đi không?
Không, nếu thông báo ngắn và chỉ dẫn cụ thể. Yêu cầu bổ sung đúng lúc giúp tránh câu trả lời sai, giảm vòng sửa và làm quy trình đáng tin cậy hơn.
Error handling biến AI Skill thành quy trình có thể vận hành thực tế. Hãy bắt đầu bằng NEEDS_SOURCE, fallback có giới hạn và bộ test gồm positive, negative control và edge case. Để kiểm tra đầu ra ổn định, hãy đọc thêm output contract cho AI Skill và bộ test hồi quy AI Skill.
