Bagaimana Kami Menggandakan Tingkat Penerimaan Kode AI dengan Mengajarkan Model untuk Berpikir Seperti Insinyur Roblox
Kecerdasan Kode yang Sadar Domain

Semua orang antusias menanti model AI terobosan berikutnya, tetapi rahasia untuk menggandakan efektivitas alat AI internal di Roblox bukanlah model baru. Kuncinya tertanam dalam sejarah basis kode kami. Dengan memanfaatkan kode dan tinjauan selama bertahun-tahun dari para ahli di bidang kami, kami meningkatkan tingkat penerimaan saran pull request (PR) yang dihasilkan AI dari sekitar 30% menjadi lebih dari 60% di seluruh 10.000 set PR dan meningkatkan akurasi evaluasi proyek pembersihan kode agen di atas 90% selama periode yang sama.
Menutup Kesenjangan Kualitas AI
Di seluruh industri, 50% hingga 60% waktu pengkodean dihabiskan untuk pemeliharaan perangkat lunak.1 Roblox tidak terkecuali.
Secara teori, tugas pemeliharaan berulang dengan persyaratan yang jelas dan ruang masalah yang terbatas adalah kandidat ideal untuk otomatisasi AI. Namun, dalam praktiknya, asisten AI kami mengalami kesulitan dalam akurasi evaluasi dan penerimaan oleh tim teknik.
Di Roblox, masalahnya bukan pada kemampuan; melainkan konteks. Model generik belum mengalami dua dekade rekayasa Roblox. Ia belum melihat 700.000 pull request yang kami gabungkan dalam tiga tahun terakhir, atau belajar dari 1,7 juta komentar tinjauan kode di mana insinyur paling berpengalaman kami mendefinisikan dan mempertahankan standar pemrograman kami.
Asisten AI yang mengabaikan sejarah ini gagal memenangkan kepercayaan para insinyur kelas dunia. Meskipun setengah dari insinyur Roblox telah mengadopsi asisten bertenaga AI, hanya sekitar 20% saran yang dihasilkan AI yang diterima setelah tinjauan manusia. Survei produktivitas teknik triwulanan kami mencerminkan kenyataan ini. Insinyur memberi skor 4,02 dari 5 untuk dampak AI terhadap produktivitas, tetapi hanya 3,09 dari 5 untuk kepercayaan terhadap kualitas kode AI. Singkatnya, AI membantu, tetapi kepercayaan tetap terbatas, terutama pada kode C++ warisan dan domain kode yang lebih kompleks.
Untuk menutup kesenjangan konteks ini, kami berinvestasi dalam platform kecerdasan kode agen yang dibangun berdasarkan riwayat teknik Roblox sendiri, selaras dengan contoh-contoh ahli, dan divalidasi melalui evaluasi yang ketat. Platform kecerdasan kode ini dirancang tidak hanya untuk menghasilkan saran kode, tetapi juga untuk beriterasi dengan kedalaman institusional seorang insinyur Roblox.
Belajar dari Pengalaman Teknik Terbaik Roblox
Korpus teknik Roblox mencakup hampir 20 tahun komit, dokumen desain, dan telemetri produksi, sebuah kumpulan data yang sangat kaya yang menangkap bagaimana sistem kami berkembang dan bagaimana insinyur kami memecahkan masalah-masalah sulit.
Platform kecerdasan kode ini bertujuan untuk mengubah data tersebut menjadi grafik pengetahuan terstruktur, sebuah tantangan teknik yang signifikan. Dalam lingkungan polyglot yang besar, kode bukan sekadar berkas teks. Ini adalah jaringan kompleks dari target build, instansiasi templat C++, dan ketergantungan Lua dinamis. Menganalisis teks saja tidak cukup; sistem harus memahami hubungan semantik mendalam yang tersembunyi dalam basis kode itu sendiri, yang spesifik untuk arsitektur unik kami.
Tantangan lainnya adalah penelusuran dan penyelarasan temporal. Untuk melakukan penalaran di seluruh sistem yang saling terhubung, sistem agen harus menghubungkan repositori kode statis dengan telemetri runtime yang berisik dan memetakan jutaan sinyal produksi kembali ke versi kode yang tepat yang menghasilkannya, bahkan saat basis kode terus berkembang.

Untuk mengatasi hal ini, strategi kami adalah menggabungkan kontrol versi, grafik build, dan telemetri runtime ke dalam representasi simbolik-vektor hibrida, dengan tetap mempertahankan sintaksis, semantik, dan hubungan. Hal ini memungkinkan platform kecerdasan kode untuk memahami kode seperti yang dilakukan oleh insinyur senior: sebagai sistem yang saling terhubung yang dibentuk oleh alasan desain, pertimbangan, dan data kinerja, bukan sekadar file teks yang terpisah.
Mengekstraksi Sinyal Ahli Melalui Penyelarasan Contoh
Keahlian sejati tersembunyi dalam pola, komentar tinjauan, riwayat commit, dan idiom kode yang halus. Kecerdasan kode mengungkap kebijaksanaan implisit ini melalui mesin penyelarasan contoh, yang memungkinkan insinyur untuk mengkurasi contoh "emas" dari implementasi ideal atau alasan tinjauan.
Sebelumnya, seorang insinyur berpengalaman mungkin menghabiskan berjam-jam setiap minggu meninjau PR, berulang kali menandai penggunaan panggilan FetchData yang memblokir di dalam loop berfrekuensi tinggi—pola yang secara semantik terlihat benar tetapi menyebabkan latensi parah pada skala Roblox. Jika ahli tersebut sedang tidak di kota atau melewatkan kesalahan, pengetahuan mereka mungkin tidak diterapkan, dan pola anti-pola dapat masuk ke produksi dan menyebabkan gangguan bagi komunitas kami.
Dengan menggunakan mesin penyelarasan, insinyur tersebut dapat mengkodekan penilaiannya ke dalam contoh bahasa alami. Ini adalah definisi terstruktur yang menggabungkan pola kode (bagian “apa”) dengan alasan (bagian “mengapa”). Kini, sistem secara otomatis mendeteksi panggilan yang memblokir, menandainya, menjelaskan risiko latensi, dan menghubungkannya langsung ke dokumentasi internal tentang praktik terbaik asinkron:
Panggilan yang memblokir di dalam loop frekuensi tinggi menyebabkan peningkatan latensi dan kelelahan thread. Ketika panggilan `FetchData` dilakukan dalam tugas asinkron, beri peringatan kepada penulis tentang latensi dan kelelahan thread. `FetchData` diperbolehkan selama tugas tersebut telah ditunggu sebelumnya. Berikan tautan langsung ke praktik terbaik asinkron di: internal_guidance/async. |
Hal ini secara efektif mengkodekan pengetahuan yang diperoleh dengan susah payah oleh seorang insinyur selama bertahun-tahun pengalaman. Sistem ini mengubah komentar tinjauan satu kali menjadi pagar pengaman permanen dan otomatis.
“Yang membuat mesin penyelarasan ini sangat kuat bukan hanya karena ia meningkatkan kualitas kode—tetapi juga memperluas bimbingan. Kami mengintegrasikan keahlian dan intuisi para ahli berpengalaman kami ke dalam platform itu sendiri. Ini seperti memiliki seorang ahli senior di bidang Roblox yang berkolaborasi dalam pemrograman bersama Anda sepanjang hari, setiap hari.” —Tom Knych, Direktur Teknis Senior
Namun para ahli kami juga memiliki banyak pekerjaan, dan meminta mereka untuk mengingat serta menuliskan semua wawasan utama mereka adalah proses yang memakan waktu dan rentan kehilangan informasi. Jadi, bagaimana cara kami membantu mereka mencatat saran terbaik mereka selama bekerja di Roblox?
Sebenarnya, saran-saran itu sudah ada di sana, tertuang dalam komentar tinjauan kode mereka yang cermat dan tercatat dalam setiap pull request yang berhasil masuk ke produksi:

Kami mengarahkan komentar PR historis melalui pipa yang membersihkan dan mengekstrak tema bernilai tertinggi dari pengalaman Roblox. Awalnya, data yang berisik dipenuhi dengan komentar yang tidak dapat ditindaklanjuti seperti pujian atau perbaikan kesalahan ketik, sementara umpan balik yang berharga sering kali ditulis dalam bentuk singkatan yang sangat bergantung pada konteks. Misalnya, catatan seperti "gunakan pola baru di sini" tidak ada artinya tanpa pemahaman tentang file dan diff tertentu. Sistem harus menerjemahkan interaksi spesifik ini menjadi aturan yang dapat digunakan kembali dan digeneralisasikan.
Untuk mengatasi hal ini, kami menggunakan algoritma bertahap yang mendeteksi tema berulang di ribuan PR tanpa intervensi manusia. Sistem ini mengembed komentar historis ke dalam ruang vektor, menggunakan clustering rakus untuk menemukan kelompok umpan balik terkait, dan menerapkan penyempurnaan yang dipandu LLM untuk menggabungkannya menjadi pola bernilai tinggi.
Hasilnya adalah daftar peringkat kandidat contoh (atau pembelajaran), diprioritaskan berdasarkan seberapa sering mereka muncul dan seberapa luas mereka dikutip oleh berbagai peninjau, lengkap dengan kutipan ke komentar asli. Para ahli bidang kami kemudian meninjau kandidat-kandidat tersebut, melakukan pengeditan jika diperlukan, dan memutuskan mana yang akan dipromosikan ke basis pengetahuan sebagai praktik terbaik inti. Setelah melihat pratinjau pertama dari alur kerja ini, para pemimpin repositori sangat antusias melihat topik favorit mereka muncul sebagai panduan utama dan segera ingin mendaftarkan repositori mereka untuk dianalisis.

Langkah terakhir adalah agen penyelarasan, yang membantu insinyur manusia dan agen pengkodean AI dengan memeriksa semua perubahan terhadap basis pengetahuan contoh. Penilaian fleksibel ini dapat diterapkan di seluruh siklus hidup pengembangan perangkat lunak: saat pengkodean, saat penggabungan, dan bahkan dengan agen peningkatan berkelanjutan yang secara mandiri merapikan basis kode Roblox seiring pertumbuhan basis pengetahuan.
Dengan menggunakan pembelajaran dalam konteks ini untuk menyesuaikan perilaku AI dengan standar Roblox, kami melihat tingkat kelulusan salah satu agen pengkodean AI pada kumpulan data evaluasi utamanya melonjak dari 84% menjadi 100%. Kami tidak hanya mengajarkan AI Roblox cara membuat kode; kami juga mengajarkan AI kami cara berpikir para insinyur Roblox.
Belajar dari Sinyal Negatif
Meskipun penyelarasan contoh telah secara signifikan meningkatkan standar dasar kualitas basis kode kami, tujuan akhir kami adalah mencapai titik di mana kode yang disarankan AI pada tahap pertama dapat dipercaya sama seperti karya insinyur kami yang paling berpengalaman. Itulah mengapa kami menggunakan setiap saran AI yang ditolak, refaktor yang gagal, atau penggabungan yang menyebabkan regresi sebagai sinyal bernilai tinggi yang dapat kami masukkan kembali ke dalam sistem. Hal ini menciptakan alur kerja bagi agen untuk terus meningkatkan diri dan belajar dari kesalahan mereka.
Hasil negatif dapat disaring dan diberi label oleh pakar bidang dengan alasan terperinci, alur pemikiran, dan konteks tambahan seputar kegagalan tersebut. Data ini kemudian disematkan secara semantik dan diindeks untuk diambil kembali. Ketika platform kecerdasan kode kami mengusulkan hasil baru, platform tersebut melakukan pencarian semantik melalui data ini, mengingat kembali kesalahan masa lalu dan umpan balik peninjau untuk menghindari pengulangan kesalahan tersebut.
Lingkaran umpan balik tertutup ini mengubah setiap tinjauan kode menjadi data pembelajaran terstruktur, yang terus-menerus menyempurnakan perilaku agen di masa depan melalui pelatihan berbasis kritik dan pertentangan.
Membangun Kerangka Evaluasi yang Kuat
Kepercayaan dibangun melalui perilaku yang andal dan dapat diprediksi yang dimulai dengan pengukuran. Kami telah merancang sistem evaluasi khusus untuk melacak kinerja agen kami dari waktu ke waktu.

Kerangka kerja ini mencakup:
- Tolok ukur tingkat tugas: Presisi dan recall di ribuan aktivitas teknik Roblox, seperti refactoring, pengujian, dan tugas perbaikan bug.
- Alat simulasi: PR sintetis dengan hasil deterministik untuk penilaian yang dapat direproduksi.
- Panel manusia dalam siklus: Perbandingan ahli antara hasil AI dengan implementasi standar emas.
- Kerangka kerja eksekusi: Saat menggabungkan peningkatan agen, evaluasi yang relevan diparalelkan dan dijalankan sebagai bagian dari rangkaian integrasi berkelanjutan (CI) pra-penggabungan, sehingga insinyur memiliki keyakinan tinggi terhadap perubahan yang mereka buat.
- Metrik longitudinal: Regresi pasca-penggabungan, frekuensi pembalikan, dan perubahan latensi dilacak di seluruh rilis.
- Pengamatan menyeluruh: Pelacakan dan visualisasi otomatis aktivitas agen untuk menghubungkan agen dengan bagian lain Roblox dan memfasilitasi evaluasi online dan offline secara mulus.
Sistem ini menghasilkan skor kualitas agen yang secara akurat melacak pergeseran kinerja seiring waktu, memungkinkan perbandingan standar antar revisi agen dan versi model. Sejak kami memperkenalkan penyelarasan contoh dan rangkaian evaluasi lengkap, tingkat penerimaan saran PR dari satu agen kecerdasan kode Roblox meningkat dari sekitar 30% menjadi lebih dari 60% pada kumpulan 10.000 PR, yang merupakan indikasi awal kinerja yang dapat diandalkan dan selaras dengan domain. Melalui proses yang sama, agen pembersihan fitur flag kami meningkatkan akurasi keseluruhannya dari 46% menjadi lebih dari 90%.
Langkah ke Depan: Mengintegrasikan Penilaian Ahli ke Setiap Alat
Kami meningkatkan kegunaan sistem internal yang sudah ada dengan membangun lapisan MCP dan pembungkus alat, serta mengembangkan platform kecerdasan kode dari tugas-tugas terfokus menjadi sistem yang menjaga kesehatan basis kode Roblox.
Kami membayangkan masa depan teknik di mana pengetahuan yang historically sulit diskalakan, seperti konteks runtime dan penilaian ahli, diintegrasikan ke dalam setiap alat dan alur kerja. Ketika kecerdasan kode, keselarasan contoh, dan observabilitas bersatu, kami membuka potensi yang berkelanjutan: kualitas yang lebih baik, pengiriman yang lebih cepat, dan basis kode yang lebih sehat dan terus berkembang. Tujuan jangka panjangnya adalah memberikan setiap insinyur kekuatan memori institusional, setiap tim keyakinan untuk meluncurkan produk dengan cepat, dan setiap insinyur kebebasan untuk fokus pada inovasi, bukan pemeliharaan.


