Product Management
Đăng nhập
ESC

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

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

Bài 6 — Thiết kế agent cho quy trình đã chọn: từ trace đến kiến trúc

Đã đọ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ạn đã chọn được quy trình (VD: duyệt hóa đơn). Giờ chuyển từ phân tích sang thiết kế agent. Điều tuyệt vời là process mining đã cho bạn bản thiết kế sẵn: mỗi bước trong trace trở thành một hành động của agent, mỗi nhánh rẽ trở thành một điểm quyết định. Bài này dạy cách dịch trace thành kiến trúc agent.

Từ trace sang đặc tả agent

Lấy happy path đã tìm được:

Nhan hoa don → Trich xuat du lieu → Kiem tra hop le → Doi chieu PO → Duyet → Ghi so

Mỗi bước ánh xạ thành một thành phần agent:

Bước quy trìnhThành phần agentLoại
Nhận hóa đơnTrigger (webhook/email)Đầu vào
Trích xuất dữ liệuLLM + OCR toolPerception
Kiểm tra hợp lệRule engine / toolLogic
Đối chiếu PODB query toolTool call
DuyệtQuyết định + guardrailDecision
Ghi sổAPI ghi vào ERPAction

Kiến trúc agent tối thiểu

Một agent tự động hóa quy trình thường có 5 khối:

  • Trigger — cái gì khởi động (hóa đơn mới đến).
  • Tools — các hàm agent gọi được (đọc OCR, query DB, ghi ERP).
  • Policy/Prompt — hướng dẫn agent quyết định theo quy tắc quy trình.
  • Guardrail — ngưỡng an toàn: khi nào tự làm, khi nào escalate.
  • Escalation — đường chuyển cho người khi vượt ngưỡng.
def invoice_agent(invoice):
    data = extract_tool(invoice)              # perception
    if not validate_tool(data):               # rule
        return escalate(invoice, "Du lieu khong hop le")
    po = po_lookup_tool(data["po_number"])     # tool call
    if po is None or abs(po.amount - data["amount"]) > 50000:
        return escalate(invoice, "Lech PO qua nguong")
    if data["amount"] > 20_000_000:           # guardrail
        return escalate(invoice, "Vuot han muc tu duyet")
    erp_post_tool(data)                       # action
    return "Da duyet tu dong"

Chú ý: agent không cố xử lý mọi trường hợp. Nó xử lý happy path và escalate rõ ràng phần mess — đúng chiến lược từ bài 3.

Khung thiết kế: PDCA-A cho agent

  • Perceive — thu và hiểu đầu vào.
  • Decide — áp quy tắc + LLM để ra quyết định.
  • Check — guardrail kiểm tra trước khi hành động.
  • Act — thực hiện hành động không thể quay lui (ghi ERP, gửi email).
  • Audit — ghi log mọi quyết định để đối chiếu sau.

Guardrail: nơi định đoạt sống còn

Guardrail biến agent "đồ chơi" thành agent "sản xuất". Nguyên tắc:

  • Đặt ngưỡng giá trị (VD tự duyệt dưới 20 triệu).
  • Đặt ngưỡng tin cậy (confidence < 0.8 → escalate).
  • Human-in-the-loop cho hành động không thể hoàn tác.
  • Fail-safe: lỗi bất ngờ → dừng và escalate, không đoán bừa.

Các bước thiết kế

  • Vẽ lại happy path đã chọn dưới dạng chuỗi bước.
  • Ánh xạ mỗi bước sang thành phần agent (trigger/tool/decision/action).
  • Liệt kê các tool cần build và API/quyền truy cập tương ứng.
  • Định nghĩa guardrail cho từng điểm rủi ro (ngưỡng, confidence).
  • Thiết kế đường escalation cho mọi nhánh mess.
  • Thiết kế log audit: ghi input, quyết định, lý do, kết quả.

Sai lầm thường gặp

  • Bắt agent xử lý cả mess ngay từ đầu → độ phức tạp bùng nổ, dễ sai. Hãy để mess cho người.
  • Thiếu guardrail khiến agent tự tin làm sai với giá trị lớn — thảm họa niềm tin.
  • Không log audit: khi agent quyết định sai, bạn không biết vì sao, không sửa được.
  • Nhồi hết logic vào prompt thay vì tách phần quy tắc cứng ra rule engine/tool — vừa đắt token vừa kém tin cậy.
  • Quên định nghĩa hành động không thể quay lui và đặt human-in-the-loop cho chúng.
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