Monitoring cho AI workflow: học từ Netflix nhưng áp dụng ở scale nhỏ
Monitoring cho AI workflow không nên bắt đầu bằng một dashboard thật đẹp.
Nó nên bắt đầu bằng một câu hỏi đơn giản hơn: khi workflow sai, tôi có biết sai ở đâu không?
Tôi đọc các bài Netflix về observability và thấy một điểm rất rõ: hệ thống lớn cần nhiều “độ phóng đại” để debug. Nhưng với sản phẩm nhỏ, ta không cần bê nguyên Netflix về. Ta chỉ cần lấy tư duy đúng và làm một phiên bản vừa đủ.
Nguồn tôi đọc
- Netflix Tech Blog — A Microscope on Microservices
- Netflix Tech Blog — Lessons from Building Observability Tools at Netflix
1. AI workflow có nhiều điểm fail hơn ta tưởng
Ví dụ một workflow CRM:
Lead được tạo
→ kiểm tra dữ liệu
→ enrichment
→ gọi LLM phân loại
→ tạo follow-up message
→ lưu vào CRM
→ gửi notification
→ cập nhật dashboard
Khi workflow fail, nguyên nhân có thể là:
- dữ liệu lead thiếu;
- API enrichment timeout;
- LLM trả về format sai;
- prompt version mới làm output tệ;
- database lock/chậm;
- queue bị backlog;
- notification provider lỗi;
- frontend cache dữ liệu cũ.
Nếu không monitor từng bước, ta chỉ thấy một dòng: “workflow failed”.
Dòng đó gần như vô dụng.
2. Ba lớp monitoring nên có
Lớp 1: Technical health
request_count
error_rate
latency_p95
latency_p99
queue_depth
retry_count
database_query_time
Nó trả lời: hệ thống có chạy ổn không?
Lớp 2: AI behavior
model_name
prompt_version
output_parse_error_rate
evaluation_score
human_correction_rate
low_confidence_rate
Nó trả lời: AI có đang tạo output ổn không?
Lớp 3: Product impact
lead_response_time
follow_up_created_count
follow_up_sent_count
quote_created_count
deal_stage_conversion
user_acceptance_rate
Nó trả lời: workflow có tạo giá trị không?
3. Log phải có context
Log kiểu này không đủ:
Error: LLM failed
Log nên có context:
{
"event": "workflow.step_failed",
"workflow_id": "lead_follow_up_v1",
"run_id": "run_789",
"workspace_id": "ws_001",
"lead_id": "lead_123",
"step": "generate_follow_up_message",
"model": "gpt-4.1-mini",
"prompt_version": "followup_v3",
"error_type": "json_parse_error",
"latency_ms": 2840
}
Không cần log quá nhiều, nhưng log phải giúp người đọc biết chuyện gì đang xảy ra.
4. Trace một workflow như một câu chuyện
Một trace tốt giống như timeline:
run_789
├── validate_lead: 12ms
├── enrich_company: 430ms
├── classify_lead: 910ms
├── generate_follow_up: 2840ms
├── parse_output: failed
└── fallback_to_draft_template: 18ms
Khi nhìn trace này, ta biết ngay vấn đề nằm ở bước parse output, không phải database hay frontend.
5. Alert ít nhưng đúng
Một hệ nhỏ không cần 50 alerts. Alert nhiều quá thì cuối cùng không ai đọc.
Tôi sẽ bắt đầu với vài alert:
Workflow failure rate > 5% trong 10 phút
Queue depth tăng liên tục trong 15 phút
LLM timeout rate > 10%
Output parse error tăng đột biến
Human correction rate tăng sau khi đổi prompt
Điểm cuối rất quan trọng: không chỉ alert kỹ thuật, mà alert cả chất lượng AI.
Kết
Monitoring cho AI workflow không cần bắt đầu phức tạp. Nhưng phải bắt đầu đúng.
Đầu tiên, log có context.
Sau đó, metrics cho từng step.
Rồi trace để hiểu luồng chạy.
Cuối cùng, evaluation và business metric để biết AI có thật sự hữu ích không.
Một AI workflow không quan sát được thì chỉ là một black box đẹp mắt. Chạy được hôm nay, nhưng ngày mai sai ở đâu thì không ai biết.
New posts, shipping stories, and nerdy links straight to your inbox.
2x per month, pure signal, zero fluff.