← Tất cả bài viếtHậu trường build

Con bot của một spa suýt trả lời bằng dữ liệu của spa khác — tôi đã bịt lỗ đó thế nào

2026-06-22

Có những lỗi làm sập server — bạn thấy ngay, sửa ngay. Và có những lỗi không làm sập gì cả: hệ thống vẫn xanh, test vẫn pass, khách vẫn được trả lời. Chỉ là câu trả lời đó lấy nhầm dữ liệu của người khác.

Tuần trước tôi suýt để loại lỗi thứ hai trôi qua.

Một cái não, nhiều spa

Con bot tư vấn của tôi giờ không phục vụ một spa nữa. Nó phục vụ nhiều spa cùng lúc — mỗi spa là một tenant: bảng giá riêng, dịch vụ riêng, giọng riêng, khuyến mãi riêng. Về mặt hạ tầng, tất cả chạy trên cùng một lõi. Đó là điều khiến mô hình này có lãi: xây một lần, bán nhiều nơi.

Nhưng "chạy chung lõi" và "trộn chung dữ liệu" là hai chuyện khác nhau một trời một vực. Và ranh giới giữa chúng mỏng hơn bạn tưởng.

Khi tôi dựng tầng tri thức cho bot — phần giúp nó "biết" về spa để trả lời — tôi nhét vào đó vài mẩu tài liệu dùng chung: một file câu hỏi thường gặp, vài đoạn hướng dẫn chung. Hồi một spa, cách đó hợp lý. Tiện. Đỡ phải lặp lại.

Vấn đề là khi lên nhiều spa, mẩu "dùng chung" đó vẫn nằm nguyên trong prompt và bộ nhớ truy hồi (RAG) của từng con bot. Tức là: nội dung tôi viết cho ngữ cảnh của spa A vẫn được con bot của spa B đọc thấy khi soạn câu trả lời cho khách của spa B.

Chưa ai bị lộ gì nghiêm trọng. Nhưng cơ chế thì đã ở đó. Và với một con bot, "cơ chế đã ở đó" nghĩa là sớm muộn cũng xảy ra.

Vì sao đây là cơn ác mộng riêng của bot nhiều khách

Trong phần mềm thường, cô lập dữ liệu giữa các khách hàng là chuyện đã giải quyết xong từ lâu: mỗi truy vấn kèm một tenant_id, database tự lọc, hết. Bạn không trả nhầm đơn hàng của người này cho người kia.

Nhưng bot AI có một cánh cửa sau mà phần mềm thường không có: prompt. Mọi thứ bạn đưa vào ngữ cảnh để mô hình đọc — tài liệu, hướng dẫn, ví dụ — đều trở thành thứ nó có thể nhắc lại. Mô hình không phân biệt "cái này của tenant nào". Nó chỉ thấy chữ, và chữ nào nằm trong tầm mắt thì đều có thể bị tổng hợp vào câu trả lời.

Nói cách khác: trong bot đa khách, mọi mẩu dữ liệu bạn để lọt vào ngữ cảnh chung đều là một lỗ rò tiềm tàng. Không phải vì code sai. Mà vì bạn để chung thứ lẽ ra phải để riêng.

Cách tôi bịt lại

Việc sửa, hoá ra, không phải viết thêm code thông minh — mà là gỡ bỏdựng kỷ luật:

1. Gỡ sạch tài liệu tĩnh khỏi não chung. Mẩu file dùng chung kia bị bỏ hoàn toàn khỏi prompt và RAG của tất cả bot spa. Mỗi con bot từ nay chỉ được đọc đúng tri thức của tenant nó — không một chữ thừa.

2. Tách "tri thức" khỏi "giá". Tôi đặt một luật cứng: ô nhập tri thức tự do của khách không được chứa giá. Giá chỉ đến từ catalog có cấu trúc, tra cứu chính xác — không bao giờ từ một đoạn văn mô tả mà mô hình "nhớ mang máng". (Đây là một luật tôi sẽ kể kỹ trong một bài riêng — vì nó cứu tôi khỏi loại sai nguy hiểm nhất: bot báo nhầm giá.)

3. Đồng bộ có chủ đích, không ngầm. Việc nạp lại tri thức cho một bot trở thành một hành động có nút bấm, rõ ràng, thay vì một quá trình chạy ngầm mà tôi không kiểm soát được nó kéo theo cái gì.

Sau khi sửa, toàn bộ test vẫn xanh — nhưng giờ chúng xanh vì một lý do khác: mỗi con bot đã thật sự bị nhốt trong ranh giới dữ liệu của riêng nó.

Bài học tôi rút ra

Điều khiến tôi suy nghĩ nhất không phải bản thân lỗi, mà là nó không phát tín hiệu gì. Không crash, không lỗi đỏ, không khách phàn nàn. Nếu chỉ ngồi chờ hệ thống "kêu", tôi sẽ không bao giờ thấy nó.

Với bot phục vụ nhiều khách, có một câu hỏi tôi giờ luôn tự hỏi trước khi để bất cứ thứ gì vào ngữ cảnh:

"Nếu mẩu dữ liệu này xuất hiện trong câu trả lời cho một khách KHÁC, tôi có chịu được không?"

Nếu câu trả lời là không — nó không được phép nằm chung. Đơn giản vậy. Nhưng phải hỏi thì mới thấy.

Dữ liệu khách hàng là thứ người ta giao cho bạn vì tin. Trong một con bot đa khách, giữ niềm tin đó không phải là một tính năng — nó là cái nền. Và cái nền thì phải kiểm tra cả những chỗ không kêu.


Tôi đang xây và bán bot AI thực chiến cho doanh nghiệp Việt, và viết lại từng quyết định — kể cả những cái suýt sai. Nếu bạn cũng đang build một con bot để bán ra thật, tôi mở một mini-course miễn phí về chuyện đó: ngochinguyen.com/hoc/free.

Nhận bài thực chiến qua email

Mỗi tuần một bài về cách đưa AI vào doanh nghiệp thật. Miễn phí, huỷ bất cứ lúc nào.