Senior SWE-Bench: benchmark open-source untuk mengevaluasi agen setingkat engineer senior
(senior-swe-bench.snorkel.ai)- Senior SWE-Bench adalah benchmark yang bertujuan mengevaluasi agen coding bukan dengan tugas junior yang terlalu dirapikan, melainkan dengan pengembangan fitur, perbaikan bug, dan masalah performa yang mendekati pekerjaan engineer senior di dunia nyata
- Tugas fitur menggunakan instruksi realistis yang terbaca seperti pesan bahasa alami, dan meningkatkan reliabilitas evaluasi dengan validation agent yang membuat pengujian perilaku sesuai solusi yang diajukan
- Tugas bug diambil dari PR yang berawal dari laporan pengguna dan membutuhkan investigasi runtime seperti menjalankan layanan, log, data profiling, dan langkah reproduksi
- Skor mengevaluasi tasteful solve dengan menggabungkan bukan hanya kesesuaian runtime, tetapi juga metrik kualitas berbasis praktik codebase; praktik penting yang tidak disebutkan dalam instruksi pun dapat menjadi target verifikasi
- Claude Opus 4.8, model teratas di leaderboard, pun hanya mencapai pass@1 24,0% pada konfigurasi Mini-SWE-Agent max, sehingga model papan atas juga gagal lebih dari 75% dalam menyelesaikan tugas dengan kesesuaian dan taste setingkat senior
Desain tugas yang mendekati PR nyata
- Senior SWE-Bench adalah benchmark yang bertujuan mengurangi kesenjangan antara penggunaan agen coding yang pada praktiknya seperti engineer senior dan evaluasi yang masih seperti tugas untuk junior
- Tugas diambil dari PR di berbagai repositori, mulai dari library hingga aplikasi multi-layanan, dan menargetkan PR yang dibuat oleh engineer yang telah menulis ratusan commit di masing-masing repositori
- Jenis tugas utama dibagi menjadi dua jalur
- PR fitur yang melintasi beberapa tahap dan beberapa stack
- PR bug/performa yang membutuhkan investigasi runtime yang signifikan
- Tugas publik berjumlah 50, dan ada 50 tugas privat
- Contoh repositori yang disertakan adalah sebagai berikut
- posthog 8 tugas
- electric 6 tugas
- gitea 6 tugas
- better-auth 4 tugas
- harbor 4 tugas
- 7 repositori lainnya
Tugas fitur: instruksi yang mendekati bahasa alami
- Tugas fitur menggunakan instruksi realistis yang terbaca seperti pesan bahasa alami, bukan requirement yang dipecah terlalu rinci
- Untuk mengevaluasi tugas seperti ini secara stabil, diperkenalkan validation agent
- Menggunakan resep yang dirancang oleh pakar
- Menulis pengujian perilaku sesuai solusi yang diajukan
- Instruksi mencerminkan komunikasi agen yang alami, dan median panjangnya sekitar 31% dari SWE-Bench Pro
Tugas bug: dari laporan pengguna hingga investigasi runtime
- Tugas bug mencerminkan laporan pengguna yang sulit, sehingga lebih menuntut investigasi penyebab dan proses reproduksi daripada sekadar perubahan kode
- Tugas dapat mencakup pekerjaan seperti berikut
- Memulai layanan
- Men-debug masalah runtime yang subtil
- Memeriksa log
- Memanfaatkan data profiling
- Menelusuri langkah reproduksi
- Sumbernya adalah PR yang dalam proses penyelesaiannya membutuhkan investigasi runtime yang signifikan
Kriteria evaluasi: mengukur kesesuaian dan taste sekaligus
- Senior SWE-Bench menilai tasteful solve dengan menggabungkan pengujian kesesuaian runtime dan beberapa metrik kualitas
- Metrik kualitas didasarkan pada praktik codebase yang diamati
- Verifier dan validation agent dapat menguji praktik yang penting dalam codebase meski tidak tertulis dalam instruksi
- Syarat solve di leaderboard mencakup item berikut
- Verifiers pass
- Validation pass
- Rubric > 0.5
- Bloat < 2×
- Practice > 2/5
- Rel. taste > 2/5
Leaderboard: model terbaik pun pass@1 rendah
- Leaderboard menampilkan hasil berdasarkan Tasteful solve rate(pass@1)
- Hasil teratas adalah sebagai berikut
- Claude Opus 4.8, Mini-SWE-Agent max: 24,0%
- Claude Sonnet 5, Mini-SWE-Agent max: 19,4%
- GPT-5.5, Mini-SWE-Agent xhigh: 16,0%
- Claude Opus 4.7, Mini-SWE-Agent max: 14,1%
- GPT-5.4, Mini-SWE-Agent xhigh: 14,0%
- GLM-5.2, Mini-SWE-Agent max: 12,5%
- Kimi K2.6, Mini-SWE-Agent default: 8,2%
- Claude Sonnet 4.6, Mini-SWE-Agent high: 8,2%
- Gemini 3.1 Pro, Mini-SWE-Agent high: 6,1%
- Gemini 3.5 Flash, Mini-SWE-Agent medium: 3,0%
- Model frontier terkuat pun tidak mampu menyelesaikan lebih dari 75% tugas yang menuntut kesesuaian dan taste setingkat senior
Cakupan tugas dan karakteristik benchmark
- Jenis tugas ditandai sebagai feature, bug, perf, migrat
- Stack mencakup Py Svc, Elixir, Go, SQL, TS Lib, Py Lib, Rust, TS FE, dan lainnya
- Tugas fitur dapat melintasi beberapa layanan, dan rata-rata menyentuh 11 file per tugas
- Dirancang untuk menuntut alur kerja panjang, sehingga agen terkuat pun membutuhkan ratusan langkah
- SLOC dan jumlah file pada solusi referensi diukur dengan cara yang sama di ketiga benchmark
- Panjang instruksi mengecualikan boilerplate harness
- Jumlah token dan jumlah langkah pada benchmark lain didasarkan pada metrik yang dilaporkan sendiri oleh masing-masing benchmark
1 komentar
Komentar Hacker News
Dari yang saya lihat di Twitter, katanya ada ujian di kelas machine learning Universitas Tsinghua yang meminta mahasiswa membuat kuis yang sebisa mungkin gagal dijawab oleh banyak LLM
Saya jadi berpikir, bagaimana kalau benchmark seperti ini dibuat lalu diberi skor ELO. Model saling berhadapan dengan mengajukan pertanyaan, bug, atau implementasi yang belum selesai, lalu lawannya harus menjawab, memperbaiki, atau melengkapinya
https://en.wikipedia.org/wiki/Generative_adversarial_network
Di kelas, mungkin bisa dibuat aturan bahwa setidaknya ada satu LLM yang harus bisa menjawabnya, tetapi untuk duel satu lawan satu saya tidak tahu bagaimana menyelesaikannya
Saya penasaran bagaimana benchmark ini akan tetap relevan seiring waktu
Jika benchmark-nya berupa implementasi fitur dari proyek open source, LLM bisa saja sudah memasukkan perubahan itu ke dalam data latihnya, sehingga dapat menjawab persis atau dengan sedikit modifikasi
Sebaliknya, jika benchmark hanya memasukkan perubahan kode setelah cutoff pengetahuan model, maka masalah pada waktu T dan T+1 menjadi berbeda, sehingga perbandingan lintas waktu jadi kurang valid
Kalau ini Staff SWE Bench, sepertinya LLM pertama-tama akan mempertanyakan apakah ini memang seharusnya dikerjakan, mengkritik keseluruhan proyeknya, menolak merge kode, tetapi dengan senang hati menghapusnya
LLM sepertinya juga bisa melakukan ini dengan cukup baik, mungkin bahkan lebih baik daripada kita, tetapi perlu dilatih secara khusus untuk itu. Hanya saja saya tidak langsung terpikir dari mana data latih seperti itu bisa didapat
Jadi ini menjelaskan kenapa saya selalu merasa Opus 4.8 jauh lebih unggul daripada GPT 5.5. Kemampuannya menerima requirement yang tidak lengkap lalu mengisi kekosongan dengan cara yang masuk akal sesuai proyek itu benar-benar bagus
Menurut saya kedua metode evaluasi itu tidak cukup mendorong model untuk meragukan semua asumsi dan bertanya. Mungkin karena pengguna bisa merasa terganggu, tetapi tahap itu menurut saya hampir wajib
Seri GPT-5 semuanya sangat teliti sehingga berguna untuk code review dan matematika. Itu penting untuk pekerjaan saya, tetapi tampaknya mengganggu untuk kode yang “estetis”. Misalnya, model berusaha mengantisipasi semua edge case meskipun kemungkinannya kecil
Sepertinya memang ada trade-off antara fleksibilitas dan kepatuhan terhadap instruksi. Dalam pengalaman saya, Opus kadang mengabaikan instruksi tetapi lebih pandai mengisi kekosongan, sedangkan GPT-5.5 lebih patuh namun jadi lebih kaku
Dalam pengalaman saya, Opus tidak unggul telak atau secara jelas lebih baik. Lagi pula GPT 5.5 punya Instant, Medium, High, Extra High, dan Pro, dan tabelnya terlihat seperti membandingkan dengan Extra High, jadi bukankah seharusnya dibandingkan dengan Pro?
Ada tugas tertentu seperti pengembangan frontend dan desain di mana Opus lebih baik, tetapi selain itu 5.5 benar-benar mendominasi
4.8 juga memang butuh lebih dari satu prompt, tetapi kualitas output-nya jauh lebih tinggi dan memberi lebih banyak wawasan
Namun Fable 5 adalah cerita lain lagi
Saat ini tingkat penyelesaian terbaik berdasarkan Opus 4.8 adalah 24%, tetapi manusia yang kompeten seharusnya bisa mendapat skor berapa?
Sebaliknya, saya juga penasaran apakah model akan mendapat skor lebih tinggi jika bisa mengarahkan manusia sesuka hati
Menurut saya adil jika dibandingkan dengan individu yang memang terbiasa bekerja pada produk tersebut
Saya justru lebih penasaran bagaimana hasil Fable nanti
Nilai dari peran senior adalah menerapkan solusi dan strategi yang sudah diketahui pada masalah baru. Saya tidak yakin benchmark yang tidak pernah berubah bisa tetap menjadi tantangan baru dalam jangka panjang
Benchmark yang bagus seharusnya terlebih dahulu membuat sekumpulan masalah besar dengan memanfaatkan seluruh TRIZ, lalu melihat apakah AI dapat menyimpulkan solusi optimalnya
Senang melihat benchmark publik baru dari Snorkel. Mereka melakukan pekerjaan yang cukup canggih di sana
Menarik bahwa Sonnet 5 cukup dekat dengan Opus 4.8
Kalau pendekatan seperti ini berhasil, bukankah itu berarti wawancara teknis juga bisa diotomatisasi?
Pendekatan menyuruh LLM membuat penilaian subjektif dengan kalimat seperti “You are a senior SWE-Bench reviewer, make no mistakes.” tampak cacat secara mendasar
Saya tidak tahu cara yang lebih baik sambil tetap menjaga kelayakan implementasinya
Ini pendekatan yang umum dalam system prompt dan membantu membingkai jawaban
Misalnya, jika diberi peran “bajak laut yang menulis sea shanty tentang pemrograman”, “jurnalis berita yang menulis artikel fisika”, atau “insinyur perangkat lunak senior yang sangat paham PostgreSQL”, hasil responsnya akan berbeda
Untuk yang pertama, mungkin akan keluar jawaban bergaya Wellerman seperti “There once was a program that was set to C ...”
Namun bagian “make no mistakes” memang mencurigakan. Menarik jika dibandingkan hasil dengan dan tanpa frasa itu, lalu juga diuji cara lain untuk mendapatkan perilaku yang sama
Tentu saja, tampaknya tidak ada pihak yang secara terbuka melakukan pengukuran perbandingan seperti ini agar kita bisa sampai pada kesimpulan yang masuk akal