Vibe Coding, tự động hóa và MCP
(stdy.blog)Vibe coding = giao khoán cho AI viết code
Về bản chất, vibe coding là giao khoán việc phát triển chương trình cho AI.
Nhìn lại kinh nghiệm thuê ngoài phát triển, những người đặt hàng giỏi thường làm tốt các việc sau:
- Xác định công việc để giải quyết vấn đề của mình
- Giao tiếp để lập trình viên có thể hiểu rõ điều đó
- Hỗ trợ các nguồn lực cần thiết để chương trình được xây dựng tốt
- Kiểm tra xem chương trình đã tạo có thực sự thay mình làm việc đúng như ý định hay không
- Trong quá trình đó, học từ lập trình viên những gì bản thân chưa biết để dần có thể tự làm được
Nếu áp vào góc nhìn của một vibe coder thì sẽ là:
- Xác định PRD và user flow
- Sử dụng prompt và chỉ dẫn tốt (như Cursor Rules)
- Phát hiện những phần lệch khỏi ý định và chạy kiểm thử tự động
- Vừa làm vừa học thông qua việc ping-pong với AI
Vậy còn mục 3 thì sao? Có thể nghĩ về điều này từ hai khía cạnh của chương trình:
- Thứ nhất, chương trình phải được chạy ở đâu đó. → Quyết định môi trường chạy và triển khai
- Thứ hai, chương trình là một khối mã “xử lý đầu vào để tạo ra đầu ra”. → Cung cấp dữ liệu và API
Chương trình phải được chạy
- Trong thuê ngoài phát triển, trách nhiệm của lập trình viên thường chỉ đến bước hiện thực mã nguồn, còn triển khai và vận hành là trách nhiệm của bên đặt hàng
- Thay vào đó, lập trình viên sẽ cung cấp hướng dẫn để bên đặt hàng có thể chạy chương trình này
- Với tư cách người đặt hàng thuê ngoài, nếu bạn cho AI biết môi trường để chạy và triển khai mã, nó sẽ làm rất tốt.
- Đặc biệt nếu là mã chạy trên trình duyệt web thì càng như vậy
- Trước đây, ngay cả những script cực kỳ đơn giản như 'xóa một phần cú pháp trong tài liệu Markdown bằng biểu thức chính quy' cũng không dễ để người không phải lập trình viên chạy/triển khai
- Giờ đây, với Claude Artifacts, Gemini Canvas và những công cụ tương tự, bạn có thể nhanh chóng tạo và chạy chương trình nhỏ của riêng mình. Nếu muốn người khác cũng dùng được, có thể tạo và triển khai bằng Lovable; tất cả đều có thể làm miễn phí gần như ngay lập tức
- Gọi là vibe coding không có nghĩa là nhất thiết phải tạo ra một “app”. Miễn là đó là chương trình giải quyết vấn đề của bạn và giảm công việc lặp lại, thì là app, script, GPTs hay prompt đều không quan trọng
API giúp chương trình hữu ích hơn
- Nhưng các chương trình nhỏ vẫn có giới hạn
- Markdown remover không kết nối với DB, API hay LLM nào cả
- Vì thế, người dùng phải tự nhập văn bản, và cũng phải tự sao chép kết quả để dán sang nơi khác
- Nếu mục tiêu của người dùng là “chỉnh lại bài đã viết trên Notion rồi đăng lên SNS” thì sao?
- Đầu vào: chỉ cần nhập liên kết trang Notion
- Xử lý: đưa nội dung đã lấy vào LLM để tóm tắt sao cho phù hợp với SNS, rồi xóa cú pháp Markdown
- Đầu ra: xem lại bài viết, nếu phê duyệt thì tự động đăng lên tài khoản SNS của tôi
- Đổi lại việc từ bỏ thời gian phản hồi nhanh và tính đa dụng, chương trình sẽ giúp giảm đáng kể thời gian và năng lượng mà người dùng phải bỏ ra cho công việc đó. Nói cách khác, với một mục đích cụ thể, nó trở nên “hữu ích” hơn
- Cuối cùng, tính hữu ích của chương trình phụ thuộc vào việc nó giảm được bao nhiêu công việc mà người dùng phải tự làm ở các khâu đầu vào/xử lý/đầu ra
- Tự động hóa đầu vào, hoặc
- Làm cho phần xử lý phức tạp hơn, hoặc
- Tự động hóa đầu ra
- Trong các chương trình thông thường, thông qua API (tức là được kết nối với chương trình khác), có thể tự động hóa đầu vào/đầu ra và thực hiện xử lý nâng cao
- Đầu vào: lấy quyền Notion và gọi Notion API để lấy nội dung trang
- Xử lý: dùng LLM API, đưa nội dung trang Notion cùng system prompt để nhận về phản hồi phù hợp với SNS
- Đầu ra: lấy quyền Threads và gọi SNS API để đăng bài
- Tuy nhiên, ngay cả với lập trình viên có kinh nghiệm thì việc xây dựng như vậy cũng không hề quá dễ. Đặc biệt là vì phần cấp quyền khá phức tạp
- Liệu có thể làm việc này dễ hơn không?
Công cụ tự động hóa và MCP thay bạn xử lý việc tích hợp API phức tạp
- Nếu dùng các công cụ tự động hóa như Zapier, Make, bạn không cần tự tích hợp API trực tiếp
- Ví dụ: khi có item mới trong Notion DB -> chạy ChatGPT -> rồi tải lên Instagram bằng một Zap
- Ban đầu, để gọi API đăng bài lên Instagram, bạn phải tạo ứng dụng riêng và còn phải qua khâu xét duyệt
- Trên Zapier hay Make, họ đã tạo sẵn ứng dụng để đăng lên Instagram, đồng thời cũng đã hiện thực toàn bộ flow lấy quyền và trao đổi dữ liệu. Bạn không cần tự lo các vấn đề cấp quyền rắc rối
- Tuy nhiên, với một số người, ngay cả việc dựng kiểu “cái này rồi đến cái kia” như vậy cũng có thể khó và phiền; những thứ như MCP/A2A chính là để giúp những người này làm mọi thứ thông qua chatbot LLM
- Cũng như chương trình thông thường có thể làm được nhiều hơn logic đơn giản nhờ API, chương trình là chatbot LLM cũng có thể thông qua MCP để kết nối với chương trình khác và thực hiện nhiều việc hơn ngoài việc chỉ xuất ra văn bản/hình ảnh/giọng nói đơn thuần
- Nghĩa là trên Claude, bạn có thể làm kiểu “lấy nội dung từ trang Notion của tôi, tóm tắt rồi đăng lên Instagram”
- Tất nhiên, để làm được vậy thì cần kết nối MCP server phù hợp (Notion, Instagram) với MCP client (Claude)
- Vai trò lớn nhất của MCP server là thay mặt gọi API thông qua tool; Notion đã có MCP server chính thức, nhưng Instagram thì chưa có
- Vậy Claude sẽ gọi Instagram API bằng cách nào?
- Đây là lúc Zapier lại xuất hiện. Thông qua MCP server do Zapier hoặc Make cung cấp, có thể tải bài lên Instagram
- Tức là nếu kết nối công cụ tự động hóa (vốn đã có rất nhiều tích hợp sẵn) với chatbot LLM qua MCP thì nó sẽ cực kỳ mạnh
Tiềm năng và giới hạn của MCP
- Nhưng nhìn theo cách này thì có thể bạn sẽ tự hỏi tại sao phải dùng MCP
- Vì hiện tại, gần như mọi việc làm được bằng chatbot + MCP thì cũng có thể làm bằng công cụ tự động hóa
- Tuy vậy, tác giả cảm thấy tiềm năng của MCP là rất lớn vì 3 lý do:
- Giao diện tiện lợi (một chatbot assistant lo liệu mọi thứ chẳng phải là chương trình tối thượng sao?)
- Việc người dùng can thiệp vào các tác vụ nhạy cảm thuận tiện hơn
- Không chỉ tự động hóa được cả những việc phải làm trên PC cục bộ như điều khiển hệ thống tệp, điều khiển trình duyệt, mà còn có thể cung cấp thêm nhiều thông tin như resource, mẫu prompt, v.v.
- Khi dùng MCP cũng có nhiều điều cần lưu ý
- Càng giao nhiều thứ cho MCP thì càng phải chú ý đến bảo mật. Vì thế, MCP server remote chính thức an toàn hơn so với chạy cục bộ
- Nếu cấp cho LLM quá nhiều MCP tool, tool mà bạn muốn có thể không được thực thi; hơn nữa, toàn bộ định nghĩa tool sẽ được đưa vào input token, nên chi phí và thời gian gọi LLM cũng tăng lên
- Tính ngẫu nhiên đặc trưng của LLM cũng luôn là điều phải cẩn trọng trong dịch vụ thương mại
- Cuối cùng, dù là kết nối API vào chương trình của mình, thiết kế flow tự động hóa, hay gắn MCP vào chatbot LLM, thì bản chất đều là “hãy làm việc thay tôi”
- Không cần phải căng thẳng chỉ vì các từ khóa như Make, MCP đang nổi lên nhanh chóng. Hãy dùng cách nào thuận tiện nhất với mình, hiểu rõ ưu nhược điểm của từng cách, rồi tạo ra chương trình làm việc thay bạn
Tóm tắt
- Vibe coding là giao khoán việc phát triển chương trình cho AI.
- Chỉ cần thật sự thay bạn làm tốt công việc, thì web app, code snippet hay prompt đều có thể trở thành chương trình hữu ích.
- Để chương trình hữu ích hơn, cần kết nối API nhằm tự động hóa đầu vào/đầu ra và xử lý nâng cao.
- Các công cụ tự động hóa thay bạn giải quyết sự phức tạp của việc kết nối API.
- Chương trình là chatbot LLM cũng có thể trở nên hữu ích hơn thông qua kết nối MCP. Đặc biệt, việc nối với MCP server do công cụ tự động hóa cung cấp là rất mạnh.
- Không nhất thiết chỉ dùng một trong API, tự động hóa hay MCP; kết hợp chúng còn tiện và mạnh hơn (ví dụ: chỉ gắn Notion MCP vào Claude, còn cấu hình Notion to Instagram trên Zapier để tự động đăng tải)
- Hãy cân nhắc ưu nhược điểm, chọn cách phù hợp với mình và thử tạo ra chương trình giải quyết vấn đề của bạn (cùng với AI)
4 bình luận
Chừng mực như vibe coding thì chưa thể gọi là thuê ngoài được. Thuê ngoài là kiểm tra nghiệm thu theo đơn vị dự án, còn các AI coding agent hiện nay thì phải kiểm tra nghiệm thu ở đơn vị tác vụ nhỏ hơn thế.
Nếu là thuê ngoài thì phải có thể giao việc rồi tôi làm việc khác được… nhưng hiện tại vẫn cần phải trông chừng quá thường xuyên. Giống như một lập trình viên junior thông minh nhưng còn vụng về…
Không lâu nữa… dù chưa đến mức thuê ngoài thì có lẽ cũng sẽ làm việc như một đội phát triển nhỏ được chăng… tôi nghĩ vậy. Giao việc, rà soát thường xuyên, sửa lại… nhưng có vẻ bây giờ vẫn chưa tới mức đó.
Biết đâu là do tôi thiếu “vibe” nên mới vậy…
https://tech.kakao.com/posts/700 Tôi đã thấy đây là một ví dụ hay về Vibe Coding khi đọc bài viết này, và có vẻ bối cảnh cũng tương tự. Tôi cũng đồng cảm với nội dung bạn đã viết.
Nhờ vậy mà tôi đã đọc được một bài viết thú vị! Cảm ơn bạn.
Vậy còn 3 thì sao? -> Đó là câu chuyện về hỗ trợ tài nguyên.
Ở trên tôi đã đánh số 1, 2, 4, 5 nhưng trong Markdown nó tự động đổi thành 1234.