Ai đang giữ prompt của user bạn?

Ai đang giữ prompt của user bạn?

Mỗi API call đến model AI phải qua bao nhiêu "trạm trung chuyển"? Zero Data Retention trên AI Gateway giải quyết nỗi lo mà nhiều team đang lờ đi.

Lời thú nhận lúc review kiến trúc

Tháng trước mình ngồi review kiến trúc cho một anh bạn đang build chatbot nội bộ cho công ty logistics. Hệ thống nhìn "sạch đẹp": Next.js frontend, API route gọi thẳng OpenAI, response stream về cho user. Mình hỏi một câu: "Prompt của nhân viên kho — có khi chứa mã hàng, địa chỉ khách — đang đi qua mấy chỗ trước khi đến GPT?" Anh bạn im lặng đúng 5 giây rồi nói: "Chắc... một chỗ?"

Sai. Ít nhất ba chỗ nếu dùng kiến trúc phổ biến hiện nay. Và vấn đề là: mấy "trạm trung chuyển" đó có giữ lại dữ liệu không, giữ bao lâu — đa số team không hề biết.

Bản đồ hành trình của một prompt

Hình dung thế này: mỗi prompt của user giống một kiện hàng giao qua đường cao tốc. Nó không bay thẳng từ browser đến model. Nó phải qua gateway (trạm thu phí), qua logging layer (camera giao thông), qua provider endpoint (kho cuối). Mỗi trạm đều có khả năng "chụp lại" kiện hàng đó.

Vercel vừa tung tính năng Zero Data Retention (ZDR) trên AI Gateway của họ — nói cho vuông: khi bật ZDR, gateway cam kết không lưu bất kỳ prompt hay response nào. Dữ liệu đi qua nhưng không "dính" lại.

Nghe có vẻ hiển nhiên? Nhưng trước ZDR, flow mặc định của hầu hết AI gateway (không riêng Vercel) là log mọi thứ — để phục vụ observability, debugging, analytics. Tức là prompt chứa PII (thông tin cá nhân), dữ liệu nhạy cảm của doanh nghiệp — tất cả đều nằm trong log, đợi ai đó đến... dọn.

Hai kịch bản team Việt Nam nên nghĩ đến ngay

Kịch bản 1: SaaS product có tính năng AI chat

Giả sử team bạn 4 người đang build một SaaS quản lý tuyển dụng. Bạn thêm tính năng "hỏi đáp CV" — HR paste CV vào, AI tóm tắt ứng viên. Mỗi CV chứa tên, số điện thoại, địa chỉ. Nếu gateway đang log prompt, bạn vừa vô tình tạo ra một "kho PII" thứ hai mà không ai quản lý. Khách hàng enterprise hỏi "dữ liệu ứng viên của tôi lưu ở đâu?" — bạn trả lời sao?

Kịch bản 2: Agent nội bộ cho team vận hành

Như mình đã bàn trong bài về agent cần "trọng tài" (bài 51), agent không chỉ gọi model một lần — nó gọi hàng chục lần trong một workflow. Mỗi lần gọi là một prompt đi qua gateway. Nhân với số nhân viên, nhân với số ngày — lượng dữ liệu "vô tình bị lưu" lớn hơn bạn tưởng rất nhiều.

Cái bẫy: nghĩ "provider không lưu" là xong

Nhiều team mình gặp có tư duy: "OpenAI đã có Zero Data Retention option rồi, yên tâm." Plot twist: ZDR ở phía model provider chỉ giải quyết một trạm — trạm cuối. Còn mấy trạm giữa đường thì sao?

Đây là lý do AI Gateway cần ZDR riêng. Khi bạn dùng một gateway layer (dù là Vercel AI Gateway, hay bất kỳ proxy nào khác), nó là một hop riêng biệt trong chuỗi. Nếu hop đó log mà bạn không biết, toàn bộ nỗ lực bảo mật ở provider trở thành vô nghĩa — kiểu như khóa cửa chính nhưng để ngỏ cửa sổ.

Vercel giải quyết bằng cách cho bật ZDR ở cấp gateway: không log prompt, không log response, không lưu trong analytics. Bạn vẫn có thể dùng observability riêng (tracing, metrics) nhưng raw content thì không chạm vào.

Thử ngay chiều nay: kiểm tra "bản đồ dữ liệu" hệ thống AI của bạn

Bạn không cần dùng Vercel mới áp dụng được tư duy này. Ba bước:

Bước 1 — Vẽ data flow của mỗi AI call. Lấy giấy (hoặc Excalidraw) và vẽ: User → Frontend → API/Backend → [Gateway?] → [Logging?] → Provider. Đánh dấu mỗi hop có lưu dữ liệu không.

Bước 2 — Kiểm tra retention policy ở từng hop. Với mỗi service bạn dùng, tìm câu trả lời: "Dữ liệu AI call lưu bao lâu? Ai access được? Có option tắt logging không?" Nếu bạn dùng LangChain hay LlamaIndex — nhớ kiểm tra cả callback/tracing layer của chúng.

Bước 3 — Quyết định strategy. Không phải lúc nào ZDR cũng tốt — nếu bạn cần debug production issues, zero log nghĩa là "lái xe ban đêm tắt đèn pha". Cách cân bằng: log metadata (model nào, latency bao nhiêu, token count) nhưng không log content. Nhiều gateway cho phép tách riêng hai lớp này.

Open-source alternatives đáng xem

Nếu team bạn chưa muốn gắn vào Vercel ecosystem, vài lựa chọn tự host:

Khi self-host gateway, bạn nắm quyền kiểm soát hoàn toàn — nhưng cũng gánh luôn trách nhiệm vận hành. Giống tự lái xe thay vì đi taxi: tự do chọn đường, nhưng xăng dầu bảo hiểm tự lo.

Agent phức tạp hơn — vấn đề nhân lên theo cấp số

Vercel cũng vừa ra Chat SDK cho agent và bộ Agentic Infrastructure — hạ tầng thiết kế riêng cho agent workflows. Khi agent gọi tool, search knowledge base, chạy multi-step reasoning — mỗi bước là một AI call qua gateway. ZDR ở tầng gateway lúc này quan trọng gấp bội vì lượng call không tăng tuyến tính mà tăng theo độ phức tạp của task.

Trong bài về chuyện "cho user xem agent làm gì" (bài 53), mình nói về transparency với end-user. ZDR là mặt kia của tấm huy chương: transparency với chính team bạn — biết rõ dữ liệu đang đi đâu, dừng ở đâu, ai đang giữ.

Dữ liệu AI không giống nước chảy qua ống rồi mất — nó giống xe chạy qua trạm, mỗi trạm đều có camera. Việc của bạn là quyết định camera nào được bật, camera nào phải tắt. Đừng đợi khách hàng hỏi mới đi tìm câu trả lời — lúc đó thường đã muộn rồi.

---

Bụi Wire — nghiện đọc release notes lúc 2 giờ sáng

Nguồn tham khảo