AI Engineer Notes
Tất cả bài

Agents · Security · MCP

Agent không đọc policy doc: đặt quyền và giới hạn chi phí ở gateway

Bấm ▶ để xem, có thuyết minh và phụ đề. Mở toàn màn hình ↗

Tóm tắt

Giải thích 3 phút 09 giây cho talk "AI Agents Don't Read Your Policy Docs. They Hit Your APIs" của CTO Gravitee tại AI Engineer World's Fair 2026. Talk là một buổi demo trực tiếp so sánh hai agent đặt khách sạn chạy song song. Agent bên trái để luật trong prompt và gọi thẳng model, các MCP tool và Databricks. Agent bên phải đi qua Gravitee gateway, và quyền được gắn vào identity của agent. Bên dưới có packet capture cho thấy thực tế đã chạy những gì.

Vấn đề: agent rất sẵn lòng giúp. Có tool trong tay và yêu cầu nghe hợp lý là nó dùng. Khách sạn có quy định không dùng AI cho thao tác này, nhưng agent không đọc. Chỉ một prompt đã chạy DELETE FROM bookings WHERE 1=1 và xoá 10 dòng (3:02). Vì vậy người nói cho rằng kiểm soát không thể nằm trong prompt hay file markdown, mà phải gắn vào identity của agent và được thực thi ở gateway (1:13, 1:44).

Tool hijack (3:45). Một "duty manager" giả mạo đòi dùng tool admin cleanup. Agent trái chạy luôn và xoá sạch booking. Agent phải cũng tìm thấy tool đó, nhưng gateway kiểm tra scope: cần admin, trong khi agent chỉ được search, book, cancel, weather. Kết quả là 403 Forbidden. Kịch bản xuất dữ liệu khách cũng bị chặn theo cách tương tự (5:32).

Rate limit (7:19). Gửi 8 request giống nhau. Không có bảo vệ thì cả 8 đều chạy. Qua gateway với quota 3 request mỗi phút, chỉ 3 request lọt qua, request 4 đến 8 nhận 429 trước khi kịp gọi model.

Semantic cache (9:16). Lần hỏi đầu miss Redis cache, gọi model, và câu trả lời được lưu 300 giây. Các lần hỏi lặp lại lấy từ cache, chi phí khoảng một phần năm ($0.0026 so với $0.0128 trong demo). Ngưỡng độ tương đồng có thể chỉnh (9:46).

Token bomb (11:40). Một request nhồi 2.041 token context. Agent thường trả tiền cho toàn bộ. Gateway đếm token trước, thấy vượt giới hạn 1.500 nên trả 429 và không gọi model. Câu hỏi lạc đề như hỏi thời tiết cũng có thể lọc kiểu này, nhưng phần này chỉ được nói chứ không demo (12:16).

Gateway viết thành code là một chuỗi kiểm tra chạy trước model: scope, rồi rate, rồi token budget, rồi thử cache, sau đó mới gọi model, lưu kết quả và ghi log mọi quyết định. Đoạn code trong animation là bản dựng lại theo thứ tự trong các trace, không phải cấu hình thật của Gravitee.

Vì sao không chỉ viết prompt tốt hơn? Luật hard-code ổn khi có vài agent, nhưng agent sẽ gọi agent khác, và talk có dẫn dự báo 144 agent cho mỗi người. Cùng lớp gateway này còn có thể route giữa các model, cắt bớt 64 tool của một MCP server và phát hiện shadow AI trên laptop (13:16–15:48).

Đánh đổi (nhận định của bản tóm tắt, không phải của người nói): gateway chỉ thấy traffic đi qua nó. Scope chặn được lời gọi không có quyền, nhưng không chặn được lời gọi có hại mà user vẫn có quyền làm. Cache có thể cũ hoặc khớp nhầm câu hỏi. Và đây là demo của vendor với giới hạn cỡ demo, không phải benchmark.

Ba bài học: đặt quyền vào identity chứ không vào prompt; chặn chi phí trước khi gọi model chứ không phải sau; và tin packet log chứ đừng tin câu trả lời của agent.

Video gốc

Bài khác