Câu system design kinh điển của mảng AI. Đừng liệt kê component — hãy nói các quyết định.
Xương sống: kênh chat → gateway (auth, rate limit, che PII) → phân loại ý định → pipeline tương ứng → kiểm đầu ra → trả lời kèm trích nguồn.
Năm quyết định đáng nói:
- Phân tầng model theo độ khó, đừng dùng một model cho tất cả. Một classifier nhỏ đọc câu hỏi rồi định tuyến: hỏi đáp thường → model rẻ + RAG; việc nhiều bước cần gọi tool → model tầm trung; ca đã leo thang → model mạnh nhất. Cộng prompt cache cho system prompt và tool schema, đây là hai đòn giảm chi phí lớn nhất.
- RAG phải trích nguồn bắt buộc và lọc theo quyền. Hybrid search (vector + BM25) rồi rerank lấy 3–5 đoạn. Metadata lọc theo sản phẩm, ngôn ngữ và gói dịch vụ của khách — thiếu bộ lọc này thì bot sẽ tư vấn tính năng mà khách chưa mua.
- Tool chia theo mức rủi ro. Tool chỉ đọc (tra đơn hàng, kiểm tra vận chuyển) cho chạy thẳng; tool ghi (hoàn tiền, huỷ gói) bắt buộc có bước xác nhận. Vòng agent phải có
max_iterationsvà timeout, nếu không sẽ có ca chạy vòng vô hạn đốt tiền. - Chuyển sang người thật là một tính năng, không phải trường hợp lỗi. Kích hoạt khi model không chắc, khi khách yêu cầu, hoặc khi chạm chủ đề nhạy cảm (khiếu nại, pháp lý). Bàn giao phải mang theo toàn bộ lịch sử hội thoại.
- Bộ nhớ hai loại: lịch sử hội thoại ngắn hạn trong Redis (dài quá thì tóm tắt bằng model nhỏ), và hồ sơ khách hàng dài hạn (gói cước, ticket cũ) trong Postgres.
Guardrail hai đầu: đầu vào che PII và phát hiện prompt injection; đầu ra quét rò rỉ PII và đối chiếu câu trả lời với ngữ cảnh đã truy hồi — đây là lớp chặn bịa đặt quan trọng nhất.
Chỉ số phải có: containment rate (tỉ lệ xử lý xong không cần người), CSAT, chi phí mỗi hội thoại, và truy vấn mà RAG không tìm được — danh sách cuối chính là backlog viết thêm tài liệu.
Vòng eval: một bộ 200–500 câu hỏi chuẩn chạy như suite hồi quy mỗi lần đổi prompt hoặc model, chặn deploy khi điểm tụt.
Ước lượng quy mô: 10k người dùng/ngày × 5 lượt × ~4k token ≈ 200M token/ngày. Định tuyến model cộng cache thường kéo chi phí xuống còn khoảng một phần ba.
Đánh đổi nên chủ động nêu: độ trễ đổi lấy chất lượng (stream để cảm giác nhanh hơn), chi phí đổi lấy độ chính xác (định tuyến model), và ngưỡng lưu lượng để cân nhắc tự vận hành model.