- Proyek yang bertujuan meningkatkan pengembangan perangkat lunak open source dengan membuat asisten otomatis berupa "agen" untuk pemeliharaan open source
- Dapat mengurangi jumlah pekerjaan berulang yang terkait dengan pemeliharaan open source
- Kemampuan model bahasa besar (LLM) dalam menganalisis makna bahasa alami serta mengubah antara perintah bahasa alami dan kode program membuka peluang baru agar agen dapat berinteraksi lebih mulus dengan manusia
- LLM akan menjadi satu bagian dari agen, dan sebagian besar perilaku agen akan berupa eksekusi kode standar yang deterministik
- Berbeda dari penggunaan LLM yang berfokus pada pengembangan, Oscar tidak berupaya melengkapi atau menggantikan proses penulisan kode
- Sebaliknya, idenya adalah berfokus pada bagian yang membosankan seperti menangani issue yang masuk dan mencocokkan pertanyaan dengan dokumentasi yang sudah ada
Tujuan proyek
- Mengurangi upaya pemeliharaan untuk menyelesaikan issue [penyelesaian tidak selalu berarti perbaikan]
- Mengurangi upaya pemeliharaan untuk menyelesaikan changelist (CL) atau pull request (PR) [penyelesaian tidak selalu berarti pengajuan/penggabungan]
- Mengurangi upaya pemeliharaan untuk menyelesaikan pertanyaan forum
- Mendukung lebih banyak orang agar dapat menjadi maintainer yang produktif
Pendekatan
- Karena pekerjaan berulang dalam pemeliharaan open source tidak terbatas pada proyek Go saja, tujuannya adalah membangun arsitektur yang dapat digunakan ulang dan diperluas oleh semua proyek perangkat lunak
- Sejauh ini telah diidentifikasi tiga fungsi yang akan menjadi bagian penting Oscar:
- Mengindeks dan menampilkan konteks proyek yang relevan selama interaksi dengan kontributor
- Menggunakan bahasa alami untuk mengendalikan alat yang deterministik
- Meningkatkan secara real-time serta memberi label dan mengarahkan dengan tepat melalui analisis issue report dan CL/PR selama atau segera setelah pengajuan
Mengindeks dan menampilkan konteks proyek yang relevan
- LLM dapat menganalisis dokumen dengan membuat embedding, yaitu vektor satuan floating-point berdimensi tinggi yang memiliki sifat memetakan dokumen dengan makna serupa ke vektor yang mengarah ke arah yang mirip
- Bila digabungkan dengan basis data vektor untuk mencari vektor yang mirip dengan vektor input, embedding LLM memberikan cara yang sangat efektif untuk mengindeks seluruh konteks proyek open source
- Agen prototipe mengimplementasikan fungsi ini dan merespons issue baru di repositori Go dengan menyediakan daftar hingga 10 tautan dengan relevansi tinggi
Menggunakan bahasa alami untuk mengendalikan alat yang deterministik
- Seiring pertumbuhan proyek open source, jumlah alat yang berguna meningkat dan bisa menjadi sulit untuk melacak semua alat serta mengingat cara menggunakan masing-masing alat
- LLM sangat efektif dalam mengubah antara maksud yang ditulis dalam bahasa alami dan bentuk yang dapat dieksekusi seperti kode program atau pemanggilan alat
- Eksperimen Gemini telah dilakukan untuk memilih dan memanggil alat yang tersedia guna memenuhi permintaan bahasa alami, tetapi belum ada yang benar-benar berfungsi di dunia nyata
Analisis issue report dan CL/PR
- Memposting pada issue terkait adalah bentuk analisis yang terbatas, tetapi ada rencana menambahkan jenis analisis semantik lain, misalnya mengidentifikasi issue tentang performa dan menambahkan label "performance"
- Ada rencana mengeksplorasi apakah report dapat dianalisis dengan cukup baik untuk mengidentifikasi apakah diperlukan lebih banyak informasi agar report menjadi berguna
- Semua analisis ini dan interaksi yang dihasilkannya bekerja jauh lebih baik ketika terjadi segera setelah report diajukan, saat pelapor masih tersedia dan tetap terlibat
Prototipe
- Prototipe pertama untuk mengeksplorasi Oscar bernama Gaby (Go AI bot), berjalan di issue tracker Go dan memposting dengan @gabyhelp
- Hingga saat ini, Gaby mengindeks isi issue Go di GitHub, mengindeks dokumentasi Go di go.dev, dan merespons issue baru dengan tautan yang relevan
- Struktur Gaby memudahkan untuk dijalankan dengan semua jenis layanan hosting serta menggunakan LLM, lapisan penyimpanan, dan basis data vektor apa pun
Belum ada komentar.