Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 5 — Gắn nhãn & ưu tiên tự động trong hộp thư

Đã đọc 0/9 mục · còn khoảng 3 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Gắn nhãn (labeling) là hành động an toàn nhất của agent — nó không gửi gì ra ngoài, không thể làm phiền ai. Vì thế đây là tính năng đầu tiên nên bật thật. Bài này biến kết quả JSON từ Bài 4 thành nhãn và mức ưu tiên hiển thị trong inbox.

Thiết kế hệ thống nhãn

Dùng nhãn có tiền tố để nhóm gọn trong Gmail:

AI/Category/DonHang
AI/Category/KhieuNai
AI/Category/HoaDon
AI/Priority/Khan
AI/Priority/BinhThuong
AI/Action/CanDuyet

Tiền tố AI/ giúp bạn dễ lọc, dễ tắt, và biết ngay nhãn nào do agent tạo. Priority tách riêng khỏi Category để một email mang nhiều nhãn theo nhiều trục.

Ví dụ: gắn nhãn qua Gmail API

def ensure_label(service, name):
    labels = service.users().labels().list(userId="me").execute()["labels"]
    for l in labels:
        if l["name"] == name:
            return l["id"]
    created = service.users().labels().create(
        userId="me", body={"name": name}).execute()
    return created["id"]

def apply_labels(service, msg_id, result):
    cat_id = ensure_label(service, f"AI/Category/{result['category']}")
    pri_id = ensure_label(service, f"AI/Priority/{result['priority']}")
    service.users().messages().modify(
        userId="me", id=msg_id,
        body={"addLabelIds": [cat_id, pri_id]}
    ).execute()

Ưu tiên bằng cách nào

Gắn nhãn là một chuyện; giúp con người thấy cái khẩn trước là chuyện khác. Ba cơ chế:

  • Star/gắn sao email priority=khan (Gmail API: thêm nhãn STARRED).
  • Chuyển email cho_duoc ra khỏi Inbox (bỏ nhãn INBOX) để inbox chỉ còn việc thật.
  • Tạo báo cáo tóm tắt buổi sáng: một email tự gửi cho bạn liệt kê "3 email khẩn cần xử lý hôm nay".

Khung ưu tiên: ma trận Impact × Urgency

KhẩnKhông khẩn
Ảnh hưởng caoXử lý NGAY (sao đỏ)Lên lịch
Ảnh hưởng thấpỦy quyền/nhanh gọnLưu trữ/bỏ qua
Dạy prompt phân loại theo hai trục này thay vì một thang "quan trọng" mơ hồ. Một khiếu nại của khách VIP = ảnh hưởng cao + khẩn. Newsletter = thấp + không khẩn.

Các bước triển khai

  • Tạo trước bộ nhãn một lần (idempotent — hàm ensure_label không tạo trùng).
  • Map kết quả JSON → nhãn: một hàm thuần, dễ test.
  • Gắn nhãn cho 20 email test, KHÔNG gửi gì, KHÔNG xóa gì.
  • Rà soát tay: mở inbox, xem nhãn đúng bao nhiêu %. Ghi lại ca sai.
  • Tinh chỉnh prompt dựa trên ca sai rồi chạy lại — vòng lặp cải thiện.
  • Khi đạt độ chính xác chấp nhận được (vd >85%), bật ưu tiên (sao/chuyển inbox).

Checklist

  • [ ] Nhãn có tiền tố AI/ để dễ quản lý và tắt.
  • [ ] Hàm tạo nhãn idempotent (không trùng).
  • [ ] Category và Priority tách trục.
  • [ ] Đã đo độ chính xác trên tập test.
  • [ ] Chỉ gắn nhãn ở giai đoạn đầu, chưa gửi/xóa.

Bắt đầu bảo thủ, nới dần

Giai đoạn 1: chỉ gắn nhãn (agent không đụng gì ngoài dán nhãn). Giai đoạn 2: thêm gắn sao email khẩn. Giai đoạn 3: chuyển email rác ra khỏi inbox. Mỗi giai đoạn chạy vài ngày, kiểm tra, rồi mới nới. Đây là triết lý "human trust builds gradually".

Sai lầm thường gặp

  • Cho agent lưu trữ/xóa ngay từ đầu. Nếu phân loại sai, email quan trọng biến mất khỏi tầm mắt. Chỉ gắn nhãn trước, ẩn/xóa sau khi đã tin tưởng.
  • Nhãn không idempotent, mỗi lần chạy tạo thêm nhãn trùng tên rác đầy tài khoản.
  • Trộn nhiều trục vào một nhãn như KhieuNai-Khan, khiến số nhãn bùng nổ theo tổ hợp. Tách Category và Priority.
  • Không đo độ chính xác mà đã bật hành động mạnh. Luôn có giai đoạn "chỉ gắn nhãn để quan sát".
  • Đặt tên nhãn tùy hứng mỗi email (do prompt trả tên tự do). Nhãn phải từ enum cố định — nối tiếp bài học structured output.
Bài sau: soạn nháp trả lời tự động một cách an toàn.

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