← Tất cả bài viếtHậu trường build

Tuần trước tôi đẻ một con bot bán tour — gần như không viết lại dòng lõi nào

2026-07-07

Một con bot tư vấn spa và một con bot bán tour du lịch — nghe chẳng dính gì nhau. Một bên nói liệu trình da, một bên ráp hành trình 4 ngày 3 đêm. Vậy mà tuần trước tôi dựng con bot bán tour mới gần như không viết lại một dòng lõi nào.

Phần lớn việc tôi làm không phải là code logic. Nó là khai báo — ngồi mô tả "con bot mới này gồm cái gì", rồi để cái nền có sẵn tự lắp ráp.

Nghe như khoe. Thật ra đây là lần đầu tiên tôi thấy một quyết định đau đớn mấy tháng trước trả lại tiền cho mình — bằng một thứ đo được: tốc độ đẻ sản phẩm.

Cái hoá đơn tôi đã trả

Quay lại vài tháng. Hồi đó tôi có một con bot spa chạy thật, có khách trả tiền. Rồi tôi nhận ra một việc khó chịu: nếu muốn làm con bot thứ hai cho một ngành khác, tôi sẽ phải copy gần hết code, sửa lung tung, và nuôi hai bản song song mãi mãi.

Tôi đã dừng lại và làm một việc chẳng tạo ra tính năng mới nào cho khách: tôi tách con bot ra làm hai phần.

Một phần là lõi — bộ não chung: cách bot đọc hiểu câu hỏi, cách nó tra cứu dữ liệu, cách nó gọi các "công cụ", cách nó biết khi nào nên dừng lại gọi người. Phần này không quan tâm nó đang bán cái gì.

Phần kia là đặc thù ngành — spa thì có dịch vụ và liệu trình, tour thì có combo và lịch trình. Cái này thay đổi theo từng loại bot.

Lúc đó việc tách này cảm giác như đốt thời gian. Khách không thấy gì khác. Doanh thu không tăng một đồng. Nó chỉ là một hoá đơn tôi trả trước, không biết bao giờ mới được hoàn.

Tuần trước, hoá đơn đó được hoàn

Con bot tour mới — tôi gọi nội bộ là aitour — cần gì để ra đời? Tôi tưởng phải vài tuần. Hoá ra phần lớn việc là điền vào một bản khai báo: con bot này tên gì, tính cách thế nào, bán hai loại hàng là combo tourthành phần lẻ (vé, phòng, xe), chạy trên kênh web.

Khai xong, cái nền tự lắp gần hết phần còn lại. Trang quản trị để nhập combo, đường bot tra cứu dữ liệu, cơ chế gọi người khi khách muốn chốt — tất cả dùng lại nguyên từ con bot spa. Tôi không viết lại bộ não. Tôi chỉ mô tả một bộ mặt mới và cắm nó vào bộ não cũ.

Đây là cái khoảnh khắc một người build chờ đợi: khi công sức bỏ ra trong quá khứ đột nhiên nhân lên, không phải cộng thêm.

Phần tôi vẫn phải tự tay viết — và tại sao

Tôi không muốn vẽ ra một bức tranh "khai báo phát là xong". Có ba mảnh đặc thù của ngành tour mà không cái nền nào khai hộ được, vì chúng là nghiệp vụ riêng:

Thứ nhất, giá. Tour có giá gốc (giá tôi mua từ nhà cung cấp) và giá bán (giá khách thấy). Tôi viết một lớp tính markup — cộng lãi theo phần trăm hoặc số tiền cố định — và giữ một luật cứng: giá gốc tuyệt đối không lộ cho khách. Bot chỉ được nói giá bán.

Thứ hai, lịch trình. Bot ráp hành trình ngày-theo-ngày, nhưng nó chỉ được ghép từ những combo và thành phần có thật trong kho của đúng tenant đó — không bịa ra một khách sạn không tồn tại, không gắn giá tưởng tượng. Và bot không tự gửi báo giá. Nó dựng bản nháp ở trạng thái "chờ duyệt", một con người bấm duyệt rồi mới gửi đi.

Thứ ba, báo giá và lead. Sau khi duyệt, bot dựng một trang báo giá có thương hiệu để gửi khách, đồng thời đẩy khách vào một bảng Kanban để người bán theo dõi từ "mới" tới "chốt".

Ba mảnh này là việc thật, không khai báo được. Nhưng để ý: cả ba đều cắm vào lõi cũ, không thay lõi cũ.

Con số tôi tin được

Tôi không thích nói "nhanh hơn nhiều" một cách mơ hồ. Nên đây là thứ đo được: bộ test tự động của hệ thống.

Mỗi lần tôi thêm một mảnh, tôi chạy lại toàn bộ test để chắc con bot spa cũ không vỡ. Số test xanh đi từ 535 lên 570 lên 579 qua ba đợt — nền tour mới, rồi lịch trình và báo giá, rồi handoff và kênh web. Nghĩa là tôi thêm cả một vertical mới mà các test của con bot spa vẫn xanh nguyên từ đầu tới cuối.

Đó mới là bằng chứng thật của "dùng lại lõi". Không phải tôi nói nó dùng lại. Là cái lõi đó gánh được một ngành hoàn toàn khác mà không một chỗ nào của ngành cũ phải lay chuyển.

Bài học mang đi

Có một loại công việc trong lúc build mà bạn sẽ rất muốn bỏ qua: việc không tạo ra tính năng nào cho khách hôm nay, chỉ sắp xếp lại cái bên dưới cho gọn.

Tách lõi là loại việc đó. Hồi tôi làm, nó giống như trả tiền cho một thứ vô hình.

Nhưng "nền tảng" không phải một từ sang để dán lên slide. Nó là một câu hỏi rất cụ thể: lần tới bạn muốn làm sản phẩm thứ hai, bạn phải viết lại bao nhiêu? Nếu câu trả lời là "gần như không, chỉ khai báo cái mới" — thì cái hoá đơn vô hình kia đã được hoàn, có lãi.

Người làm một sản phẩm cần code "đủ chạy". Người định làm nhiều sản phẩm cần một lúc nào đó dừng lại, hỏi: cái gì ở đây là chung cho mọi sản phẩm, cái gì là riêng của sản phẩm này — và kẻ một đường rạch sạch giữa hai cái đó. Đường rạch đó là toàn bộ giá trị. Tuần trước nó tiết kiệm cho tôi mấy tuần.

👉 Muốn tự tay build con bot đầu tiên đủ tử tế để sau này nhân nó lên thành nhiều sản phẩm — chứ không phải một đống code dùng một lần rồi vứt? Bắt đầu với mini-course miễn phí: Bot AI đầu tiên của bạn — làm xong trong một buổi tối, và bạn sẽ có một cái lõi thật để bắt đầu nghĩ như người dựng nền tảng.

Nhận bài thực chiến qua email

Mỗi tuần một bài về cách đưa AI vào doanh nghiệp thật. Miễn phí, huỷ bất cứ lúc nào.