Hướng tới vibe coding hiệu quả: Một tác nhân dựa trên mô hình ngôn ngữ lớn cho phát triển phần mềm mã nguồn thấp
Toward efficient vibe coding: An LLM-based agent for low-code software development
| Tác giả |
Nikolaos Malamas Emmanouil Tsardoulias Konstantinos Panayiotou Andreas L. Symeonidis |
| Ngày đăng tải | 23/09/2025 |
| DOI | https://doi.org/10.1016/j.cola.2025.101367 |
| Nguồn bài nghiên cứu | Science Direct |
| Từ khóa |
Mô hình ngôn ngữ lớn Giao diện hội thoại DSLs Tác nhân DSL Phát triển mã nguồn thấp qua hội thoại Vibe coding |
1 – GIỚI THIỆU
Lĩnh vực Kỹ thuật Phần mềm (SE) đang chứng kiến sự trỗi dậy mạnh mẽ của các phương pháp tiếp cận mã nguồn thấp (low-code) và không mã nguồn (no-code) nhằm tối ưu hóa quy trình phát triển ứng dụng. Hiện nay, có hai mô hình chính đang dẫn dắt xu hướng này: Kỹ thuật dựa trên mô hình (MDE) sử dụng các Ngôn ngữ đặc tả miền (DSLs) và mô hình vibe coding dựa trên mô hình ngôn ngữ lớn (LLM). Trong khi các DSL cung cấp tính chính xác và đảm bảo về mặt hình thức, chúng lại đòi hỏi kiến thức chuyên môn cao và có rào cản học tập rất lớn. Ngược lại, vibe coding mang lại sự linh hoạt thông qua tương tác ngôn ngữ tự nhiên nhưng thường gặp khó khăn trong việc duy trì cấu trúc và tính đúng đắn của mã nguồn, đặc biệt là khi tích hợp vào các quy trình chính thống. Để giải quyết mâu thuẫn này, nghiên cứu giới thiệu DSL Agent – một giao diện hội thoại được vận hành bởi LLM, tích hợp trực tiếp vào nền tảng Locsys. Hệ thống này được thiết kế để kết hợp tính trực quan của vibe coding với sự chặt chẽ của các DSL, giúp tạo ra các mô hình DSL hợp lệ từ mô tả của người dùng thông qua kỹ thuật kỹ nghệ gợi ý (prompt engineering) và học trong ngữ cảnh (in-context learning). Kết quả đánh giá trên 130 người tham gia cho thấy sự cải thiện đáng kể về năng suất và khả năng tiếp cận công nghệ cho cả những người không có chuyên môn sâu.
2 – MÔ TẢ HỆ THỐNG
Hệ thống DSL Agent được xây dựng với cấu trúc mô-đun linh hoạt, cho phép thích ứng với nhiều loại DSL khác nhau mà không cần cấu hình lại phức tạp. Thành phần cốt lõi của tác nhân là một LLM (Claude-3 Sonnet), đóng vai trò xử lý yêu cầu và tạo mô hình DSL. Quy trình vận hành bắt đầu từ việc thu thập thông tin về ngữ pháp và các ràng buộc của DSL từ một cơ sở dữ liệu vector để đưa vào prompt hệ thống. Hệ thống sử dụng FastAPI cho REST API, Haystack để quản lý tìm kiếm ngữ nghĩa và Redis để lưu trữ bộ nhớ hội thoại nhằm duy trì ngữ cảnh đa lượt. Một điểm đặc biệt trong kiến trúc này là quy trình sửa lỗi tự động (error-fixing loop): khi mô hình được tạo ra không vượt qua được bộ xác thực cú pháp của nền tảng Locsys, tác nhân sẽ nhận phản hồi về dòng lỗi và thông điệp lỗi để thực hiện điều chỉnh lại ngay lập tức. Quy trình lặp này được giới hạn tối đa ba lần để đảm bảo trải nghiệm người dùng và tránh các vòng lặp vô hạn nếu LLM không thể khắc phục được lỗi. Mặc dù thiết kế tổng thể có bao gồm một mô-đun xác thực ngữ nghĩa để đối chiếu yêu cầu người dùng với kết quả đầu ra, nhưng thành phần này hiện được xem là một nghiên cứu độc lập và chưa được triển khai đầy đủ trong phiên bản hiện tại.
3 – PHƯƠNG PHÁP NGHIÊN CỨU
Nghiên cứu được thực hiện thông qua một cuộc hội thảo thực nghiệm quy mô lớn kéo dài hai ngày với sự tham gia của hơn 130 nhà phát triển cấp thấp không có kinh nghiệm trước đó về DSL. Ngày thứ nhất tập trung vào việc phát triển DSL theo cách truyền thống thông qua giao diện web của Locsys, trong khi ngày thứ hai người dùng được trải nghiệm hoàn toàn qua giao diện hội thoại của DSL Agent. Hai loại DSL với độ phức tạp khác nhau đã được lựa chọn để kiểm chứng khả năng thích ứng của hệ thống: CodinTxt (được coi là đơn giản để thiết kế bảng điều khiển dashboard) và dFlow (được coi là phức tạp để xây dựng trợ lý ảo hội thoại). Nhóm tác giả đã sử dụng thang đo khả năng sử dụng hệ thống (SUS) để thu thập phản hồi định tính về mức độ hài lòng và tính trực quan của giao diện. Song song với đó, các chỉ số định lượng như tỷ lệ mô hình hợp lệ, thời gian hoàn thành nhiệm vụ và số lượng tương tác cũng được ghi lại để so sánh hiệu quả giữa hai phương pháp tiếp cận. Các bài tập được thiết kế với độ khó tương đương giữa hai ngày để tránh sai lệch kết quả do tích lũy kiến thức từ trước của người tham gia.
4 – KẾT QUẢ NGHIÊN CỨU
Phân tích định lượng cho thấy DSL Agent đã tạo ra một bước nhảy vọt về hiệu quả so với phương pháp thủ công, đặc biệt là trong việc tạo ra các mô hình có cú pháp chính xác. Tỷ lệ xác thực thành công của ngôn ngữ CodinTxt tăng từ 57,88% lên 81,13% khi có sự hỗ trợ của tác nhân. Đối với dFlow – một ngôn ngữ vốn rất khó tiếp cận với người mới – tỷ lệ mô hình hợp lệ cũng tăng từ 33,18% lên 67,8% sau khi đã tính đến các lỗi nhỏ có thể dễ dàng sửa đổi. Về mặt thời gian, DSL Agent giúp rút ngắn quy trình phát triển từ 10-30 phút xuống chỉ còn vài phút thông qua các tương tác ngôn ngữ tự nhiên, qua đó giảm bớt đáng kể rào cản về kiến thức chuyên môn. Về mặt cảm tính, điểm SUS trung bình tăng từ 58,13 (hạng D) lên 69,64 (hạng C), với hơn 60% người tham gia báo cáo mức tăng ít nhất một bậc trong xếp hạng khả năng sử dụng. Kết quả này chứng minh rằng hệ thống không chỉ hoạt động hiệu quả về mặt kỹ thuật mà còn mang lại giao diện trực quan hơn cho người dùng ở mọi trình độ lập trình khác nhau. Hệ thống cũng chứng tỏ ưu thế vượt trội so với các nghiên cứu trước đây nhờ khả năng hỗ trợ các DSL ngoại vi phức tạp và khả năng hội thoại đa lượt linh hoạt.