- SWE-agent sửa lỗi và issue trong các kho GitHub thực bằng cách biến các mô hình ngôn ngữ (LMs) như GPT-4 thành tác nhân kỹ thuật phần mềm
- Giải quyết được 12,29% issue trên toàn bộ bộ kiểm thử SWE-bench, đạt hiệu năng tốt nhất trên toàn bộ tập kiểm thử
Giao diện tác nhân-máy tính (ACI)
- Đạt được các kết quả này bằng cách thiết kế các lệnh và định dạng phản hồi lấy LM làm trung tâm, giúp tác nhân dễ dàng khám phá kho mã, xem, chỉnh sửa và chạy các tệp mã.
- Nhóm gọi đây là giao diện tác nhân-máy tính (ACI), đồng thời xây dựng kho SWE-agent để có thể dễ dàng lặp lại thiết kế ACI cho các tác nhân lập trình ở cấp độ kho mã.
- Cho thấy một thiết kế ACI tốt mang lại kết quả tốt hơn nhiều khi sử dụng tác nhân.
Thiết lập
- Cài đặt Docker và khởi động Docker trên máy cục bộ.
- Cài đặt Miniconda và tạo môi trường
swe-agent bằng conda env create -f environment.yml.
- Kích hoạt bằng
conda activate swe-agent.
- Chạy
./setup.sh để tạo image Docker swe-agent.
- Tạo tệp
keys.cfg ở thư mục gốc của kho này và nhập các API key cần thiết cùng GitHub token.
Cách dùng
- Pipeline SWE-agent có hai giai đoạn. Giai đoạn đầu là suy luận: nhận một GitHub issue làm đầu vào và trả về một pull request nhằm giải quyết issue đó.
- Giai đoạn thứ hai chỉ khả dụng với các issue trong benchmark SWE-bench, là bước đánh giá để xác minh pull request được tạo ra có thực sự giải quyết issue hay không.
Đánh giá
- Bước này chỉ khả dụng với các issue trong bộ SWE-bench.
- Để đánh giá pull request được tạo ra, di chuyển đến thư mục
evaluation/ và chạy ./run_eval.sh .
Ý kiến của GN⁺
- SWE-agent mở rộng khả năng tự động hóa trong quá trình phát triển phần mềm bằng cách đưa ra một cách tiếp cận đổi mới trong việc tận dụng mô hình ngôn ngữ để giải quyết các issue GitHub thực tế.
- Công nghệ này có tiềm năng giúp các nhà phát triển thoát khỏi các công việc sửa lỗi lặp đi lặp lại để tập trung vào việc giải quyết những vấn đề sáng tạo và phức tạp hơn.
- Bằng việc nhấn mạnh tầm quan trọng của thiết kế ACI, nội dung này làm nổi bật vai trò của việc thiết kế giao diện nhằm tối ưu hóa tương tác giữa máy móc và con người.
3 bình luận
Nếu một agent như vậy làm việc bằng cách hỏi cả lập trình viên như thế này thì có vẻ sẽ rất ổn.
"Tôi đã biến cách tái hiện được mô tả trong bug report thành mã kiểm thử để tái hiện vấn đề. Bạn xem giúp tôi đoạn mã này có đúng với những gì tôi hiểu không?"
"Thay vì thiết kế này, nếu refactor theo hướng như thế này thì có vẻ có thể giảm 20312 dòng code trong toàn bộ project, do you approve?"
Đây là một dự án mã nguồn mở rất hấp dẫn.
Ý kiến trên Hacker News
Bình luận về báo cáo lỗi:
Bình luận về dự án:
Bình luận về phương pháp được sử dụng:
Bình luận về AI và bug tracker:
Bình luận về benchmark SWEbench:
Bình luận về so sánh demo:
Bình luận về công việc review:
Bình luận về các dự án tương tự:
Bình luận đề xuất cho các tác giả:
Bình luận về đóng góp cho dự án mã nguồn mở: