Agent giỏi không phải agent không bao giờ sai — mà là agent biết mình đang không chắc và chuyển đúng chỗ cho người xử lý. Bài này thiết kế cơ chế ngoại lệ (exception handling) và hàng đợi duyệt (review queue) — thứ quyết định agent có dùng được lâu dài hay không.
Phân loại ngoại lệ để xử lý khác nhau
Không phải mọi ngoại lệ như nhau. Bốn nhóm chính:
- OCR kém — text mờ, không đọc được trường. → Cần scan lại, không phải người duyệt số liệu.
- Trích thiếu/mâu thuẫn — thiếu số hóa đơn, regex và LLM lệch nhau. → Người duyệt điền/chọn.
- Vi phạm quy tắc nghiệp vụ — lệch tổng, vượt hạn mức, NCC lạ. → Người có thẩm quyền quyết định.
- Loại tài liệu sai — nhận nhầm phiếu giao hàng vào luồng hóa đơn. → Định tuyến lại hoặc loại bỏ.
Thiết kế bản ghi ngoại lệ
exception = {
"doc_id": "2026-000871",
"loai_ngoai_le": "LECH_TONG", # mã lỗi từ bài 4
"muc_do": "vang", # vang / do
"du_lieu_trich": {...}, # JSON đã trích
"van_de": ["Tính 12.497.000 != ghi 12.500.000"],
"vung_nghi_ngo": {"tong_tien": [x, y, w, h]}, # tọa độ để highlight
"nguoi_xu_ly": "ke_toan_cong_no",
"trang_thai": "cho_duyet"
}
Có tọa độ vung_nghi_ngo để giao diện tô sáng đúng chỗ nghi ngờ — người duyệt xử lý trong vài giây thay vì đọc lại cả trang.
Nguyên tắc: giảm gánh nặng cho người duyệt
Mỗi lần đẩy sang người, hãy làm sẵn tối đa:
- Điền sẵn các trường đã chắc, chỉ để người sửa trường ngờ.
- Tô sáng đúng vùng có vấn đề.
- Gợi ý giá trị (ví dụ số OCR đọc được kèm mức tin cậy).
- Nút một chạm: Duyệt / Sửa / Từ chối.
Vòng phản hồi: mỗi lần sửa là dữ liệu học
Khi người duyệt sửa "3" thành "8", hãy ghi lại: OCR ra gì, họ sửa thành gì. Sau vài trăm lần, bạn phát hiện quy luật (nhà cung cấp X luôn bị đọc nhầm ký tự Y) và cải tiến. Đây là cách agent "thông minh dần" mà không cần train lại model.
correction = {"field": "tong_tien", "ocr": 12497000,
"human": 12500000, "vendor": "MST-0101..."}
Khung tư duy: SLA cho hàng đợi
Hàng đợi không có thời hạn sẽ phình vô tận. Đặt SLA:
| Mức độ | Thời hạn xử lý | Nếu quá hạn |
|---|---|---|
| Đỏ (chặn thanh toán) | 4 giờ | Báo quản lý |
| Vàng | 1 ngày làm việc | Nhắc lại |
| Xám (chờ scan lại) | 3 ngày | Tự đóng, báo người gửi |
Các bước xây hệ xử lý ngoại lệ
- Phân loại ngoại lệ thành 4 nhóm, định tuyến mỗi nhóm tới đúng người.
- Thiết kế bản ghi ngoại lệ có mã lỗi, dữ liệu, vùng nghi ngờ.
- Xây giao diện duyệt điền sẵn + tô sáng + nút một chạm.
- Ghi lại mọi chỉnh sửa của con người làm dữ liệu học.
- Đặt SLA và cảnh báo quá hạn cho từng mức độ.
- Định kỳ phân tích correction để cải tiến OCR/prompt/quy tắc.
Checklist xử lý ngoại lệ
- [ ] Ngoại lệ phân 4 nhóm, định tuyến riêng
- [ ] Bản ghi có mã lỗi + vùng nghi ngờ tô sáng
- [ ] Giao diện điền sẵn, duyệt dưới 30 giây
- [ ] Lưu correction làm vòng phản hồi
- [ ] Có SLA và cảnh báo quá hạn
Sai lầm thường gặp
- Một hàng đợi cho mọi thứ — người duyệt quá tải, bỏ sót ca khẩn. Phân loại và định tuyến.
- Bắt người đọc lại cả trang — không tô sáng vùng ngờ khiến duyệt chậm gấp 10 lần.
- Vứt bỏ correction — mất kho dữ liệu quý để cải tiến. Luôn ghi lại.
- Hàng đợi không SLA — ngoại lệ tồn đọng hàng trăm, agent mất tác dụng.