- Studi eksperimen dari tim internal OpenAI yang membangun dan merilis beta internal sebuah produk perangkat lunak selama 5 bulan tanpa menulis kode secara manual, dengan seluruh kode dihasilkan oleh agen Codex
- Dimulai dengan 3 engineer dan menangani sekitar 1 juta baris kode serta 1.500 pull request, dengan rata-rata 3,5 PR digabungkan per engineer per hari
- Peran engineer bergeser dari menulis kode langsung menjadi merancang lingkungan, menyatakan niat, dan membangun loop umpan balik, dengan kunci utama berupa pembangunan scaffolding agar agen dapat bekerja secara stabil
- AGENTS.md digunakan sebagai daftar isi, bukan ensiklopedia, dan konsistensi arsitektur dipaksakan secara mekanis melalui dokumentasi terstruktur, linter, dan pengujian struktural
- Semakin tinggi otonomi agen, semakin penting manajemen entropi dan perapian berkelanjutan ala garbage collection, dan disiplin dalam membangun perangkat lunak sedang bergeser dari kode ke scaffolding
Eksperimen yang dimulai dari repositori git kosong
- Pada akhir Agustus 2025, commit pertama dilakukan ke repositori kosong. Scaffold awal (struktur repositori, konfigurasi CI, aturan format, pengaturan package manager, framework aplikasi) dibuat di Codex CLI menggunakan GPT-5 berdasarkan template yang sudah ada
- File AGENTS.md awal yang mengajarkan agen cara bekerja di repositori juga ditulis langsung oleh Codex
- Sejak awal, repositori dibentuk oleh agen tanpa adanya kode lama yang ditulis manusia
- Lima bulan kemudian, repositori tersebut berisi sekitar 1 juta baris kode yang mencakup logika aplikasi, infrastruktur, tooling, dokumentasi, dan utilitas developer internal
- Tim kecil beranggotakan 3 orang membuka dan menggabungkan sekitar 1.500 pull request, setara dengan throughput rata-rata 3,5 PR per engineer per hari
- Saat tim berkembang menjadi 7 orang, throughput justru meningkat
- Telah digunakan secara internal setiap hari oleh ratusan pengguna, termasuk power user internal
- Sepanjang proses pengembangan, manusia tidak pernah berkontribusi langsung pada kode
- "Tidak ada kode yang ditulis manual" menjadi filosofi inti tim
Mendefinisikan ulang peran engineer
- Karena manusia tidak lagi menulis kode langsung, dibutuhkan jenis pekerjaan engineering yang berbeda, berpusat pada sistem, scaffolding, dan leverage
- Alasan kemajuan awal lebih lambat dari perkiraan bukan karena keterbatasan Codex, melainkan karena lingkungan yang belum memadai
- Agen kekurangan alat, abstraksi, dan struktur internal untuk mencapai tujuan tingkat tinggi
- Pekerjaan utama tim engineering bergeser menjadi mendukung agen agar bisa menyelesaikan pekerjaan yang berguna
- Target besar dipecah menjadi building block yang lebih kecil (desain, kode, review, test, dan sebagainya), lalu agen menyusun blok-blok ini untuk menyelesaikan tugas yang lebih kompleks dengan pendekatan kerja depth-first
- Saat gagal, pertanyaan utamanya bukan "berusaha lebih keras", melainkan "fitur apa yang belum ada, dan bagaimana membuatnya mudah dibaca serta bisa dijalankan oleh agen"
- Manusia hampir sepenuhnya berinteraksi dengan sistem melalui prompt
- Menginstruksikan deskripsi tugas, menjalankan agen, membuka pull request, dan sebagainya
- Untuk menyelesaikan PR, Codex diinstruksikan agar meninjau perubahannya sendiri secara lokal, meminta review agen tambahan secara lokal dan di cloud, merespons umpan balik, lalu mengulang sampai semua reviewer agen puas
- Pada dasarnya menggunakan pola Ralph Wiggum Loop
- Codex secara langsung memakai alat pengembangan standar seperti gh, script lokal, dan skill bawaan repositori untuk mengumpulkan konteks
- Review pull request oleh manusia dimungkinkan tetapi tidak wajib, dan seiring waktu hampir semua pekerjaan review dialihkan menjadi pemrosesan antarsesama agen
Meningkatkan keterbacaan aplikasi
- Seiring throughput kode meningkat, muncul bottleneck pada kapasitas QA manusia
- Karena waktu dan perhatian manusia adalah batasan tetap, UI aplikasi, log, dan metrik aplikasi dibuat agar bisa dibaca dan dipahami langsung oleh Codex, sehingga kemampuan agen bertambah
- Dengan fitur boot aplikasi per git worktree, Codex bisa menjalankan dan mengendalikan instance terpisah untuk setiap perubahan
- Chrome DevTools Protocol dihubungkan ke runtime agen, lalu dibuat skill untuk snapshot DOM, screenshot, dan pekerjaan navigasi
- Codex dapat mereproduksi bug, memverifikasi perbaikan, dan menalar perilaku UI secara langsung
- Tooling observability juga diterapkan dengan cara yang sama
- Log, metrik, dan trace diekspos ke Codex melalui stack observability lokal yang dipertahankan sementara untuk tiap worktree
- Setelah pekerjaan selesai, log dan metrik dihapus
- Agen dapat menjalankan query log dengan LogQL dan query metrik dengan PromQL
- Dengan konteks seperti ini, prompt seperti memastikan "startup service selesai dalam 800 ms" atau "tidak ada span di empat user journey utama yang melebihi 2 detik" menjadi mudah diproses
- Satu eksekusi Codex dapat mengerjakan satu tugas selama lebih dari 6 jam (sering kali saat manusia sedang tidur)
Memanfaatkan pengetahuan repositori sebagai sistem pencatatan
- Manajemen konteks adalah salah satu tantangan terbesar agar agen bisa menangani tugas besar dan kompleks secara efektif
- Pelajaran awal: yang dibutuhkan Codex bukan manual 1.000 halaman, melainkan peta
- Pendekatan "satu AGENTS.md besar" pernah dicoba dan gagal seperti yang bisa diprediksi
- Konteks adalah sumber daya langka: file instruksi yang sangat besar membuat tugas, kode, dan dokumen terkait menjadi rumit sehingga agen melewatkan batasan penting atau mengoptimalkan batasan yang salah
- Jika instruksi terlalu banyak, itu bukan lagi instruksi: jika semuanya "penting", maka tidak ada yang penting, dan agen akan melakukan pattern matching lokal alih-alih eksplorasi yang disengaja
- Cepat rusak: manual raksasa yang seragam berubah menjadi makam aturan usang, dan agen tidak bisa menilai mana yang masih berlaku
- Sulit diverifikasi: satu blob tunggal tidak cocok untuk pemeriksaan mekanis seperti cakupan, kesegaran, kepemilikan, dan tautan silang, sehingga drift tak terhindarkan
- Solusinya: memperlakukan AGENTS.md sebagai daftar isi, bukan ensiklopedia
- Knowledge base repositori dikelola sebagai sistem pencatatan di direktori
docs/ yang terstruktur
- AGENTS.md yang singkat (sekitar 100 baris) disisipkan ke dalam konteks dan terutama berfungsi sebagai peta yang mengarahkan ke sumber informasi yang lebih mendalam dan andal
- Dokumentasi desain diklasifikasikan dan diindeks, termasuk keyakinan inti yang mendefinisikan status verifikasi dan prinsip operasi yang mengutamakan agen
- Dokumentasi arsitektur menyediakan peta tingkat atas untuk domain dan layering paket
- Dokumen kualitas memberi peringkat untuk tiap domain produk dan layer arsitektur serta melacak kesenjangan dari waktu ke waktu
- Rencana diperlakukan sebagai artefak kelas satu
- Rencana yang sementara dan sederhana digunakan untuk perubahan kecil
- Pekerjaan yang kompleks dimasukkan ke dalam rencana eksekusi bersama progres dan log keputusan, lalu disimpan di repositori
- Rencana yang sedang berjalan, rencana yang selesai, dan technical debt yang diketahui semuanya diberi versi dan ditempatkan di lokasi yang sama
- Hal ini memungkinkan pengungkapan bertahap: agen dapat memulai dari titik masuk yang kecil dan stabil tanpa beban sejak awal, lalu melangkah ke tahap berikutnya
- Penegakan mekanis: linter khusus dan job CI memverifikasi bahwa knowledge base tetap mutakhir, saling tertaut, dan tersusun dengan benar
- Agen "doc-gardening" yang berjalan berulang kali meninjau dokumen yang usang atau tidak valid lalu membuka pull request untuk memperbaikinya
Keterbacaan bagi agen adalah tujuan
- Karena repositori ini sepenuhnya dihasilkan oleh agen, maka ia dioptimalkan terutama untuk keterbacaan oleh Codex
- Tujuan engineer manusia: membuat agen mampu menalar seluruh domain bisnis langsung dari repositori itu sendiri
- Dari sudut pandang agen, apa pun yang tidak bisa diakses dalam konteks saat berjalan pada dasarnya tidak ada
- Google Docs, thread chat, dan pengetahuan di kepala orang tidak bisa diakses oleh sistem
- Yang bisa diakses hanya artefak berversi di dalam repositori (kode, Markdown, skema, rencana eksekusi)
- Bahkan pola arsitektur yang disepakati dalam diskusi Slack tetap tidak dapat dibaca jika agen tidak bisa menemukannya
- Memberi Codex lebih banyak konteks bukan berarti membebaninya dengan instruksi sementara, melainkan menata dan mengekspos informasi yang benar agar agen bisa menalar
- Hasil menjadi lebih baik ketika agen diberi informasi tentang prinsip produk, norma engineering, dan budaya tim (termasuk preferensi emoji) layaknya saat melakukan onboarding anggota tim baru
- Mereka lebih memilih dependensi dan abstraksi yang bisa sepenuhnya diinternalisasi dan ditalar di dalam repositori
- Teknologi yang "membosankan" cenderung lebih mudah dimodelkan oleh agen berkat keterikatan yang lebih jelas, stabilitas API, dan representasinya dalam data pelatihan
- Dalam beberapa kasus, lebih murah bagi agen untuk mengimplementasikan ulang subset fungsionalitas sendiri daripada bergantung pada perilaku upstream dari library publik yang opak
- Contoh: alih-alih memakai paket gaya
p-limit yang generik, mereka membuat helper map-with-concurrency sendiri, terintegrasi erat dengan instrumentasi OpenTelemetry, memiliki cakupan test 100%, dan berperilaku tepat sesuai ekspektasi saat runtime
- Semakin sistem dibawa ke bentuk yang bisa diperiksa, diverifikasi, dan diperbaiki langsung oleh agen, semakin besar leverage-nya bukan hanya untuk Codex tetapi juga agen lain seperti Aardvark
Menegakkan arsitektur dan preferensi
- Dokumentasi saja tidak cukup untuk menjaga codebase yang dihasilkan agen tetap sepenuhnya konsisten
- Fondasi tetap kuat sambil memungkinkan agen merilis dengan cepat dilakukan dengan menegakkan invariant tanpa mengatur implementasi sampai detail kecil
- Contoh: mereka ingin Codex mem-parsing bentuk data di boundary, tetapi tidak menjelaskan secara spesifik caranya atau library tertentu yang harus dipakai (model cenderung menyukai Zod)
- Agen bekerja paling efektif dalam lingkungan dengan boundary yang ketat dan struktur yang dapat diprediksi
- Aplikasi dibangun berdasarkan model arsitektur yang ketat
- Tiap domain bisnis dipisahkan ke dalam sekumpulan layer tetap dengan arah dependensi yang divalidasi secara ketat serta himpunan edge yang diizinkan secara terbatas
- Kode mengalir dalam urutan Types → Config → Repo → Service → Runtime → UI
- Isu lintas domain (autentikasi, connector, telemetry, feature flag) masuk melalui satu antarmuka eksplisit bernama Providers
- Selain itu semuanya tidak diizinkan, dan ditegakkan secara mekanis
- Batasan ini diterapkan melalui linter khusus dan pengujian struktural yang dibuat oleh Codex
- Tingkat arsitektur seperti ini biasanya ditunda sampai skala ratusan engineer, tetapi untuk agen coding justru merupakan prasyarat awal
- Lint kustom dipakai untuk menegakkan secara statis logging terstruktur, konvensi penamaan skema dan tipe, batas ukuran file, serta persyaratan stabilitas spesifik platform
- Karena lint tersebut kustom, pesan error bisa ditulis untuk menyuntikkan instruksi perbaikan ke konteks agen
- Dalam workflow yang berpusat pada manusia, aturan seperti ini bisa terasa terlalu rinci atau membatasi, tetapi saat memanfaatkan agen dampaknya berlipat ganda
- Batasan membuat jelas mana yang penting dan mana yang tidak
- Mirip menjalankan organisasi platform engineering skala besar: boundary ditetapkan secara terpusat, otonomi diizinkan secara lokal
- Kode yang dihasilkan mungkin tidak selalu cocok dengan preferensi gaya manusia, tetapi jika output-nya benar, mudah dipelihara, dan mudah dibaca saat agen berjalan, maka standar sudah terpenuhi
- Preferensi manusia terus diberikan kembali ke sistem
- Komentar review, PR refactor, dan bug dari sisi pengguna dicatat sebagai pembaruan dokumentasi atau langsung dienkode ke tooling
- Jika dokumentasi tidak memadai, aturan dinaikkan menjadi kode
Perubahan filosofi merge
- Seiring throughput Codex meningkat, norma engineering lama justru menjadi kontraproduktif
- Repositori dioperasikan dengan merge gate penghambat seminimal mungkin
- Pull request berumur pendek, dan ketidakstabilan test diselesaikan melalui eksekusi lanjutan alih-alih memblokir progres tanpa batas
- Dalam sistem di mana throughput agen jauh melampaui perhatian manusia, biaya memperbaiki itu murah dan latensi itu mahal
- Ini mungkin tidak cocok untuk lingkungan dengan throughput rendah, sehingga dibutuhkan kompromi yang tepat
Cakupan nyata dari "dihasilkan agen"
- Ketika codebase dikatakan dihasilkan oleh agen Codex, itu berarti segala sesuatu yang ada di dalamnya
- Kode produk dan test
- Konfigurasi CI dan tooling rilis
- Tool internal untuk developer
- Dokumentasi dan riwayat desain
- Evaluation harness
- Komentar review dan tanggapan
- Script yang mengelola repositori itu sendiri
- File definisi dashboard produksi
- Manusia selalu tetap berada dalam loop, tetapi bekerja pada layer abstraksi yang berbeda dibanding dulu
- Menentukan prioritas pekerjaan, mengubah umpan balik pengguna menjadi acceptance criteria, dan memverifikasi hasil
- Saat agen mengalami kesulitan, hal itu diperlakukan sebagai sinyal untuk menemukan apa yang kurang dalam alat, guardrail, atau dokumentasi, lalu selalu menulis perbaikan menggunakan Codex sendiri agar bisa dikembalikan ke repositori
- Agen juga mengambil umpan balik review, memberi respons inline, mendorong update, hingga melakukan squash dan merge pull request-nya sendiri
Meningkatnya tingkat otonomi
- Ketika semakin banyak loop pengembangan seperti test, verifikasi, review, penanganan umpan balik, dan pemulihan dienkode langsung ke sistem, mereka mencapai ambang penting
- Hal-hal yang bisa dilakukan agen hanya dengan satu prompt:
- Memverifikasi status terkini codebase
- Mereproduksi bug yang dilaporkan
- Merekam video yang mendemonstrasikan kondisi gagal
- Mengimplementasikan perbaikan
- Menjalankan aplikasi untuk memverifikasi perbaikan
- Merekam video kedua yang menunjukkan solusi
- Membuka pull request
- Merespons umpan balik dari agen dan manusia
- Mendeteksi dan memperbaiki build yang gagal
- Melakukan eskalasi ke manusia hanya jika dibutuhkan penilaian
- Menggabungkan perubahan
- Perilaku ini sangat bergantung pada struktur dan tooling spesifik repositori ini, dan tidak boleh diasumsikan dapat digeneralisasi tanpa investasi serupa
Entropi dan garbage collection
- Otonomi penuh agen memunculkan masalah baru: Codex meniru pola yang sudah ada di repositori, termasuk pola yang tidak seragam atau belum optimal, sehingga drift akan terjadi seiring waktu
- Awalnya manusia menanganinya secara manual, menghabiskan setiap hari Jumat (20% dari minggu kerja) untuk membersihkan "AI slop"
- Seperti yang diperkirakan, hal itu tidak bisa diskalakan
- Sebagai gantinya, "aturan emas" dienkode langsung ke repositori dan dibangun proses perapian berkala
- (1) Lebih memilih paket utilitas bersama daripada helper buatan sendiri untuk mengelola invariant secara terpusat
- (2) Tidak mengeksplorasi data secara "YOLO-style", melainkan memvalidasi boundary atau mengandalkan SDK bertipe agar agen tidak tanpa sengaja membangun berdasarkan bentuk yang ditebak
- Mereka menjalankan pekerjaan background Codex yang secara berkala memeriksa deviasi, memperbarui grade kualitas, dan menghasilkan PR refactor yang terarah
- Sebagian besar bisa ditinjau dalam waktu kurang dari satu menit dan di-auto-merge
- Pendekatan ini bekerja seperti garbage collection: technical debt seperti pinjaman berbunga tinggi, sehingga lebih efektif dibayar sedikit demi sedikit secara konsisten sebelum bunganya menumpuk
- Begitu preferensi manusia berhasil ditangkap, ia terus diterapkan pada setiap baris kode, dan pola buruk ditangkap serta diselesaikan setiap hari agar tidak menyebar selama berhari-hari atau berminggu-minggu
Pembelajaran yang sedang berlangsung dan tantangan ke depan
- Strategi ini telah berjalan baik di OpenAI hingga tahap peluncuran dan adopsi internal
- Mereka membumikan investasi ini pada realitas dengan membangun produk nyata untuk pengguna nyata dan memastikan maintainability jangka panjang
- Hal yang masih belum diketahui: bagaimana konsistensi arsitektur berkembang selama bertahun-tahun dalam sistem yang sepenuhnya dihasilkan agen
- Mereka masih mempelajari di mana penilaian manusia memberi dampak terbesar dan bagaimana mengodekan penilaian itu agar bisa dimanfaatkan secara majemuk
- Seiring kemampuan model terus meningkat, arah evolusi sistem ini juga masih belum jelas
- Membangun perangkat lunak tetap membutuhkan disiplin, tetapi disiplin itu semakin banyak muncul dalam scaffolding ketimbang di kode
- Tooling, abstraksi, dan loop umpan balik untuk menjaga konsistensi codebase menjadi semakin penting
- Tantangan tersulit saat ini: merancang lingkungan, loop umpan balik, dan sistem kontrol yang membantu agen membangun serta memelihara perangkat lunak yang kompleks dan stabil dalam skala besar
1 komentar
40 hari, 1 juta baris, 13 miliar token — Realitas alur kerja agentic yang ditemukan CEO Lablup, Jeonggyu Shin - Silicon Valley-nya Park Jaehong - https://wikidocs.net/blog/@jaehong/8206/