Benchmarking Coding Agents di Kodebase Multi-Juta Baris Databricks: Hasil dan Analisis Lengkap
Di Databricks, metode pengembangan perangkat lunak berubah dengan cepat seiring adopsi agresif AI dalam proses engineering. Pilihan model dan harness untuk menulis kode berkembang pesat dalam setahun terakhir, memberikan para developer beragam opsi. Dengan semakin banyak pilihan, menjadi penting untuk memahami coding agents mana yang memberikan performa terbaik pada tugas-tugas pemrograman nyata sekaligus melihat bagaimana performa tersebut berbanding dengan biaya yang dikeluarkan.
Artikel ini membagikan hasil dan metodologi benchmarking internal coding agents yang kami buat di Databricks. Benchmark ini menguji tools berdasarkan tugas pemrograman nyata yang dilakukan engineer kami pada kodebase Databricks yang berisi jutaan baris kode. Tugas yang digunakan meliputi pengeditan di berbagai bahasa populer seperti Python, Go, Typescript, dan Scala, dengan validasi ketat agar hasilnya akurat. Meskipun tidak bersifat komprehensif, latihan ini memberikan wawasan yang signifikan sehingga tim engineering kami dapat meningkatkan efisiensi secara berarti menggunakan coding agents. Berikut adalah gambaran performa model dan harness pada benchmark kami:
Kesimpulan utama dari analisis kami adalah:
- Frontier Pareto untuk tugas coding (kualitas terbaik untuk biaya tertentu) mencakup model dari OpenAI, Anthropic, dan open source. Ini menunjukkan bahwa saat ini kombinasi tools diperlukan untuk performa optimal.
- Model open source, terutama GLM 5.2, kini mampu menangani tingkat kesulitan tugas tertinggi sekalipun.
- Harga token model
- Harness yang digunakan
Model Terbagi dalam Tiga Tingkatan Kapabilitas
Hasil spesifik yang berbeda sedikit seringkali tidak signifikan dalam tugas nyata. Fokus kami adalah pola tematik yang membantu menentukan model mana yang cocok untuk berbagai jenis tugas. Kami menemukan model dan harness terbagi jelas dalam tiga tingkatan kapabilitas.
Pada tingkat atas, model paling cerdas efektif menyelesaikan berbagai masalah tapi biayanya tinggi. Model menengah dan bawah tetap sangat efektif untuk tugas umum dan lebih hemat biaya.
Dalam keseharian, engineer mengerjakan tugas dengan kompleksitas beragam: tugas operasional sederhana seperti mengubah flag atau konfigurasi tidak memerlukan model paling cerdas, tapi eksplorasi desain mendalam membutuhkan model lebih pintar. Sebelumnya, model default kami adalah yang paling mahal. Berdasarkan analisis ini, kami memutuskan untuk lebih banyak menggunakan model kelas Haiku dan GPT 5.4 Mini yang lebih efisien.
Model Open Source Kini Layak Dipakai
GLM 5.2 mendapat banyak perhatian, dan hasil kami menunjukkan GLM bisa menjadi model utama bagi banyak developer. GLM masuk dalam tingkatan kapabilitas tertinggi, secara statistik setara dengan Opus 4.8 dalam kualitas, tapi biaya per tugasnya hanya $1,28 dibanding $1,94 pada Opus.
Skor kualitas GLM konsisten dengan feedback developer internal yang sudah mencoba GLM untuk pengembangan sehari-hari. Karena performanya yang sangat baik untuk tugas coding rutin, kami fokus mengoptimalkan penyajian GLM dan mulai menerapkannya sebagai model utama.
Perbandingan Biaya Per Tugas dan Per Token
Banyak developer hanya melihat harga token untuk menilai biaya model, namun kami menemukan bahwa biaya token seringkali tidak mewakili biaya keseluruhan tugas karena efisiensi reasoning model berbeda-beda. Ini menegaskan pentingnya benchmarking berbasis tugas nyata, karena kompleksitas dan bentuk tugas bisa sangat variatif.
Misalnya, Sonnet 5 sekitar 1,7 kali lebih murah per token dibanding Opus 4.8, namun biaya per tugas Sonnet adalah $2,09 dibanding $1,94 pada Opus, dengan skor penyelesaian tugas 81% vs 87%. Ini karena Sonnet menggunakan token lebih banyak (1,9x) untuk menyelesaikan tugas karena proses reasoning yang lebih panjang.
Harness Sangat Mempengaruhi Efisiensi
Ketika model yang sama dijalankan dengan usaha reasoning yang sama melalui dua harness berbeda (Claude Code/Codex vs Pi), kami melihat biaya per tugas bisa berbeda lebih dari dua kali lipat, walau kualitas tetap sama. Perbedaan utama adalah berapa banyak konteks yang diberikan setiap harness pada tiap putaran.
Harness Pi mengirimkan konteks sekitar 3 kali lebih sedikit per putaran, mengelola konteks dengan lebih ketat sehingga tugas selesai dalam lebih sedikit langkah.
Pelajaran dari sini bukan bahwa satu harness selalu lebih murah, melainkan pilihan model hanyalah satu bagian dari keseluruhan strategi. Fleksibilitas ini menjadi alasan kami berinvestasi di Omnigent agar pergantian model dan harness bisa dilakukan dengan mulus.
Mengapa Membangun Benchmark Sendiri?
Benchmark publik seperti SWE-Bench dan TerminalBench berguna, tetapi tidak menjawab kebutuhan kami karena:
- Tugasnya bersifat publik sehingga solusi dapat masuk ke data pelatihan model seiring waktu.
- Hasilnya tidak mewakili kodebase kami yang sangat beragam, meliputi 10+ bahasa dan beragam layanan Scala, Go, Rust, Java, Python, Bazel, Protobuf, dll.
- Dengan benchmark dari PR internal, kami dapat membuat keputusan dengan keyakinan lebih tinggi tanpa mengganggu developer lewat optimasi yang salah arah.
Metodologi Pembuatan Benchmark
Kami memakai Unity AI Gateway untuk merekam log interaksi coding, sehingga bisa menganalisis kompleksitas tugas yang dikerjakan engineer menggunakan coding agents. Tugas sangat beragam, dengan sekitar 25% bertingkat rendah dan 60% menengah.
Namun, model yang mahal masih jadi default, menunjukkan potensi besar efisiensi yang bisa diraih.
Pembuatan tugas benchmark dimulai dari ribuan perubahan kode (pull request) harian kami. Pull request adalah artefak kaya yang menunjukkan iterasi developer, review manusia, dan pengujian. Namun, kami menerapkan beberapa filter ketat untuk kualitas:
- Recency: Menggunakan PR terbaru agar mencerminkan praktik dan teknologi terkini.
- Human written: Memfilter commit bot, akun layanan, dan kode AI-generated atau auto-generated.
- Test suite berkualitas tinggi: Hanya PR dengan pengujian lengkap yang dipilih.
- Self-contained: Perubahan terbatas pada beberapa modul saja.
- Representatif: PR dipilih dari berbagai lapisan stack, termasuk backend Scala, kode sistem Rust, frontend React dan Typescript, protobuf/gRPC, dan konfigurasi Bazel.
Setelah kandidat PR terpilih, kami membuat tugas dengan mendokumentasikan intent PR dalam prompt yang jelas dan mengisolasi file tes untuk memverifikasi solusi model.
Kami juga memperbaiki pengujian agar tidak terlalu kaku, misalnya mengganti tes yang hanya cocok untuk perbandingan string eksak menjadi tes yang menilai perilaku, sehingga model dengan output non-deterministik tetap bisa lolos jika memenuhi tujuan.
Semua harness dan model diinstansiasi dengan setup standar yang biasa digunakan engineer kami. Ketika agen menyatakan tugas selesai, kami checkpoint kode, jalankan tes, dan evaluasi apakah tugas lulus tanpa menggunakan LLM sebagai juri, karena LLM cenderung menilai berdasarkan kesan benar, bukan kebenaran objektif.
Untuk mencegah agen menyalin solusi dari riwayat git yang bisa diakses, kami menutup akses ke riwayat git selama pengujian berlangsung.
Apa Langkah Selanjutnya?
Pertanyaan awal kami adalah: dapatkah coding agents digunakan lebih efisien? Jawabannya ya, secara definitif. Dengan data yang ada, kami mulai membangun kemampuan untuk memilih model yang tepat secara otomatis dan memantau efisiensi penggunaan.
Setiap perusahaan bisa melakukan hal serupa. Tim dengan backlog PR yang sudah digabung sebenarnya memiliki benchmark unik yang belum pernah dilatih model manapun, dan dinilai dengan tes yang mereka buat sendiri.
Kami akan terus menambah tugas, terutama yang lebih sulit, dan menjalankan benchmark ini pada setiap agen atau harness baru agar semakin yakin dalam memilih teknologi terbaik.
Databricks selalu menghindari ketergantungan vendor dan asumsi yang mengurangi fleksibilitas tim. Insting ini yang mendorong kami menggunakan format dan standar terbuka sejak awal, serta pendekatan AI yang mengutamakan pengukuran kinerja nyata kode yang kami kirim, memberikan engineer kebebasan pindah model dan harness dengan kontrol yang konsisten, dan melakukan optimasi agar AI dipakai secara efektif.
Dalam blog berikutnya, kami akan membahas bagaimana fitur routing cerdas di Unity AI Gateway dan Omnigent membantu developer kami menggunakan coding agents paling cerdas secara efisien.
Untuk informasi lebih lengkap dan update, kunjungi sumber artikel asli di blog resmi Databricks.
Analisis Redaksi
Menurut pandangan redaksi, benchmark internal Databricks ini merupakan langkah krusial dalam mengoptimalkan penggunaan AI untuk pengembangan perangkat lunak. Dengan kodebase multi-juta baris yang sangat kompleks dan beragam bahasa pemrograman, pengujian berbasis tugas nyata seperti ini memberikan gambaran realistis yang jarang didapat dari benchmark publik.
Temuan bahwa model open source seperti GLM 5.2 sudah mampu bersaing dengan model komersial mahal menandai era baru demokratisasi teknologi AI dalam coding. Ini dapat mendorong perusahaan lain berani mengadopsi solusi open source untuk mengurangi biaya tanpa mengorbankan kualitas.
Sisi lain yang penting adalah peran harness dalam efisiensi biaya dan performa. Banyak publik hanya fokus pada model, padahal bagaimana model tersebut diakses dan dikendalikan sama pentingnya. Investasi Databricks pada Omnigent menunjukkan visi jangka panjang agar tim engineering bisa dengan mudah beralih antara berbagai model dan harness sesuai kebutuhan tanpa hambatan.
Ke depan, tren pemilihan model berbasis data dan pengelolaan biaya secara cermat akan menjadi standar industri. Pembaca sebaiknya terus mengikuti perkembangan ini untuk memahami bagaimana AI dapat diintegrasikan secara efektif dan ekonomis dalam workflow pengembangan perangkat lunak mereka.
What's Your Reaction?
Like
0
Dislike
0
Love
0
Funny
0
Angry
0
Sad
0
Wow
0