Bỏ qua, tới nội dung

Case 03 / Agent đặt hàng · song ngữ

Wingman

Đặt KFC Việt Nam trọn vẹn trong một khung chat, tiếng Việt hay tiếng Anh — trong khi code server tất định, không phải model, nắm mọi con số giá.

Menu74 món thật, cả hai ngôn ngữ
Bảng giátừng đồng được tính lại phía server
Test65 test trong 10 file
StackAI SDK v7 · Supabase · Zod · Vitest
wingman — chat commerce200 OK
Wingman — khung chat đặt hàng

Demo

youtube.com/watch

Nguyên tắc

Agent xếp giỏ hàng, nhưng lúc chốt đơn server tính lại giá từng dòng từ catalog và kiểm lại voucher — client có bị can thiệp cũng không đổi nổi một đồng.

Ghi chú kỹ thuật

Upsell được tính, không được nhắc

Một module thuần (14 test) tính đúng khoảng thiếu tới voucher và món thêm rẻ nhất lấp được nó; LLM chỉ diễn đạt câu chữ. Ra đời sau khi rule nhắc-trong-prompt âm thầm thất bại.

Chốt đơn idempotent

Hai lần bấm đặt trùng nhau gộp về một đơn nhờ partial unique index trên idempotency key — không trừ tiền hai lần, không đốt điểm hai lần.

Cú fix lỗi trộn ngôn ngữ

Lỗi chèn Anh–Việt giữa câu được xử bằng hai system prompt đơn ngữ hoàn toàn, chọn theo nút gim ngôn ngữ — một bug có hồ sơ kèm cách sửa, không phải phỏng đoán.

Chốt chặn chi tiêu

Từng lệnh gọi model được định giá theo micro-USD và ngắt ở $20/ngày, reset theo giờ Việt Nam.

Thêm màn hình

Khay chốt đơn của Wingman hiển thị form địa chỉ giao hàng, tóm tắt đơn hàng và tổng tiền
Một lượt chat tiếng Việt trong Wingman với câu trả lời của agent, tổng giỏ hàng đang chạy và sidebar vận hành