Refact.ai Lập Kỷ Lục Mới: Agent AI Nguồn Mở Đạt 69.9% Trên SWE-bench Verified
Lê Lân
0
Refact.ai: AI Agent Mã Nguồn Mở Tiên Tiến Nhất Trên SWE-bench Verified
Mở Đầu
Refact.ai đã xây dựng một AI Agent mã nguồn mở với hiệu suất hàng đầu thế giới trên bộ đánh giá SWE-bench Verified — đạt tỷ lệ giải quyết 69.9% trong tổng số 500 bài toán thực tế.
Trong lĩnh vực trí tuệ nhân tạo ứng dụng cho kỹ thuật phần mềm, việc đánh giá chính xác khả năng xử lý các vấn đề thực tiễn là rất quan trọng. SWE-bench Verified, với 500 issue thực tế trên GitHub được chọn lọc kỹ lưỡng, cung cấp một sân chơi công bằng để thử thách các AI Agent. Refact.ai không chỉ cạnh tranh để đạt điểm cao mà còn xây dựng một phương pháp khả thi áp dụng được trong môi trường phát triển thực tế. Bài viết này sẽ trình bày chi tiết cách Refact.ai thiết kế, tổ chức vận hành, cải tiến, và những điểm đột phá giúp họ chiếm vị trí số 1 trong cộng đồng mã nguồn mở trên SWE-bench Verified.
1. Giới Thiệu Về SWE-bench Verified Và Refact.ai Agent
1.1 SWE-bench Verified Là Gì?
SWE-bench Verified là phiên bản nâng cấp của SWE-bench cơ bản, gồm 500 issue GitHub thực tế được lựa chọn cẩn thận. Các vấn đề này được thiết kế nhằm kiểm tra khả năng của AI Agent trong việc:
Hiểu và phân tích mã nguồn
Khắc phục lỗi và thực hiện sửa đổi chính xác
Thực thi kiểm thử đảm bảo không phá vỡ chức năng hiện tại
1.2 Mục Tiêu Của Refact.ai Agent
Refact.ai đặt mục tiêu tối đa hóa số lượng issue được giải quyết chỉ trong một lần chạy duy nhất. Tức là AI Agent phải:
Tự động tối ưu quy trình xử lý từng task
Đảm bảo độ tin cậy và ổn định
Tích hợp các kỹ thuật hỗ trợ thông minh để giữ đúng hướng
Điểm nhấn quan trọng: Refact.ai Agent hoạt động hoàn toàn tự động, không cần hỗ trợ thủ công, nhưng vẫn đảm bảo hiệu quả cao.
2. Cấu Trúc Mô Hình Và Quy Trình Hoạt Động
2.1 Mô Hình Cốt Lõi Và Các Sub-Agent
Thành phần
Mẫu mô hình
Vai trò
Mô hình chính
Claude-3.7
Chỉ đạo, lập kế hoạch và đưa ra quyết định chính
Debug sub-agent
Claude-3.7 + o4-mini
Gỡ lỗi bằng pdb, sửa đổi và tạo script chạy lỗi
Planning tool
o3pass@1
Lập kế hoạch chiến lược dựa trên báo cáo debug
2.2 Quy Trình 4 Bước Xử Lý Mỗi Task
Khám phá vấn đề
Dùng các hàm: cat(), search_symbol_definition(), search_symbol_usages(), search_pattern(), search_semantic() để thu thập toàn diện dữ liệu.
Tái hiện lỗi bằng script
Viết script kiểm thử bao phủ đủ trường hợp góc
Thiết lập môi trường cần thiết
Chạy script để tái hiện lỗi và xác thực script đúng
Sử dụng debug_script() để gỡ lỗi sâu
Lập kế hoạch và sửa lỗi
Mở file mới liên quan đến báo cáo debug
Gọi strategic_planning() để đánh giá và đề xuất phương án
Sửa trực tiếp tập tin, không dùng patch hay diff
Kiểm tra và hoàn thiện
Chạy lại script tái hiện gốc và toàn bộ test hiện có để đảm bảo không gây lỗi mới
Chú ý: Người dùng phải tuân thủ đúng thứ tự và phương pháp trên để đảm bảo hiệu suất và độ chính xác.
2.3 Chiến Lược Giao Tiếp Với Agent
Trước mỗi bước, Agent cần thông báo dự định và nhận được xác nhận
Bao gồm suy nghĩ nội bộ (wrapped trong <think></think>) trước khi hành động thực tế
Quy tắc này giúp đảm bảo quy trình logic, tránh sai sót
3. Những Đổi Mới Đột Phá Trong Refact.ai
3.1 Giới Thiệu Sub-agent Debugging: debug_script()
Giúp Agent điều tra nguyên nhân gốc rễ lỗi bằng pdb
Cho phép sửa đổi, tạo mới script dùng để phát hiện và khắc phục lỗi
Được quản lý bằng mô hình Claude-3.7 kết hợp o4-mini tóm tắt thông tin
Điều này tương tự như vai trò của lập trình viên khi sử dụng debugger để hiểu kỹ hơn về lỗi, giúp quá trình sửa chữa tập trung và nhanh chóng hơn.
3.2 Các Guardrails Giúp Giữ Agent Đi Đúng Hướng
Các cảnh báo tự động được chèn vào lúc chạy nếu Agent có biểu hiện lạc hướng hoặc bị mắc kẹt
Được chạy qua thống kê tĩnh các câu trả lời, thêm nhắc nhở dưới dạng tin nhắn của “người dùng mô phỏng”
Ví dụ: Sau debug_script(), Agent được nhắc phải mở những file cần thiết; sau planning() được nhắc triển khai sửa đúng kế hoạch
Hạn chế: Không gọi debug_script() nhiều hơn 3 lần mỗi task, không bỏ qua bước lập kế hoạch...
3.3 Cải Tiến Trên SWE-bench Lite Trước Đó
Cải tiến
Mô tả chi tiết
Đổi tên các công cụ
Giúp model nhận biết và gọi đúng công cụ
Sửa lỗi hệ thống AST
Đảm bảo xử lý ký hiệu được trang trí đúng cách
Cải thiện indexing
Giúp tốc độ truy xuất dữ liệu nhanh, ổn định hơn
Điều chỉnh mức nén context
Hạn chế việc mở file nhiều nhỏ lẻ và trùng lặp
Các cải tiến này giúp mô hình hoạt động ổn định và hiệu quả hơn trên tập SWE-bench Verified.
4. Những Thử Nghiệm Và Bài Học Rút Ra
4.1 Thử Nghiệm Không Thành Công
Công cụ tự phê bình (critique) phức tạp: Agent hoạt động tốt hơn khi tự chạy test và căn cứ kết quả để quyết định tiếp
Lập kế hoạch bốn bước chi tiết (phân tích gốc rễ → giải pháp ban đầu → đánh giá → chỉnh sửa): làm phức tạp và giảm tỷ lệ thành công
Sử dụng pdb mà không có sub-agent chuyên biệt: model ưu tiên shell(), dẫn đến ít debug thực sự
Vận hành không có sub-agent: dẫn đến giảm chính xác khi context ngày càng lớn
4.2 Kết Luận Thử Nghiệm
Các sub-agent chuyên biệt và quy trình đơn giản rõ ràng được ưu tiên vì hiệu quả, tính ổn định và khả năng mở rộng.
5. Ứng Dụng Thực Tiễn Và Kết Quả Đánh Giá
5.1 Từ Benchmark Đến Sản Phẩm
Refact.ai không chỉ tập trung vào điểm số mà còn phát triển quy trình giúp ích cho lập trình viên thực tế:
Các tinh chỉnh và bảo vệ tự động kiểm soát chất lượng cũng được áp dụng trên sản phẩm Refact.ai
Người dùng có thể tương tác linh hoạt, với tùy chọn can thiệp thủ công hoặc để Agent tự động xử lý
Quy trình đảm bảo tối ưu hóa sản xuất phần mềm và giảm thiểu công việc thủ công
5.2 Kết Quả Chi Tiết Trên SWE-bench Verified
Tổng số Task
Giải quyết được
Tỷ lệ (%)
500
349
69.8
Không giải quyết
151
30.2
5.3 Tỷ Lệ Giải Quyết Theo Repository
Repository
Giải quyết
Tổng task
Tỷ lệ (%)
astropy/astropy
9
22
40.91
django/django
165
231
71.43
matplotlib/matplotlib
20
34
58.82
pallets/flask
1
1
100.0
psf/requests
6
8
75.0
pydata/xarray
18
22
81.82
pylint-dev/pylint
4
10
40.0
pytest-dev/pytest
16
19
84.21
scikit-learn/scikit-learn
28
32
87.5
sphinx-doc/sphinx
28
44
63.64
sympy/sympy
54
75
72.0
5.4 Kết Quả Theo Năm Phát Hành Task
Năm
Giải quyết
Tổng task
Tỷ lệ (%)
2013
3
3
100.0
2014
2
2
100.0
2015
0
1
0.0
2016
2
2
100.0
2017
13
16
81.25
2018
14
24
58.33
2019
73
98
74.49
2020
79
108
73.15
2021
54
86
62.79
2022
71
102
69.61
2023
38
58
65.52
6. Cách Để Sử Dụng Refact.ai Agent Trong IDE Của Bạn
Refact.ai hiện có thể được tích hợp trực tiếp vào các IDE phổ biến như:
Tăng năng suất lập trình gấp 10 lần nhờ tự động hóa các tác vụ lặp đi lặp lại
Tích hợp mượt mà với codebase, workflow và các công cụ phát triển hiện tại
Tạo một bản sao kỹ thuật số giúp giảm tải công việc "bận rộn" để bạn tập trung phát triển những tính năng lớn
Kết Luận
Refact.ai đã tạo ra một AI Agent mã nguồn mở xuất sắc được thử thách và chứng minh hiệu quả trên bộ dữ liệu SWE-bench Verified, với tỷ lệ giải quyết ~70% bài toán thực tế. Sự kết hợp giữa mô hình mạnh mẽ Claude-3.7, các sub-agent debugging chuyên biệt, và cơ chế guardrails thông minh giúp đảm bảo quy trình vận hành hiệu quả, ổn định. Hơn nữa, Refact.ai không chỉ dừng lại ở thành tích benchmark mà còn mang các cải tiến vào sản phẩm thực tiễn, giúp các lập trình viên làm việc hiệu quả hơn.
Bạn có thể cài đặt Refact.ai Agent ngay hôm nay và trải nghiệm tác động thực sự trong quá trình phát triển phần mềm của mình!