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.

5 – KẾT LUẬN

Bài nghiên cứu đã khẳng định rằng việc kết hợp sức mạnh của LLM với sự chặt chẽ của các DSL là một hướng đi triển vọng để hiện thực hóa mô hình vibe coding hiệu quả trong môi trường chuyên nghiệp. DSL Agent không chỉ đơn thuần là một công cụ hỗ trợ tạo mã, mà là một giao diện tích hợp đầy đủ giúp tăng cường năng suất và khả năng tiếp cận cho các “nhà phát triển công dân” (citizen developers). Tuy nhiên, các tác giả cũng chỉ ra rằng vẫn còn nhiều tiềm năng để cải thiện, đặc biệt là trong việc giảm thiểu các lỗi cú pháp nhỏ và tinh chỉnh kỹ nghệ gợi ý để đạt độ chính xác tối ưu hơn. Định hướng tương lai của nghiên cứu bao gồm việc xây dựng bộ xác thực ngữ nghĩa dựa trên LLM để đảm bảo mô hình không chỉ đúng về cú pháp mà còn phải phản ánh chính xác ý định chức năng của người dùng. Ngoài ra, việc mở rộng hệ thống để hỗ trợ đa ngôn ngữ đồng thời và tự động hóa quá trình tích hợp các DSL mới sẽ là những bước đi quan trọng để chuyển đổi từ một tác nhân đặc thù sang một trợ lý phát triển mã nguồn thấp toàn diện. Sự thành công bước đầu của DSL Agent mở ra một kỷ nguyên mới nơi việc tương tác với hệ thống phần mềm không còn dựa trên việc viết mã thủ công mà thông qua những cuộc đối thoại tự nhiên và có hồn hơn.