Mô hình PRG cho các AI Agent
Các AI agent đang lặp lại một sai lầm từ 25 năm trước.
Vào những năm 90, các biểu mẫu web gặp một lỗi nghiêm trọng. Người dùng đặt hàng, nhấn làm mới (refresh), và trình duyệt sẽ gửi yêu cầu đặt hàng một lần nữa. Điều này dẫn đến việc bị tính phí hai lần và một khách hàng giận dữ.
Giải pháp là mô hình Post/Redirect/Get (PRG). Nó hoạt động như sau:
- Người dùng gửi một yêu cầu POST để gửi dữ liệu.
- Máy chủ xử lý dữ liệu.
- Máy chủ gửi một lệnh chuyển hướng (redirect) đến một URL mới.
- Trình duyệt thực hiện một yêu cầu GET để hiển thị kết quả.
Nếu người dùng nhấn làm mới, họ chỉ thực hiện lại yêu cầu GET. Yêu cầu POST nguy hiểm đã không còn nữa.
Các AI agent đã mang lỗi này quay trở lại.
Khi một agent gọi một công cụ (tool) để thanh toán thẻ hoặc tạo một bản ghi, kết nối mạng có thể bị ngắt. Agent không biết liệu hành động đó đã thành công hay chưa. Nó thử lại. Và giờ đây khách hàng bị tính phí hai lần.
Bạn có thể khắc phục điều này bằng cách sử dụng các khóa idempotency. Một khóa idempotency hoạt động giống như một lệnh chuyển hướng. Nó tách biệt việc "thực hiện hành động" khỏi việc "hiển thị kết quả".
Mô hình dành cho các agent nên trông như thế này:
- Agent tạo ra một khóa duy nhất trước lần thử đầu tiên.
- Nó sử dụng một giá trị ổn định như ID người dùng và ID giỏ hàng.
- Nó gửi khóa này kèm theo mỗi lần gọi công cụ.
- Máy chủ kiểm tra khóa. Nếu thấy lại khóa đó, nó sẽ trả về kết quả trước đó thay vì thực hiện hành động hai lần.
Đối với các tác vụ dài, bạn cần nhiều hơn là chỉ một chiếc khóa. Bạn cần checkpointing. Bạn phải lưu lại trạng thái ở mỗi bước. Điều này đảm bảo rằng khi khởi động lại, nó sẽ tiếp tục từ nơi đã dừng lại.
Hãy tuân thủ các quy tắc sau cho bất kỳ công cụ agent nào có thay đổi dữ liệu:
- Mọi công cụ làm thay đổi dữ liệu (mutating tool) đều phải chấp nhận một khóa idempotency.
- Trích xuất khóa từ ý định của người dùng, không phải từ dấu thời gian (timestamp).
- Tạo khóa trước lần thử đầu tiên.
- Sử dụng lại cùng một khóa trong mỗi lần thử lại.
- Đối với các tác vụ dài, hãy checkpoint mọi bước trung gian.
Lớp (layer) thay đổi, nhưng logic vẫn giữ nguyên.
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi
