Đừng Để AI Agent Tự Bấm Nút: 3 Lớp Guardrail Trong n8n Giúp Bot Ngừng Chốt Đơn Sai, Ngừng Trả Lời Lặp Và Ngừng Gửi Nhầm Thông Tin Cho Khách
Vài ngày sau bài chia sẻ về kỹ thuật Write-Behind Cache trị lỗi 429 trên Google Sheets, chính anh chủ shop hôm trước nhắn lại cho mình: "Tỵ ơi, bot hết đơ, hết lỗi đỏ rồi, chạy mượt lắm. Nhưng đêm qua nó tự xác nhận một đơn 4.3 triệu cho khách mới chỉ nhắn đúng một câu 'còn hàng không shop', rồi gửi luôn số tài khoản chuyển khoản!"
Đây là giai đoạn thứ hai mà gần như anh em nào làm chatbot n8n cũng sẽ đi qua: bot đã chạy nhanh, đã ổn định, nhưng bắt đầu làm những việc mà chủ shop không hề cho phép.
Điều quan trọng cần nói thẳng: lỗi này không nằm ở model. Model hiểu đúng ý khách. Lỗi nằm ở chỗ workflow cho phép AI gọi tool ngay lập tức sau khi "hiểu", trong khi giữa hiểu và hành động lẽ ra phải có 3 lớp chặn.
Mình gọi đó là 3 lớp Guardrail bắt buộc, và cả ba đều dựng được bằng node có sẵn trong n8n:
Lớp 1 — Validate đầu vào trước khi AI được phép suy nghĩ: Trước node AI Agent, mình đặt một nhánh kiểm tra dữ liệu cứng: khách này có tồn tại trong Bảng Khách Hàng không, mã đơn khách nhắc tới có thật trong Bảng Đơn Hàng không, phiên chat đang ở trạng thái nào (mới hỏi giá, đã chốt, đang khiếu nại, hay đã đóng). Quy tắc rất đơn giản: thiếu bất kỳ trường bắt buộc nào thì bot không được gọi tool, chỉ được hỏi lại khách đúng một câu để lấy thông tin còn thiếu. Riêng bước này đã chặn được phần lớn tình huống bot "đoán bừa" mã đơn và trạng thái thanh toán.
Lớp 2 — Ma trận quyền hành động (Action Permission Matrix): Đây là lớp mà 90% workflow bỏ qua. Mình tạo thêm một sheet nhỏ tên Bảng Phân Quyền, mỗi dòng là một tool mà AI được gọi, kèm 3 cột: tự động (allow_auto), cần khách xác nhận (require_confirm), và chỉ người thật được làm (human_only). Node AI Agent chỉ được quyền ĐỀ XUẤT hành động, còn node IF phía sau mới đọc Bảng Phân Quyền để quyết định có thực thi hay không. Cụ thể ở shop này: tra tồn kho và báo giá để tự động; tạo đơn thì bắt buộc khách nhắn đúng chữ "xác nhận" mới ghi (confirm token); còn đổi giá, hủy đơn, gửi thông tin tài khoản ngân hàng, hoặc đơn giá trị trên 2 triệu thì đẩy thẳng cho người thật. Muốn siết hay nới quyền chỉ cần sửa một ô trên Sheets, không phải mở lại workflow.
Lớp 3 — Audit trail và Human Review: Mỗi lần AI gọi tool, hệ thống ghi một dòng vào Bảng Nhật Ký theo đúng cơ chế gom hàng đợi Batch Append của bài trước (nên không tốn thêm quota API): thời điểm, khách nào, intent được phân loại là gì, tool nào được gọi, dữ liệu đầu vào, kết quả trả về, và ai là người duyệt. Với các hành động rủi ro cao, workflow không gửi cho khách ngay mà đẩy một thẻ chờ duyệt về Telegram của chủ shop kèm 2 nút Duyệt / Từ chối; quá 15 phút không ai bấm thì bot tự nhắn khách một câu giữ nhịp lịch sự thay vì im lặng.
Sơ đồ n8n hoàn chỉnh mình đang chạy có thứ tự như sau: • Webhook nhận tin nhắn (kèm khoá chống trùng để retry không bị trả lời 2 lần). • Node phân loại intent. • Node validate dữ liệu và trạng thái phiên. • AI Agent sinh phương án trả lời và đề xuất tool. • Node IF đọc Bảng Phân Quyền để chặn hoặc cho qua. • Bộ lọc cuối cùng trước khi gửi (chặn số tài khoản, link lạ, thông tin nội bộ). • Ghi Audit Log theo đợt. • Nhánh Human Review cho hành động rủi ro cao.
Kết quả thực tế của shop này sau 2 tuần chạy đủ 3 lớp: • Số đơn bị bot tự xác nhận sai: từ 6 đơn/tuần xuống còn 0. • Tin nhắn trùng lặp gửi cho khách: giảm khoảng 95%. • Khoảng 12% inbox được chuyển cho người thật, nhưng là chuyển đúng ca khó, thay vì để bot liều. • Khi khách khiếu nại, chủ shop tra đúng một dòng log là biết bot đã nói gì, dựa trên dữ liệu nào.
Nói ngắn gọn: một AI Agent đáng tin không phải là con bot thông minh nhất, mà là con bot biết rõ nó được phép làm gì, khi nào phải hỏi lại, và khi nào phải nhường người thật.
Đừng xây bot như một nhân viên tự do muốn làm gì thì làm. Hãy xây nó như một nhân viên mới: có mô tả công việc rõ ràng, có giới hạn quyền hạn, và có sổ ghi chép để đối chiếu.
Chi tiết sơ đồ n8n mẫu, cấu trúc Bảng Phân Quyền và đoạn code kiểm tra quyền trước khi gọi tool mình để tại link Blog dưới phần bình luận nhé!
Anh em đang cho bot của mình tự động tới đâu rồi? Đã từng bị bot chốt nhầm đơn hay gửi nhầm thông tin cho khách lần nào chưa? Comment chia sẻ để mọi người cùng né với nhé!
Bình luận
Chi tiết sơ đồ n8n mẫu, cấu trúc Bảng Phân Quyền trên Google Sheets và đoạn code kiểm tra quyền trước khi AI gọi tool mình chia sẻ đầy đủ tại Blog: https://tyauto.name.vn/posts/2026-09-10-personal-feed-ai-agent-guardrails.html
Hostinger VPS — 9router proxy
Proxy định tuyến API AI: giảm chi phí token và tự phân phối yêu cầu qua hơn 40 nhà cung cấp LLM. Triển khai một cú nhấp, sao lưu tự động hằng tuần. giảm tới 69%
Hostinger VPS — n8n tự lưu trữ
Chạy n8n tự lưu trữ: workflow không giới hạn, số lệnh chạy đồng thời không giới hạn, dùng được node cộng đồng. Hoàn tiền trong 30 ngày. giảm tới 69%