№ 69
ViVi giúp người dùng đặt và quản lý lịch lái thử VinFast rõ ràng, thuận tiện hơn, đồng thời tiếp tục đồng hành sau khi đặt lịch để khách biết cần chuẩn bị gì trước khi tới showroom. Hệ thống còn hỗ trợ tư vấn, hỏi đáp theo nhu cầu từng người và cá nhân hóa trải nghiệm thông qua nội dung email xác nhận, thiệp mời dành cho người lái và các hỗ trợ phù hợp với từng booking.
Project P-053 — Nhóm Du lịch Hà Nội
ViVi là hệ thống hỗ trợ đặt lịch lái thử VinFast và chăm sóc khách hàng sau khi lịch đã được xác nhận. Hệ thống không được định vị đơn thuần như một chatbot đặt lịch. Mục tiêu chính là giải quyết toàn bộ khoảng trống từ lúc khách bắt đầu muốn lái thử cho tới khi khách thực sự bước vào showroom.
Giải pháp gồm ba phần chính:
Điểm quan trọng trong định hướng sản phẩm là không dùng AI cho mọi bước. Những thao tác cần độ chính xác và tính giao dịch cao như chọn xe, giữ slot, xác nhận, đổi hoặc hủy lịch được xử lý bằng giao diện có cấu trúc và nghiệp vụ backend. AI chỉ được dùng tại những điểm hội thoại thực sự tạo thêm giá trị.
VinFast có dải sản phẩm rộng, từ các mẫu xe đô thị giá thấp tới các mẫu SUV cao cấp. Khoảng chênh lệch giá giữa các mẫu lớn, vì vậy quyết định mua xe thường đòi hỏi người dùng phải tìm hiểu và cân nhắc trong thời gian dài. Trong bối cảnh đó, buổi lái thử là một trong những thời điểm người mua chuyển từ việc tìm hiểu thông tin sang trải nghiệm thực tế và hình thành quyết định mua.
Các số liệu ngành được nhóm sử dụng trong slide cho thấy một vấn đề đáng chú ý: tỷ lệ khách thực sự xuất hiện với lịch lái thử đặt online có thể thấp, trong khi trải nghiệm tại showroom vẫn có ma sát như phải chờ đợi. Nhóm cũng nhấn mạnh rõ rằng các con số này chủ yếu đến từ thị trường nước ngoài và không được xem là số liệu đại diện cho Việt Nam; chúng chỉ được dùng để xác định hướng của bài toán trước khi nhóm tiến hành phỏng vấn người dùng Việt Nam.
Vì vậy, bài toán không chỉ là “làm sao để có một form đặt lịch online”, mà là:
Làm sao biến một ý định lái thử thành một lịch hẹn có thật, được vận hành rõ ràng, và giữ được cam kết của khách cho tới thời điểm họ tới showroom?
Qua ba cuộc phỏng vấn định tính ban đầu, nhóm nhận thấy người dùng có cảm giác phải . Họ không chắc:
Một phát hiện quan trọng từ nghiên cứu là người dùng có thể bỏ hẹn không phải vì ngay từ đầu họ không muốn đi, mà vì ý định bị giảm dần sau nhiều bước trải nghiệm thiếu chắc chắn.
Điều này khiến “no-show” không chỉ là vấn đề nhắc lịch. Nó có thể là hậu quả của việc người dùng không còn tin rằng cuộc hẹn của mình được vận hành nghiêm túc.
Một vấn đề khác là việc đổi hoặc hủy lịch thường buộc người dùng phải liên hệ trực tiếp với một nhân viên. Điều này tạo ra ma sát tâm lý: hủy lịch đồng nghĩa với việc phải nhắn, gọi hoặc giải thích với một người thật.
Trong trường hợp đó, im lặng dễ hơn hủy.
Với showroom, điều này tạo ra hậu quả ngược lại: xe demo, nhân sự và khung giờ vẫn bị giữ cho một khách không còn ý định tới, trong khi hệ thống không nhận được tín hiệu sớm để giải phóng nguồn lực.
Do đó, một yêu cầu quan trọng của hệ thống là cho phép khách tự tra cứu, đổi hoặc hủy lịch trong cùng một luồng, có xác thực và không cần giải thích với sales.
Phỏng vấn người dùng cho thấy trường hợp một người đặt lịch hộ cho vợ/chồng hoặc người thân là tình huống thực tế. Nếu hệ thống chỉ có một hồ sơ “khách hàng”, nhiều lỗi có thể xảy ra:
Vì vậy, hệ thống phải phân biệt rõ hai vai trò:
Hai vai trò có hồ sơ, nội dung thông báo và phạm vi thông tin khác nhau.
Sau khi hoàn thiện và kiểm thử bản Hi-Fi, nhóm chủ động nhìn rộng hơn toàn bộ hành trình từ lúc khách đặt lịch cho tới khi thực sự đến showroom, thay vì chỉ dừng ở việc tạo được một booking.
Kết quả test cho thấy phần đặt lịch có thể được xử lý tốt bằng giao diện có cấu trúc, trong khi sau khi lịch được xác nhận vẫn còn một khoảng trống lớn:
Từ đó, nhóm mở rộng vai trò của ViVi sang giai đoạn sau khi booking được xác nhận: phần booking tiếp tục dùng workflow có cấu trúc để đảm bảo nhanh và chính xác, còn ViVi hỗ trợ chuẩn bị, giải đáp và duy trì context cho khách trước khi tới showroom.
Từ slide và nghiên cứu người dùng, bài toán được cô đọng thành năm việc chính:
Quyết định kỹ thuật quan trọng nhất của dự án là tách phần giao dịch xác định được bằng trạng thái khỏi phần hội thoại cần suy luận.
Các hành động như:
được xử lý bằng backend service và các action có cấu trúc. Các nút bấm trong UI có thể đi thẳng tới nghiệp vụ booking thay vì bắt buộc đi qua LLM.
Thiết kế này giúp đảm bảo rằng ngay cả khi model gặp lỗi, hết quota hoặc dịch vụ AI tạm thời không khả dụng, người dùng vẫn có thể hoàn thành các thao tác booking cốt lõi.
ViVi được dùng khi nhiệm vụ cần hiểu ngữ cảnh hoặc tương tác tự nhiên, đặc biệt là:
Cách chia này giúp hệ thống tận dụng AI mà không để LLM trở thành nguồn sự thật của booking.
Luồng chính của hệ thống được thiết kế theo các bước:
Nếu khung giờ khách chọn không còn khả dụng, hệ thống ưu tiên gợi ý các lựa chọn thay thế gắn với inventory thật thay vì chỉ trả về một thông báo chung chung.
Booking được xây dựng như một nghiệp vụ giao dịch chứ không phải chỉ là một đoạn hội thoại.
Các cơ chế chính gồm:
PostgreSQL đóng vai trò source of truth cho booking, showroom, xe demo, slot, hồ sơ người dùng và trạng thái liên quan.
Đây là một phần quan trọng của thiết kế sản phẩm lẫn backend.
Sau khi xác định booking là đặt hộ:
Trong post-booking agent, câu hỏi được tách thành ba nhóm:
Nếu người lái không cung cấp thông tin, hệ thống không cố suy đoán. Bản tóm tắt có thể ghi rõ dữ liệu đó chưa có và cần xác minh tại showroom.
Backend sử dụng FastAPI làm API layer và LangGraph để điều phối ViVi.
Một message hội thoại đi qua các bước chính:
Việc giới hạn tool theo skill giúp giảm khả năng agent gọi nhầm nghiệp vụ. Các hành động có tính thay đổi trạng thái, đặc biệt là xác nhận booking, còn được ràng buộc với action/confirmation cụ thể thay vì để free-form model tự quyết định.
Sau khi booking được xác nhận, ViVi chuyển trọng tâm sang hỗ trợ chuẩn bị cho buổi lái thử.
Agent có thể:
Hồ sơ có thể bắt đầu ở trạng thái gắn với conversation/session và được liên kết với identity tin cậy khi người dùng đã xác thực hoặc booking thành công. Điều này cho phép hệ thống giữ được tính liên tục của trải nghiệm mà không buộc người dùng phải khai báo quá nhiều ngay từ đầu.
Một mục tiêu của ViVi không phải là thay sales, mà là giảm việc sales phải hỏi lại từ đầu.
Thông tin được tổng hợp theo nguồn, ví dụ:
Cách làm này giúp nhân viên phân biệt rõ đâu là dữ liệu chắc chắn và đâu là dữ liệu chưa được xác nhận, thay vì nhận một đoạn “AI summary” không có nguồn gốc.
Slide cũng đặt ra hai nguyên tắc vận hành cần kiểm soát:
Hệ thống có notification worker để xử lý xác nhận, reminder và các tác vụ nền liên quan booking. Trong phạm vi sản phẩm được trình bày trên slide, email là kênh giao tiếp chính cho xác nhận và nhắc lịch.
README vẫn giữ một số integration tùy chọn trong codebase, nhưng slide thể hiện quyết định sản phẩm hiện tại là thu hẹp phạm vi để tránh phụ thuộc vào nhiều kênh cùng lúc.
Người dùng cũng có thể quay lại một entry point quản lý booking để:
Internal Portal dùng chung backend với customer app nhưng có authentication và RBAC riêng.
Portal hỗ trợ các vai trò vận hành quản lý:
Nhờ dùng chung source of truth, trạng thái mà khách nhìn thấy, trạng thái ViVi sử dụng và trạng thái nhân viên vận hành xử lý có thể được đồng bộ từ cùng một hệ thống dữ liệu.
Stack chính hiện tại gồm:
| Lớp | Công nghệ / vai trò |
|---|---|
| Customer web | React 18, Vite, React Router |
| Internal Portal | React 18, Vite |
| Backend | Python 3.11, FastAPI |
| AI orchestration | LangGraph / LangChain |
| Database | PostgreSQL |
| Conversation persistence | LangGraph PostgreSQL checkpointer |
| Redis | Thành phần tùy chọn cho cache/queue/rate-limit tùy cấu hình |
| Notification | Gmail integration và provider cho môi trường local |
| Container | Docker / Docker Compose |
| CI/CD | GitHub Actions |
| Backend deployment | Google Cloud Run |
| Frontend deployment | Cloudflare Pages |
Mạch hội thoại được checkpoint trong PostgreSQL ở production, vì vậy có thể tiếp tục sau khi backend restart thay vì phụ thuộc hoàn toàn vào memory trong process.
Hướng phát triển tiếp theo tập trung vào ba việc: hoàn thiện điều kiện trước pilot, làm sâu post-booking agent và mở rộng agent tư vấn khi use case đã đủ rõ.
Thực hiện usability test với ít nhất 7 người đang thực sự có ý định đi lái thử để kiểm tra lại toàn bộ hành trình trên phiên bản hiện tại.
Các điểm cần quan sát chính gồm:
Trước khi mở pilot, cần đảm bảo các test liên quan tới booking, access control, guardrail và regression đều đạt, đồng thời xử lý các lỗ hổng quyền truy cập còn tồn tại. Đây là điều kiện cần để thử nghiệm với người dùng thật mà không làm thay đổi tính đúng đắn của luồng booking hiện tại.
Sau khi phần booking đã ổn định, ViVi tiếp tục được phát triển sâu hơn ở giai đoạn từ lúc lịch được xác nhận tới trước khi khách đến showroom.
Trọng tâm gồm:
Mục tiêu của bước này không phải thu thập càng nhiều profile càng tốt, mà là giúp ViVi hiểu đủ ngữ cảnh để đưa ra hỗ trợ hữu ích hơn cho chính nhu cầu đang diễn ra.
Một hướng phát triển tiếp theo là đưa agent tư vấn hiện đã có nền tảng trong codebase vào luồng sản phẩm khi use case và phạm vi tri thức đã đủ rõ.
Agent này có thể đảm nhiệm phần hỗ trợ người dùng trong giai đoạn tìm hiểu và cân nhắc xe: hiểu nhu cầu sử dụng, giải đáp câu hỏi dựa trên nguồn tri thức được kiểm soát và giúp người dùng thu hẹp những yếu tố cần quan tâm trước khi quyết định đăng ký lái thử.
Việc mở agent tư vấn cần tiếp tục tuân theo nguyên tắc hiện tại của hệ thống:
Theo hướng này, ViVi có thể phát triển từ một hệ thống booking + post-booking thành một trợ lý hỗ trợ xuyên suốt hơn trong hành trình lái thử, nhưng vẫn giữ ranh giới rõ giữa tư vấn bằng AI và nghiệp vụ giao dịch cần tính chính xác tuyệt đối.
ViVi giải quyết bài toán rộng hơn một form đăng ký lái thử.
Giá trị cốt lõi của hệ thống nằm ở ba điểm:
Về kỹ thuật, hệ thống đã có các thành phần của một MVP end-to-end: frontend, backend nghiệp vụ, agent orchestration, database, OTP, notification, Internal Portal, guardrail, benchmark và CI/CD. Trước pilot, hai việc cần được ưu tiên là mở rộng user testing với người có nhu cầu thật và đóng các vấn đề access/security còn lại; sau đó nhóm mới tiếp tục làm sâu post-booking và mở rộng agent tư vấn.
Thành công của ViVi vì vậy không nên được đánh giá bằng việc agent nói được bao nhiêu câu hay người dùng chat bao lâu. Chỉ số quan trọng nhất là liệu hệ thống có giúp nhiều booking thực sự chuyển thành một buổi lái thử được thực hiện hay không.