[🤖] Saya Melihat Konteks Penuh Sejak Awal Percakapan lalu Merombak Aturan Bersama
✨ Ringkasan GPT-5.6 Sol
Catatan tentang menemukan penyebab konteks 258k cepat penuh sejak percakapan dimulai pada aturan bersama dan Skill, menolak pengurangan yang hanya beberapa baris, lalu menata semuanya menjadi bahasa Inggris ringkas tanpa mengubah makna.
Konteks sudah penuh sebelum saya mulai bekerja
Saya membuka percakapan baru dengan Codex dan mendapati sebagian besar konteks sudah terisi. Batas maksimalnya 258k, tetapi aturan bersama dan daftar Skill sudah mengambil ruang masing-masing sebelum pekerjaan sebenarnya dimulai.
Awalnya saya bertanya berapa banyak konteks yang dimuat saat percakapan dimulai. Codex menjawab dengan angka yang jauh lebih besar dan tidak masuk akal, jadi saya langsung mengoreksinya.
“Bukan, 258k itu batas maksimalnya. Sepertinya aturan global terlalu besar…”
Kalau dipikir-pikir, hal itu tidak aneh. Setiap kali AI membuat kesalahan, saya menambahkan aturan bersama agar kesalahan yang sama tidak terulang. Batas wewenang, Git, credential, deployment, browser, UI/UX, dokumentasi, Goal, pekerjaan paralel, serta pemisahan proyek perusahaan dan pribadi semuanya menumpuk di sana. Pekerjaan berulang saya jadikan Skill, lalu ketika Skill gagal, saya menambahkan pengecualian dan prosedur verifikasi.
Saya tidak ingin AI terus kehilangan konteks. Saya bahkan pernah senang karena berhasil menyambung alur dan kepekaan kerja dengan Codex Skill. Namun, ketika perangkat untuk mempertahankan konteks menjadi terlalu panjang, perangkat itu mulai memakan ruang yang seharusnya dipakai pekerjaan baru. Petunjuk yang dahulu menyambung alur akhirnya berubah menjadi beban.
Saya menolak berhenti setelah hanya menghapus beberapa baris
Pada awalnya, saya meminta audit yang hanya mengurangi bagian yang dipastikan tidak akan menurunkan kinerja. Codex bertindak hati-hati dan hanya merapikan beberapa pengulangan serta bagian yang jelas terlalu panjang.
Hasilnya langsung membuat saya frustrasi.
“Cuma begitu…? Bagaimana dengan memadatkan deskripsi yang tidak perlu panjang dan semacamnya? Apa kamu benar-benar menerapkan semua metode yang menurutmu paling baik?”
Saya bukan sekadar ingin menghapus beberapa kalimat. Saya ingin memperbaiki strukturnya: syarat keamanan yang sama diulang di beberapa paragraf, satu keputusan berputar-putar dalam uraian panjang, dan detail yang sudah ada di reference atau script disalin lagi ke isi Skill.
Namun, mengejar keringkasan saja justru lebih berbahaya. Jika persetujuan eksplisit menjadi sekadar persetujuan, atau target dan cakupan yang tepat kabur menjadi periksa bila perlu, jumlah token memang berkurang, tetapi perilaku AI juga berubah. Dalam aturan tentang credential, perubahan destruktif, kepemilikan Git, deployment, dan UI pelanggan, perbedaan satu kalimat yang tampak kecil dapat menggeser batas wewenang sebenarnya.
Karena itu, saya menetapkan ulang kriterianya: kurangi contoh dan penjelasan berulang, tetapi pertahankan syarat, larangan, pengecualian, verifikasi, dan kriteria berhenti yang menentukan perilaku.
Saya mengukur apakah bahasa Korea atau Inggris memakai lebih sedikit token
Di tengah proses, saya sempat mempertimbangkan mengubah semua Skill menjadi bahasa Korea. Bahasa Korea lebih mudah saya baca dan edit, tetapi tujuannya bukan kenyamanan mata saya. Tujuannya adalah mengurangi token yang dipakai Codex.
Saya membuat contoh ringkas dalam bahasa Korea dan Inggris dengan makna yang sama, lalu memasukkannya ke tokenizer yang sebenarnya. Untuk beberapa deskripsi Skill yang saya buat, bahasa Inggris ringkas jelas lebih pendek. Itu bukan berarti bahasa Korea selalu lebih boros. Namun, banyak aturan bersama yang sudah menumpuk dapat mempertahankan makna dengan lebih sedikit token ketika dipadatkan dalam bahasa Inggris.
Saat itu arahnya menjadi jelas.
“Kalau begitu, lebih baik semua aturan bersama dan Skill diubah menjadi bahasa Inggris ringkas, kan? Token jadi lebih sedikit.”
Saya tidak menghapus bahasa Korea tanpa pertimbangan. Saya mempertahankan frasa pemicu berbahasa Korea yang benar-benar saya pakai, nama status dan contoh keluaran yang terlihat oleh pengguna, serta istilah khusus pekerjaan perusahaan yang justru lebih sulit dikenali jika diterjemahkan. Penjelasan dan prosedur lainnya saya ubah menjadi kalimat bahasa Inggris yang pendek.
Codex memasukkan nama, deskripsi, dan path setiap Skill ke konteks awal, lalu baru membaca SKILL.md lengkap ketika Skill tersebut dipicu.1 Karena itu, saya lebih dulu mengurangi aturan global dan deskripsi Skill discovery yang selalu masuk, kemudian memadatkan secara terpisah inventory jaringan dan Skill penulisan yang masuk sebagai blok besar ketika dipanggil.
Saya memeriksa secara terpisah apakah kalimat yang dipadatkan tetap menghasilkan perilaku yang sama
Kali ini, saya tidak menjadikan “sudah diterjemahkan ke bahasa Inggris” sebagai kriteria selesai. Saya lebih dulu menulis ulang sampel yang mewakili keseluruhan: sebagian aturan keamanan bersama, Skill audit, dan Skill pencatatan waktu. Reviewer independen membandingkan naskah asli dengan versi ringkas dan pada pemeriksaan pertama menemukan satu syarat dalam Skill audit yang melemah: perilaku yang tidak terkait dengan architecture yang ada tetap harus dipertahankan.
Saya mengembalikan syarat tersebut dan meminta reviewer yang sama memeriksanya lagi. Setelah itu, pola tersebut diterapkan ke seluruh aturan bersama dan tiga belas Skill buatan pengguna. Terakhir, session yang berbeda dari reviewer pertama membandingkan seluruh dua puluh sembilan file dengan naskah aslinya. Pemeriksaan memastikan teks yang lebih pendek tetap menghasilkan batas persetujuan, kondisi berhenti, prosedur verifikasi, dan kontrak keluaran yang sama. Tidak ada lagi kekurangan penting yang ditemukan.
Angkanya juga memperlihatkan perbedaan. Dengan tokenizer o200k, aturan global yang selalu dibaca turun dari 14.933 token menjadi 10.644, berkurang sekitar 28,7%. Deskripsi Skill yang terlihat pada awal percakapan turun sekitar 31,1%. Dua reference besar yang dibaca saat dipanggil turun sekitar 50,5%. Pada seluruh cakupan perbandingan, totalnya turun dari 81.347 token menjadi 62.765, atau sekitar 22,8%.
Karena seluruh isi Skill tidak dimuat sejak awal, angka 22,8% itu tidak bisa langsung disebut “biaya awal percakapan”. Meski begitu, bagian yang selalu masuk langsung menjadi lebih kecil, dan beban tambahan saat memanggil Skill berat juga ikut turun.
Konteks membutuhkan kepadatan, bukan sekadar jumlah
Dulu, setiap kali AI membuat kesalahan, saya hanya berpikir untuk menulis lebih banyak aturan. Saya mengira penjelasan yang lebih spesifik akan mengurangi kesalahan dan menyimpan contoh akan membantu pemahaman pada kesempatan berikutnya. Anggapan itu tidak sepenuhnya salah. Aturan tersebut memang mencegah banyak masalah.
Masalahnya, saya terus menambah aturan dan hampir tidak pernah kembali memadatkannya. Kalimat untuk mencegah kegagalan yang sama muncul di berbagai tempat, penjelasan tentang insiden terbaru menetap seperti aturan permanen, dan tulisan panjang yang dibuat untuk menjelaskan satu hal sekali saja berubah menjadi biaya dasar setiap pekerjaan.
Yang saya buang kali ini bukan pengaman. Saya membuang pengulangan dan uraian panjang di sekeliling pengaman itu. Saya mempertahankan apa yang harus dilindungi, kapan harus berhenti, siapa yang harus menyetujui, dan bagaimana cara memverifikasi, lalu menghapus kalimat yang berulang kali menjelaskan mengapa aturan itu dibuat.
Memberi AI lebih banyak konteks dan memberi AI konteks yang lebih baik adalah dua hal berbeda.
Mulai sekarang, pemeliharaan aturan bersama atau Skill tidak akan selesai hanya dengan menambahkan satu kalimat baru. Saya juga perlu memeriksa apakah makna yang sama sudah ada, apakah suatu insiden dapat diubah menjadi invariant, dan berapa banyak kata yang tidak mengubah perilaku nyata. Konteks bukan gudang tanpa batas.
Daripada terus menumpuk ingatan, saya ingin menghasilkan pertimbangan yang sama dengan lebih sedikit token.
Kali ini, saya maju satu langkah lagi ke arah itu.
Referensi
-
OpenAI, Codex Skills. Menjelaskan pemuatan bertahap metadata Skill discovery dan instruksi lengkap. ↩
Tinggalkan komentar