Bài viết

Kinh nghiệm thực chiến

Những gì tôi làm thật về AI cho doanh nghiệp — kiến trúc, kinh doanh, bài học.

Biến code thành tiền

Tôi build cả cỗ máy tính tiền theo lượt — rồi cố tình không bật nó lên

Tôi đã viết xong rating engine đếm từng hội thoại, tính cước vượt quota, ra hoá đơn có dòng. Hạ tầng chạy được. Nhưng tôi không bán bot theo lượt dùng — và quyết định đó cứu con bot của tôi khỏi rơi vào cuộc đua giá rẻ. Đây là lý do "tính được" và "nên tính" là hai chuyện khác nhau.

Biến code thành tiền

Tôi cho khách tự nạp tài liệu cho bot — nhưng cấm tuyệt đối một thứ: cái giá

Tuần trước tôi đẩy phần "Mô tả & Chính sách" và "Nạp tri thức" ra cổng cho chủ spa tự làm — bớt việc cho tôi, họ thấy mình kiểm soát được bot. Nhưng tôi đặt một luật cứng trong code: cái ô nhập tự do đó KHÔNG được chứa giá. Giá chỉ đến từ một nguồn duy nhất, có cấu trúc. Bài này nói về chuyện self-serve nên dừng ở đâu — và vì sao cái ranh giới đó mới là chỗ kiếm ra tiền.

Tư duy builder

Tuần trước tôi ngừng viết bot — để con bot tiếp theo chỉ cần khai báo

Có một ngày tôi quyết định không viết thêm con bot nào nữa. Nghe ngược đời với người sống bằng nghề build bot. Nhưng tôi nhận ra mình đang lặp lại chính mình — và việc đáng làm không phải viết con bot thứ tư, mà là xây cái nền để con bot thứ tư chỉ là một bản khai báo. Đây là chuyện về cú đánh đổi đó, và vì sao tôi đợi đến tận lúc này mới làm.

Hậu trường build

Tối đó tôi bật RAG thật cho sáu con bot cùng lúc — phần khó nhất không phải RAG

Tuần trước tôi dựng một tầng tri thức dùng chung và bật bộ nhớ ngữ nghĩa (RAG) thật cho sáu con bot spa cùng một đêm — 274 mẩu kiến thức, vector 768 chiều trong Postgres. Nhưng phần ngốn thời gian nhất không phải dựng RAG. Mà là dạy bot một ranh giới: khi nào được phép suy luận, và khi nào BẮT BUỘC tra cứu chính xác. Vì với khách, một con bot "nhớ mang máng" về giá còn tệ hơn một con bot ngu thật thà.

Hậ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

Một con bot tư vấn spa và một con bot bán tour du lịch nghe chẳng liên quan gì nhau. Vậy mà tuần trước tôi dựng con bot tour mới gần như không viết lại lõi — chủ yếu là khai báo. Đây là chuyện về cái hoá đơn tôi trả mấy tháng trước khi tách lõi con bot, và lần đầu tiên nó trả lại tiền cho tôi bằng tốc độ.

Tư duy builder

Trước khi bắt đầu, tôi ghi vào một file con số mà nếu không đạt, tôi sẽ dừng

Người builder giỏi khởi động thì dễ, nhưng giỏi dừng thì rất khó. Trước khi chạy pre-sell khoá học đầu tiên, tôi đặt một ngưỡng cứng và hứa với chính mình: không đạt sau 3 tuần, đóng băng, không thêm thời gian. Đây là lý do tôi làm vậy — và tại sao "đường chết" lại là thứ cần đặt trước khi còn chưa bắt đầu.

Hậu trường build

Tôi nhét 372 dịch vụ vào Claude — rồi ra lệnh đừng tự nhớ giá của cái nào

Con bot tư vấn spa của tôi "biết" hơn 370 dịch vụ và sản phẩm. Nhưng có một luật tôi không bao giờ phá — giá tiền không được phép đến từ câu trả lời của Claude, chỉ từ cơ sở dữ liệu. Đây là câu chuyện vì sao, và kiến trúc hai lớp tôi dựng để ép điều đó không bị lách.

Biến code thành tiền

Tôi suýt để khách tự phục vụ — và vô tình xóa lý do để tính giá 3,9 triệu

Làm SaaS "khách tự đăng ký, tự cấu hình, tự làm hết" nghe rất scale. Nhưng với dịch vụ bot AI cao cấp, đó là cách nhanh nhất để tự dìm mình xuống phân khúc 200k/tháng — nơi mọi lợi thế đều bị xóa. Đây là lý do tôi chốt đi theo hướng ngược lại, và tại sao đó là quyết định định vị, không phải kỹ thuật.

Ship một mình

Tôi suýt tối ưu chi phí con bot — trước khi nó kịp tốn của tôi một đồng nào

Bật prompt-cache để tiết kiệm token nghe rất "pro". Nhưng ở một con bot spa lưu lượng thưa, cái mẹo tiết kiệm đó có thể khiến tôi trả tiền NHIỀU hơn. Đây là chuyện vì sao người ship một mình dễ chết vì tối ưu sớm — và cái kỷ luật "đo trước, tối ưu sau" đã cứu tôi khỏi đốt thời gian vào một bài toán chưa tồn tại.

Tư duy builder

Cái Anthropic mới quảng bá rầm rộ — tôi đã chạy nó mấy tháng nay rồi

Anthropic vừa đẩy ra thị trường một cách làm việc mới: đừng prompt Claude từng câu, hãy xây một đội agent có vai trò riêng tự prompt cho nhau. Tôi không cần đọc tin để biết nó hay — tôi đã vận hành đúng mô hình đó để build con bot của mình từ mấy tháng nay. Và chính vì đã chạy thật, tôi thấy ba thứ mà cái demo bóng bẩy giấu đi.

Hậu trường build

Con bot của một spa suýt trả lời bằng dữ liệu của spa khác — tôi đã bịt lỗ đó thế nào

Khi một con bot phục vụ nhiều spa cùng lúc, có một loại lỗi không nằm ở dòng code nào cả — mà ở chỗ bạn để chung cái gì. Tuần trước tôi phát hiện một mẩu tài liệu tĩnh đang lọt vào não của MỌI con bot spa, nghĩa là dữ liệu spa này có thể rò sang câu trả lời cho khách spa khác. Đây là câu chuyện vì sao "rò chéo tenant" là cơn ác mộng của ai làm bot nhiều khách, và cách tôi cô lập lại từng con.

Hậu trường build

Tôi cố tình để con bot KHÔNG tự đặt lịch — và đó là quyết định đúng

Tính năng oách nhất mọi người muốn ở bot CSKH là tự đặt lịch hẹn. Tôi đã chủ động không làm — và để một nhân viên xác nhận tay. Đây là chuyện vì sao "viết code cho cái thực tại đang có" thắng "viết code cho cái demo đẹp", và một mẹo kiến trúc để sau này nâng cấp mà không phải đập đi xây lại.

Ship một mình

Suýt nữa tôi xoá một dịch vụ đang chạy — chỉ vì đồng bộ một file cấu hình

Hôm nay tôi gom cả hệ thống bot về một tên miền duy nhất. Trước khi bấm đồng bộ cấu hình, tôi phát hiện file trên server thật đã âm thầm khác file trong code của mình — và nếu ghi đè theo phản xạ, tôi đã xoá mất một dịch vụ đang phục vụ thật. Đây là chuyện về thứ nguy hiểm nhất với người ship một mình: cái máy và bản gốc của bạn đã trôi khỏi nhau lúc nào không hay.

Hậu trường build

Bot thứ hai phá vỡ con bot đầu tiên — và đó là tin tốt

Tháng Sáu tôi xóa một file code đã mất cả buổi để viết — không phải vì nó hỏng, mà vì con bot thứ hai cho thấy nó không thể nhân lên được. Đây là chuyện về cái giả định sai mà mọi người build bot đầu đều mắc, tại sao nó cần thiết lúc bắt đầu, và cái refactor mà chỉ thực tế mới dạy được.

Ship một mình

Dạy cho con bot một giác quan: tự biết mình có khoẻ không

Bot CSKH của tôi chạy ngon cả tuần. Hôm nay tôi vẫn dừng lại lắp cho nó một thứ tưởng thừa — khả năng tự nói "tôi đang ốm". Vì "code chạy được" và "code vận hành được" là hai con thú khác nhau, và một người ship một mình thì không có ai gõ cửa báo bot chết lúc 11 giờ đêm.

Hậu trường build

Một file database đã âm thầm cấm con bot của tôi rời khỏi một máy

Con bot của tôi lưu mọi thứ vào một file duy nhất — gọn, nhanh, không cần cài gì. Đúng tới ngày tôi muốn nó chạy trên hai máy cùng lúc thì cái file đó hoá ra là một sợi xích vô hình. Đây là chuyện tôi tháo xích — đổi nền lưu trữ giữa lúc bot đang phục vụ khách thật, và lần đầu làm hỏng nó như thế nào.

Tư duy builder

Đừng học, hãy chạy — vì sao tôi không tin khoá lý thuyết

Tôi không tin vào khoá học mà bạn xem hết rồi vẫn chưa làm ra cái gì. Người ta không trả tiền cho thông tin — thông tin đầy trên docs và YouTube. Họ trả cho sự chuyển hoá. Đây là lý do mọi thứ tôi dạy đều bắt đầu bằng một thứ chạy được.

Ship một mình

Tài liệu tôi viết giờ không để người đọc — để máy chạy

Dân kỹ thuật vốn ghét viết tài liệu, vì viết xong chẳng ai đọc. Nhưng từ khi build sản phẩm bằng AI agent, tài liệu của tôi có một người đọc mới rất khó tính — chính con AI. Nó làm đúng từng chữ tôi viết, kể cả chữ viết sai. Một dòng mơ hồ từng khiến cả loạt việc tự động của tôi hỏng sạch, không gộp được dòng code nào. Từ đó tôi hiểu: chất lượng tài liệu giờ đo được bằng kết quả thực thi, không phải cảm tính.

Biến code thành tiền

Từ một bài viết tới một khách trả tiền

Tôi chưa tiêu một đồng quảng cáo nào để có khách cho dịch vụ AI của mình. Tôi viết. Đây là cách một bài blog hậu trường âm thầm biến thành người trả tiền — và vì sao đó là cái phễu khó bắt chước nhất mà một builder có thể sở hữu.

Hậu trường build

Stateless qua Redis — lần con bot suýt loạn trí giữa nhiều người

Tôi thêm một server thứ hai để bot chịu tải tốt hơn. Kết quả ngược đời — bot bắt đầu "mất trí nhớ" giữa cuộc trò chuyện. Đây là câu chuyện về một chữ tưởng khô khan nhưng tách con bot chạy-trên-laptop khỏi một dịch vụ thật: *stateless*.

Tư duy builder

Con bot nói "đã xong" — và tôi tin nó. Đó là sai lầm đắt nhất tôi suýt mắc

AI cực giỏi nói. Nó dở khủng khiếp ở việc chịu trách nhiệm cho điều nó vừa nói. Con bot của tôi báo với khách "đã tạo yêu cầu đặt hẹn", còn tôi đọc log thấy nó gọi tool ngon lành — nhưng phía sau không có một dòng dữ liệu nào được ghi. Đây là bài học về niềm tin nguy hiểm nhất khi build với AI, và một câu hỏi tôi dán lên màn hình.

Hậu trường build

Con bot giỏi nhất là con biết khi nào nên im và gọi người

Ai cũng cố làm bot trả lời được mọi thứ. Nhưng quyết định khiến bot CSKH của tôi đáng tin lại đi ngược: dạy nó biết lúc nào nên ngừng nói và chuyển cho người thật.

Biến code thành tiền

Vì sao tôi báo giá bot AI 3,9 triệu/tháng — chứ không phải 200 nghìn

Chi phí chạy con bot của tôi gần như bằng không. Nhưng tôi báo giá gấp hàng chục lần — và đó không phải tham lam, đó là định giá đúng. Đây là cách tôi nghĩ về giá.

Kinh doanh AI

Từ code tới khách trả tiền: 5 chặng biến kỹ năng AI thành dịch vụ

Biết gọi Claude API không làm bạn có thu nhập. Khoảng cách giữa "chạy được con bot" và "có khách trả tiền" mới là chỗ khó — và ít ai dạy.

Tư duy builder

Vì sao tôi mở lớp dạy build & bán bot AI (và nó dành cho ai)

Tôi không định làm "guru AI". Nhưng sau khi đưa một con bot lên chạy thật và đi chào khách, tôi thấy thứ mình học được đắt giá đúng ở chỗ ít ai dạy — nên quyết định kèm lại.

Hậu trường build

Đêm nay con bot spa của tôi tốt nghiệp: từ "biết nói" lên "gánh được khách thật"

Một buổi tối, bảy nâng cấp lõi và một lần deploy. Con bot CSKH cho spa của tôi vừa vượt qua ranh giới khó nhất của mọi sản phẩm AI — từ bản demo nghe hay sang thứ dám giao cho khách thật.

Hậu trường build

Con bot AI đầu tiên của bạn — một buổi tối là đủ

Nhiều người nghĩ làm bot AI phải biết máy học, vector database, hạ tầng phức tạp. Không. Một con bot biết trò chuyện và tra cứu dữ liệu thật chỉ cần vài chục dòng Python.

Hậu trường

Tôi build một bot AI tư vấn cho spa và đưa lên chạy thật — toàn bộ hành trình

Kiến trúc, những quyết định quan trọng, chi phí thật, và cả những lần tôi tự làm sập cả site khi deploy.

Kinh doanh

Phễu bán một dịch vụ AI: tôi thiết kế thế nào

Build được sản phẩm chỉ là một nửa. Nửa còn lại — bán nó — mới là thứ quyết định bạn sống hay chết.

AI vào nghiệp vụ

RAG hay Tool Use? Cách tôi chọn cho một chatbot doanh nghiệp

Nghe "chatbot biết dữ liệu công ty" là nhiều người nhảy ngay vào RAG và vector database. Với phần lớn doanh nghiệp nhỏ, đó là lựa chọn sai.

Ship một mình

Tôi tự host cả một hệ thống trên VPS 7 USD/tháng

Một con bot, ba landing, một web-chat demo, một trang cá nhân — tất cả chạy trên một máy chủ rẻ tiền. Cách tôi làm và những lần tôi tự làm sập nó.