Không phải email nào bạn cũng tự xử. Nhiều email cần tới đúng phòng ban (routing) hoặc cần leo thang lên người có thẩm quyền (escalation). Bài này biến trường owner từ Bài 4 thành hành động chuyển tiếp an toàn.
Ba khái niệm cần phân biệt
- Forward (chuyển tiếp): gửi nguyên email tới một địa chỉ khác để họ xử lý.
- Routing (định tuyến): chọn ĐÚNG người/phòng dựa trên category.
- Escalation (leo thang): đẩy lên cấp cao hơn khi vượt ngưỡng (khách VIP giận, rủi ro pháp lý, tiền lớn).
Bảng định tuyến — nguồn sự thật
Đừng để LLM tự bịa địa chỉ email. Dùng một bảng routing cố định trong code:
ROUTING = {
"hoa_don": "ke-toan@congty.vn",
"khieu_nai": "cskh@congty.vn",
"noi_bo": None, # tự xử, không forward
"phap_ly": "giamdoc@congty.vn", # nhạy cảm → escalate
}
def resolve_owner(category):
return ROUTING.get(category) # None hoặc địa chỉ hợp lệ
LLM chỉ chọn category; code tra bảng để ra địa chỉ. Nhờ vậy agent không thể chuyển email tới địa chỉ sai/bịa.
Quy tắc Escalation
Escalation là routing đặc biệt kích hoạt bởi dấu hiệu rủi ro, không chỉ category:
escalate nếu BẤT KỲ:
- category in {phap_ly, bao_chi, de_doa}
- priority == khan VÀ owner == chính mình VÀ ngoài giờ làm
- khách được đánh dấu VIP
- confidence < 0.5 (agent không chắc → người quyết)
Escalation nên kèm ngữ cảnh: khi chuyển, thêm một dòng tóm tắt vì sao leo thang, để người nhận xử lý nhanh.
Ví dụ: chuyển tiếp có ghi chú (Gmail API)
def forward(service, original, to, note):
body = (f"[Agent chuyển tiếp] Lý do: {note}\n"
f"Category: {original['category']} | Priority: {original['priority']}\n"
f"--- Email gốc ---\n{original['body']}")
msg = MIMEText(body, "plain", "utf-8")
msg["to"] = to
msg["subject"] = "Fwd: " + original["subject"]
raw = base64.urlsafe_b64encode(msg.as_bytes()).decode()
service.users().messages().send(
userId="me", body={"raw": raw}).execute()
Chuyển tiếp tự động vs chờ duyệt
| Loại | Cơ chế đề xuất |
|---|---|
| Hóa đơn → kế toán | Có thể tự forward (rủi ro thấp, nội bộ) |
| Khiếu nại → CSKH | Tự forward nội bộ được |
| Pháp lý → giám đốc | Escalate, kèm cảnh báo, nên có người xác nhận |
| Ra ngoài công ty | LUÔN chờ người duyệt |
Các bước triển khai
- Lập bảng ROUTING category → địa chỉ, duyệt với các phòng ban.
- Định nghĩa quy tắc escalation thành danh sách điều kiện rõ ràng.
- Phân biệt nội bộ/ngoài: chỉ auto-forward khi địa chỉ đích thuộc domain công ty.
- Thêm ghi chú lý do vào mọi email chuyển tiếp.
- Gắn nhãn
AI/Action/DaChuyenđể tránh chuyển lặp và để audit. - Chống vòng lặp: không forward email đã có tiền tố
[Agent chuyển tiếp].
Checklist định tuyến
- [ ] Địa chỉ đích từ bảng cố định, không do LLM bịa.
- [ ] Quy tắc escalation viết rõ theo dấu hiệu rủi ro.
- [ ] Chỉ auto-forward nội bộ; ra ngoài chờ duyệt.
- [ ] Mọi forward kèm lý do + category + priority.
- [ ] Có chống vòng lặp chuyển tiếp.
- [ ] Nhãn đánh dấu đã chuyển.
Sai lầm thường gặp
- Để LLM tự sinh địa chỉ chuyển tiếp. Nó sẽ bịa
support@...không tồn tại hoặc gửi nhầm. Luôn tra bảng cố định. - Auto-forward ra ngoài công ty. Rò rỉ dữ liệu, gửi nhầm khách. Ra ngoài phải có người duyệt.
- Escalation không kèm ngữ cảnh, người nhận phải đọc lại từ đầu, mất tác dụng "khẩn".
- Quên chống vòng lặp, hai agent/quy tắc forward qua lại vô tận, hoặc forward lại chính email đã forward.
- Coi mọi khiếu nại là escalate. Chỉ leo thang khi vượt ngưỡng rủi ro (VIP, tiền lớn, pháp lý); còn lại route bình thường để không làm phiền cấp trên.
- Không đánh dấu đã xử lý, khiến email bị forward nhiều lần mỗi vòng cron.
Học xong bài này rồi?
Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu,
và học hết khóa thì có chứng chỉ.
Lưu tiến độ của tôi