IBM Research vừa giới thiệu ScarfBench, một bộ tiêu chuẩn mở được thiết kế để đánh giá khả năng xử lý việc di chuyển framework Java doanh nghiệp của các tác nhân AI. Bộ tiêu chuẩn này cho thấy cấu hình và các phụ thuộc runtime mới là rào cản lớn nhất, chứ không phải dịch mã nguồn.

Những tiến bộ gần đây trong các tác nhân lập trình đã tạo ra sự phấn khích xung quanh việc hiện đại hóa có sự hỗ trợ của AI. Nhưng một câu hỏi quan trọng vẫn còn đó: Liệu các tác nhân AI có thể hiện đại hóa một cách đáng tin cậy các ứng dụng doanh nghiệp trong thế giới thực không?

Các bộ tiêu chuẩn kỹ thuật phần mềm hiện có đã cho thấy sự tiến bộ ấn tượng trong việc sửa lỗi và sinh mã, nhưng di chuyển framework lại đặt ra một thách thức hoàn toàn khác. Thành công đòi hỏi không chỉ dịch mã, mà còn bảo toàn hành vi, thích ứng hệ thống build, và điều hướng các phụ thuộc runtime.

Để lấp đầy khoảng trống này, IBM Research đã tạo ra ScarfBench (Self-Contained Application Refactoring Benchmark), một bộ tiêu chuẩn mở để đánh giá các tác nhân AI trong các tác vụ di chuyển cross-framework trên Java doanh nghiệp. ScarfBench tập trung vào các cuộc di chuyển qua ba hệ sinh thái Java chính: Spring, Jakarta EE và Quarkus.

Không giống như các bộ tiêu chuẩn truyền thống so sánh mã được sinh ra với các triển khai tham chiếu, ScarfBench đánh giá liệu các ứng dụng đã di chuyển có thực sự build, triển khai và bảo toàn hành vi hay không.

Tại Sao Di Chuyển Lại Khó

Di chuyển framework không chỉ đơn thuần là thay thế các annotation. Một cuộc di chuyển kho lưu trữ đơn giản có thể yêu cầu thay đổi trên khắp dependency injection, cấu hình persistence, truy vấn và các bộ mô tả framework. Những sai sót nhỏ trong bất kỳ phần nào trong số này có thể ngăn cản việc triển khai thành công.

scarf-intro-anatomy

Hình: Ví dụ Di chuyển Spring → Jakarta

Di chuyển framework yêu cầu dịch ngữ nghĩa framework, không chỉ mã nguồn.

Giới thiệu ScarfBench

ScarfBench cung cấp một cách có hệ thống để đánh giá các tác nhân AI trong các tác vụ di chuyển framework Java doanh nghiệp. Các ứng dụng phải build thành công, triển khai chính xác và vượt qua xác thực hành vi. Điều này mang lại một thước đo thực tế hơn nhiều về chất lượng hiện đại hóa.

Bộ tiêu chuẩn bao gồm cả các tác vụ di chuyển tập trung và di chuyển toàn bộ ứng dụng.

scarf-intro-fig

Hình: Quy trình Xây dựng ScarfBench

Bắt đầu từ một phân loại Java doanh nghiệp dựa trên JSR, các cuộc di chuyển chuyên gia tạo ra các triển khai đã được xác minh trên Spring, Jakarta EE và Quarkus.

Các Tác Nhân Tiên Tiến Hoạt Động Như Thế Nào?

IBM Research đã đánh giá một số tác nhân lập trình hiện đại nhất trên ScarfBench. Mặc dù có hiệu suất mạnh mẽ trên các bộ tiêu chuẩn kỹ thuật phần mềm truyền thống, di chuyển framework vẫn là một thách thức. Tỷ lệ thành công thay đổi đáng kể giữa các cặp framework, và di chuyển toàn bộ ứng dụng vẫn đặc biệt khó khăn.

leaderboard

Hình: Bảng Xếp hạng Hiện tại

scarf_aggregate_progression

Hình: Tiến trình Compile → Deploy → Test

Thành công compile luôn cao hơn thành công deploy, và thành công deploy lại cao hơn thành công hành vi. Chỉ riêng thành công build đã đánh giá quá cao chất lượng di chuyển.

sankey

Hình: Kết quả Di chuyển theo Framework Đích

Độ khó di chuyển phụ thuộc mạnh vào framework đích, với Jakarta EE tỏ ra đặc biệt khó khăn.

Những Gì Chúng Tôi Học Được Về Các Tác Nhân AI cho Hiện đại hóa Java

Ngoài việc đo lường tỷ lệ thành công, ScarfBench giúp hiểu cách các tác nhân hành xử trong quá trình hiện đại hóa.

Các Tác Nhân Có Thể Xác Định Một Cách Đáng Tin Cậy Khi Nào Việc Di Chuyển Hoàn Tất Không?

Một ứng dụng đã di chuyển chỉ hữu ích nếu nó thực sự build và chạy. IBM Research đã so sánh kết quả do tác nhân báo cáo với xác minh build độc lập.

"Claude Code báo cáo build thành công cho 29 trong số 30 ứng dụng toàn bộ. Chỉ có 22 trong số đó thực sự build thành công. Trong khi đó, ứng dụng duy nhất được tác nhân phân loại là thất bại cuối cùng lại build đúng."
— IBM Research

Điều này cho thấy rằng tự đánh giá của tác nhân không nên được coi là tín hiệu đáng tin cậy về việc hoàn thành di chuyển. Xác minh build và kiểm thử độc lập vẫn là cần thiết.

Các Tác Nhân Điều Hướng Các Phụ Thuộc Ứng Dụng Như Thế Nào?

Các cuộc di chuyển framework hiếm khi chỉ ảnh hưởng đến một tệp hoặc một lớp. Các thay đổi trong cấu hình, dịch vụ, cơ sở dữ liệu và thành phần web thường lan truyền khắp ứng dụng.

Các lớp được truy cập thường xuyên nhất là cấu hình, web, cơ sở dữ liệu và dịch vụ. Các chuyển đổi phổ biến bao gồm cấu hình ↔ web và dịch vụ ↔ cơ sở dữ liệu. Điều này cho thấy di chuyển là một quá trình giải quyết phụ thuộc lặp đi lặp lại chứ không phải là một phép biến đổi nguồn sang nguồn đơn giản.

Các Tác Nhân Dành Phần Lớn Nỗ Lực Ở Đâu?

Sử dụng tần suất truy cập lại lớp như một đại diện cho nỗ lực di chuyển, các nhà nghiên cứu phát hiện ra rằng cấu hình chiếm ưu thế trong nỗ lực di chuyển. Thay vì tiến triển tuyến tính, các tác nhân liên tục quay lại các artifact liên quan đến cấu hình trong khi giải quyết sự khác biệt framework và các vấn đề phụ thuộc.

Những Thách Thức Nào Không Liên Quan Đến Biến Đổi Mã?

Không phải mọi vấn đề di chuyển đều bắt nguồn từ mã nguồn. Các tác nhân thường gặp khó khăn với các vấn đề môi trường, bao gồm sự không nhất quán bộ nhớ đệm Docker, vấn đề kết nối cổng, và các vấn đề về Maven wrapper và công cụ build. Những vấn đề vận hành này thường làm chậm quá trình xác thực ngay cả khi việc di chuyển mã nguồn phần lớn đã hoàn tất.

failure-distribution

Hình: Phân bố Chế độ Thất bại

Các thất bại hiện đại hóa trải dài trên hệ thống build, môi trường triển khai, dependency injection, cơ sở dữ liệu, endpoint, assertion và cơ sở hạ tầng.

Bài Học Chính

Thách thức lớn nhất trong hiện đại hóa framework không phải là dịch mã Java. Đó là quản lý mạng lưới phụ thuộc xuyên suốt cấu hình, cơ sở hạ tầng và môi trường runtime. Trong khi các tác nhân tiên tiến có thể tự động hóa các phần đáng kể của quá trình di chuyển, xác thực đáng tin cậy và lý luận kiến trúc vẫn là yếu tố then chốt để đạt được kết quả thành công.

ScarfBench giúp phơi bày những thách thức này và cung cấp một cách chuẩn hóa để đo lường tiến trình hướng tới hiện đại hóa ứng dụng thực sự tự động.

Khám phá ScarfBench

ScarfBench được thiết kế như một tài nguyên mở cho các nhà nghiên cứu và thực hành. Các tài nguyên bao gồm bộ dữ liệu tiêu chuẩn, cơ sở hạ tầng đánh giá, bảng xếp hạng công khai, tài liệu và mã nguồn mở. Các nhà nghiên cứu có thể so sánh kiến trúc và kỹ thuật tác nhân. Các nhà thực hành có thể sử dụng ScarfBench để đánh giá các giải pháp hiện đại hóa trước khi triển khai chúng trong môi trường sản xuất.

  • Trang web: https://scarfbench.info
  • Bộ dữ liệu: https://huggingface.co/datasets/ibm-research/ScarfBench
  • Không gian: https://huggingface.co/spaces/ibm-research/ScarfBench
  • Kho lưu trữ GitHub: https://github.com/scarfbench/scarfbench
  • Bảng xếp hạng: https://scarfbench.info/leaderboard
  • Bài báo: https://arxiv.org/abs/2605.06754

Di chuyển framework vẫn là một trong những vấn đề chưa được giải quyết lớn nhất trong kỹ thuật phần mềm có hỗ trợ AI. IBM Research hy vọng ScarfBench sẽ giúp cộng đồng đo lường tiến trình và đẩy nhanh thế hệ tiếp theo của hiện đại hóa ứng dụng có hỗ trợ AI. Nhóm nghiên cứu mời các nhà nghiên cứu, nhà thực hành và tác giả framework đóng góp và giúp đẩy lùi ranh giới của những gì các tác nhân AI có thể đạt được trong hiện đại hóa phần mềm doanh nghiệp.