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 — Dạy agent ưu tiên công việc (Eisenhower, MoSCoW, điểm số)

Đã đọc 0/7 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.

Bài 5 — Dạy agent ưu tiên công việc

Đây là bài tạo ra giá trị lớn nhất: agent không chỉ liệt kê task mà quyết định làm gì trước. Bí quyết là đừng để LLM ưu tiên bằng "cảm giác" — hãy đưa cho nó một khung tính điểm rõ ràng để suy luận nhất quán.

Ba khung ưu tiên nền tảng

Eisenhower — chia theo Khẩn (urgent) × Quan trọng (important):

  • Khẩn + Quan trọng → làm ngay.
  • Quan trọng, không khẩn → lên lịch (đây là nơi tạo giá trị dài hạn).
  • Khẩn, không quan trọng → ủy quyền/gộp.
  • Không khẩn, không quan trọng → bỏ.
MoSCoW — Must / Should / Could / Won't, tốt cho danh sách nhiều task.

Điểm số có trọng số — cách agent hóa dễ nhất:

score = 0.4*urgency + 0.3*impact + 0.2*effort_inverse + 0.1*alignment

trong đó urgency cao khi deadline gần, impact là mức ảnh hưởng, effort_inverse ưu ái việc nhanh (quick win), alignment là mức khớp mục tiêu tuần.

Các bước dạy agent ưu tiên

  • Chuẩn hóa mỗi task thành các trường: due, impact (1-5), effort (1-5), goal_tag.
  • Nếu thiếu trường, để agent ước lượng và ghi rõ giả định ("tôi giả định việc này impact 4").
  • Tính urgency từ due: quá hạn = 5, hôm nay = 4, trong tuần = 3...
  • Áp công thức điểm, sắp xếp giảm dần.
  • Yêu cầu agent giải thích top 3 — vì sao lên đầu — để bạn kiểm tra logic.
from datetime import date
def urgency(due):
    if not due: return 1
    d = (date.fromisoformat(due) - date.today()).days
    return 5 if d < 0 else 4 if d == 0 else 3 if d <= 3 else 2

def score(t):
    return (0.4*urgency(t.get("due")) + 0.3*t.get("impact",3)
            + 0.2*(6 - t.get("effort",3)) + 0.1*t.get("align",3))

ranked = sorted(tasks, key=score, reverse=True)

Đưa khung vào system prompt

Đừng chỉ dựa vào code — nói rõ cho model cách suy nghĩ khi dữ liệu mờ:

Bạn ưu tiên task theo Eisenhower + điểm số. Quy tắc:
- Deadline hôm nay/quá hạn luôn nổi lên đầu.
- Việc quan trọng-không-khẩn: chủ động đề xuất chặn lịch, đừng để trôi.
- Khi thiếu thông tin, nêu giả định thay vì im lặng.
- Luôn giải thích ngắn gọn vì sao top 3 được chọn.

Ví dụ cụ thể

Input: ["Nộp báo cáo Q3 (due hôm nay, impact 5)", "Học khóa SQL (không due, impact 4)", "Trả lời email nhóm chat (due hôm nay, impact 2)"]. Agent xếp: (1) Báo cáo Q3 — khẩn + tác động lớn; (2) Email nhóm — khẩn nhưng tác động thấp, gợi ý gộp làm nhanh; (3) Học SQL — quan trọng, đề xuất chặn 1 slot lịch tuần này để không trôi mãi.

Khung tư duy: "Ưu tiên phải giải thích được"

Một thứ tự ưu tiên mà agent không giải thích nổi là thứ tự đáng ngờ. Luôn bắt agent kèm lý do — vừa để bạn tin, vừa để phát hiện khi công thức lệch (vd toàn ưu tiên việc nhanh mà bỏ việc quan trọng).

Sai lầm thường gặp

  • Để LLM ưu tiên bằng cảm tính. Kết quả đổi mỗi lần chạy. Neo nó vào công thức/khung rõ ràng.
  • Chỉ tối ưu "khẩn". Agent biến bạn thành nô lệ của việc gấp, bỏ bê việc quan trọng dài hạn. Trọng số impact và alignment chống điều này.
  • Bỏ qua effort. Không tính công sức thì agent xếp một việc 3 ngày ngang một việc 5 phút. Quick win nên được ưu ái hợp lý.
  • Không xử lý task thiếu dữ liệu. Đa số task thực tế không có impact/effort; agent phải ước lượng và nói rõ giả định, không được lờ đi.
  • Ưu tiên xong rồi... để đó. Ưu tiên phải dẫn tới hành động: chặn lịch cho việc top. Bài 7 sẽ nối phần này.
Chốt bài: Agent biết xếp việc theo khung định lượng và giải thích được. Bài 6 ta cho nó trí nhớ và ngữ cảnh để hiểu "tuần này", "như hôm qua".

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