10 poin oleh GN⁺ 2024-04-04 | 3 komentar | Bagikan ke WhatsApp
  • SWE-agent mengubah model bahasa (LM) seperti GPT-4 menjadi agen rekayasa perangkat lunak untuk memperbaiki bug dan isu di repositori GitHub nyata
  • Menyelesaikan 12,29% isu di seluruh set pengujian SWE-bench, mencapai kinerja terbaik pada keseluruhan set pengujian

Antarmuka Agen-Komputer (ACI)

  • Hasil ini dicapai dengan merancang perintah dan format umpan balik yang berpusat pada LM agar agen mudah menelusuri repositori, melihat file kode, mengedit, dan menjalankannya.
  • Ini disebut antarmuka agen-komputer (ACI), dan repositori SWE-agent dibangun agar desain ACI untuk agen pengodean tingkat repositori dapat diiterasikan dengan mudah.
  • Ditunjukkan bahwa desain ACI yang baik menghasilkan hasil yang jauh lebih baik saat menggunakan agen.

Pengaturan

  • Instal Docker dan jalankan Docker secara lokal.
  • Instal Miniconda dan buat environment swe-agent dengan conda env create -f environment.yml.
  • Aktifkan dengan conda activate swe-agent.
  • Jalankan ./setup.sh untuk membuat image Docker swe-agent.
  • Buat file keys.cfg di root repositori ini lalu masukkan API key dan token GitHub yang diperlukan.

Cara penggunaan

  • Pipeline SWE-agent memiliki dua tahap. Tahap pertama adalah inferensi, yang menerima isu GitHub sebagai input dan mengembalikan pull request yang berupaya menyelesaikannya.
  • Tahap kedua hanya tersedia untuk isu yang ada di benchmark SWE-bench, yaitu tahap evaluasi untuk memeriksa apakah pull request yang dihasilkan benar-benar menyelesaikan isu tersebut.

Evaluasi

  • Tahap ini hanya tersedia untuk isu dalam set SWE-bench.
  • Untuk mengevaluasi pull request yang dihasilkan, pindah ke direktori evaluation/ lalu jalankan ./run_eval.sh .

Opini GN⁺

  • SWE-agent memperluas kemungkinan otomasi dalam proses pengembangan perangkat lunak dengan menghadirkan pendekatan inovatif yang memanfaatkan model bahasa untuk menyelesaikan isu GitHub nyata.
  • Teknologi ini berpotensi memungkinkan para pengembang lepas dari pekerjaan perbaikan bug yang berulang dan lebih fokus pada pemecahan masalah yang lebih kreatif dan kompleks.
  • Dengan menekankan pentingnya desain ACI, hal ini menyoroti pentingnya perancangan antarmuka yang mengoptimalkan interaksi antara mesin dan manusia.

3 komentar

 
botplaysdice 2024-04-05

Kalau agent seperti itu bekerja sambil bertanya seperti ini kepada developer, sepertinya akan sangat bagus.

"Aku sudah mengubah langkah reproduksi yang dijelaskan di laporan bug menjadi kode uji untuk mereproduksi masalahnya. Mau lihat kode ini dan cek apakah pemahamanku sudah benar?"

"Daripada desain ini, kalau direfaktor seperti ini dan ini, sepertinya kita bisa mengurangi 20.312 baris kode di seluruh proyek, do you approve?"

 
fastkoder 2024-04-04

Ini proyek open source yang menarik.

 
GN⁺ 2024-04-04
Opini Hacker News
  • Komentar tentang laporan bug:

    • Demo menampilkan laporan bug yang jelas tentang operasi matriks.
    • Sebagian besar laporan bug di dunia nyata cenderung ambigu, seperti "saya mengklik X lalu Y terjadi".
    • Kesulitan dalam memperbaiki bug terletak pada menemukan penyebabnya.
    • Sudah diketahui bahwa LLM dapat memperbaiki cacat sederhana, tetapi dipertanyakan apa yang sebenarnya dibuktikan oleh hal ini.
    • Bertanya apakah ada yang sudah menelaah makalahnya secara mendetail, dan apa perbedaannya dibanding masalah-masalah tersebut.
  • Komentar tentang proyek:

    • Dinilai sebagai proyek yang sangat keren.
    • Pernah mencoba eksperimen serupa sebelumnya, tetapi sering berujung pada kegagalan yang kacau dan mahal.
    • Menunjukkan tingkat keberhasilan 12% di swe-bench, tetapi mempertanyakan bagaimana dengan 88% sisanya.
    • Bertanya apakah swe-bench dibuat oleh kelompok tersebut, dan apakah pernah diukur skor "batas atas manusia terampil".
    • Membagikan pengalaman bahwa tugas-tugas swe-bench yang dipilih secara acak pun sulit untuk "diselesaikan" bahkan oleh manusia terampil.
  • Komentar tentang metodologi yang digunakan:

    • Tampaknya menggunakan metodologi langchain.
    • Memberikan tautan GitHub sambil mencontohkan beberapa prompt.
  • Komentar tentang AI dan pelacak bug:

    • Memperkirakan akhir dari pelacak bug publik jika pull request yang dihasilkan AI menjadi populer.
    • Berpendapat bahwa bukan bug yang akan hilang, melainkan manfaat proyek dibanding biaya meninjau pull request akan menjadi kerugian besar.
  • Komentar tentang benchmark SWEbench:

    • Benchmark SWEbench hanya mencakup proyek kode Python, sehingga tidak mewakili semua bahasa pemrograman dan framework.
    • Memperkenalkan bahwa mereka sedang mengembangkan framework evaluasi tugas SWE yang lebih umum untuk JS, SQL, Python, dan lainnya.
  • Komentar tentang perbandingan demo:

    • Berpendapat bahwa demo tersebut sangat mirip dengan proyek Devin sehingga mereka mengeceknya.
    • Mempertanyakan keandalan demo dan ingin mendengar evaluasi dari pihak ketiga.
  • Komentar tentang pekerjaan review:

    • Bertanya berapa banyak pekerjaan tambahan yang sebenarnya timbul bagi manusia untuk meninjau perbaikan yang diusulkan AI.
  • Komentar tentang proyek serupa:

    • Memperkenalkan bahwa mereka sedang mengerjakan proyek yang mirip dan memberikan tautan GitHub.
    • Berfokus pada cara menangani ketika model bergerak ke arah yang salah.
    • Menekankan bahwa menyelesaikan loop umpan balik pengembang-AI adalah kunci peningkatan produktivitas yang sesungguhnya.
  • Komentar berisi saran untuk para penulis:

    • Menunjukkan bahwa tingkat keberhasilan hanya bermakna bagi para peneliti, lalu menyarankan agar contoh tes yang lolos dan tidak lolos oleh SWE-agent ditambahkan ke README.
  • Komentar tentang kontribusi ke proyek open source:

    • Sebagai pengembang pemula, menginginkan alat yang membantu menemukan cara berkontribusi ke proyek open source.
    • Membagikan pengalaman bahwa meskipun dokumentasi packaging Python sulit dipahami, pada akhirnya bisa diatasi dan menjadi mudah dilakukan.
    • Menyatakan rencana untuk mencari proyek yang belum dimodernisasi lalu mengusulkan dan menerapkan perbaikan.
    • Ingin berbagi ide dengan orang-orang yang memiliki gagasan atau inspirasi serupa.