- Dalam pengukuran di batas API pada model, mesin, dan tugas yang sama, overhead tetap pada permintaan pertama Sonnet 4.5 adalah sekitar 32.800 token untuk Claude Code dan sekitar 6.900 token untuk OpenCode, selisih 4,7x; pada Fable 5 selisih ini menyusut menjadi sekitar 3,3x
- Sebagian besar selisih berasal dari skema alat. Claude Code memakai sekitar 24.000 token untuk 27 definisi alat, sementara OpenCode memakai sekitar 4.800 token untuk 10 alat; bahkan saat semua alat dimatikan, prompt sistem masing-masing masih sekitar 6.500 token dan 2.000 token
- Dalam konfigurasi nyata, file instruksi 72KB menambah sekitar 20.000 token pada setiap permintaan, dan satu server MCP kecil menambah sekitar 1.000~1.400 token, sehingga permintaan pertama saja bisa mencapai 75.000~90.817 token
- Pada tugas ringkasan file yang sama, Claude Code menghasilkan penulisan cache 5,9~54x lebih banyak daripada OpenCode; saat pekerjaan dibagi ke dua subagen, penggunaan yang semula 121.000 token saat eksekusi langsung naik 4,2x menjadi 513.000 token
- Biaya total tidak bisa dinilai hanya dari overhead tetap. Pada tugas multilangkah, Claude Code mengelompokkan pemanggilan alat secara paralel dan memakai sekitar 121.000 token dalam 3 permintaan, sedangkan OpenCode memakai sekitar 132.000 token dalam 9 permintaan serial
Cara pengukuran dilakukan di batas API
- Sebuah proxy logging ditempatkan di antara Claude Code dan OpenCode untuk mencatat JSON permintaan persis yang dikirim harness serta blok penggunaan yang dikembalikan API
- Isi permintaan mencakup blok sistem, skema alat, dan pesan
- Penggunaan mencakup token input, penulisan/pembacaan cache, dan token output
- Isi permintaan yang ditangkap dipakai sebagai isi kiriman sebenarnya, dan blok penggunaan API dipakai sebagai dasar tagihan sebenarnya
- Perbandingan dasar menggunakan Claude Code 2.1.207 dan OpenCode 1.17.18, keduanya dipatok ke
claude-sonnet-4-5per Juli 2026- Sebagian pengujian overhead tetap, operasi cache, dan tugas multilangkah dijalankan ulang dengan
claude-fable-5 - Nilai default diisolasi dalam direktori konfigurasi baru, tanpa server MCP, tanpa setelan pengguna, tanpa memori, dan ruang kerja kosong tanpa file instruksi
- Sebagian pengujian overhead tetap, operasi cache, dan tugas multilangkah dijalankan ulang dengan
- Tiga tugas dipakai untuk mengukur struktur biaya yang berbeda
- T1 memakai
Reply with exactly: OKuntuk memisahkan overhead tetap, dan dijalankan 3 kali per harness - T2 meminta model membaca file yang telah disiapkan lalu merangkumnya
- T3 menjalankan prosedur menulis, mengeksekusi, menguji, dan memperbaiki pada FizzBuzz dan skrip pemeriksa
- T1 memakai
- Untuk membandingkan prompt sistem tanpa skema alat, Claude Code diberi
--tools "", dan OpenCode diberi"tools": {"*": false} - Gateway LLM lokal menambahkan amplop tetap sekitar 6.200 token pada setiap permintaan; nilai ini dikoreksi lalu dikeluarkan dari pengukuran
- Angka per komponen dihitung dari isi permintaan yang ditangkap, yang tidak bisa diubah gateway
- Konversi karakter-ke-token memakai rasio 1 token per 4,1~4,4 karakter per harness, diukur dengan cache dingin
Skema alat yang membesarkan overhead dasar
- Pada permintaan pertama untuk prompt T1 sepanjang 22 karakter, Claude Code mengirim sekitar 32.800 token, sedangkan OpenCode sekitar 6.900 token
- Prompt sistem Claude Code terdiri dari 3 blok dan 27.344 karakter, sementara OpenCode 1 blok dan 9.324 karakter
- 27 skema alat Claude Code berukuran 99.778 karakter, sedangkan 10 alat OpenCode 20.856 karakter
- Claude Code menyisipkan blok
<system-reminder>sepanjang 7.997 karakter sebelum prompt sebenarnya, berisi tipe agen, skill yang tersedia, dan konteks pengguna - OpenCode mengirim blok sistem, 10 alat coding, dan prompt pengguna tanpa scaffolding pesan pertama terpisah
- Pada kedua sisi, definisi alat menjadi porsi terbesar
- Dari sekitar 33.000 token Claude Code, sekitar 24.000 token adalah definisi alat
- Dari sekitar 6.900 token OpenCode, sekitar 4.800 token adalah definisi alat
- Alat Claude Code mencakup bukan hanya fungsi coding, tetapi juga
CronCreate,Monitor, keluargaTask, pengelolaan task tree, notifikasi push, dan fitur agen latar belakang/orkestrasi lainnya
- Jika semua alat dihapus, prompt sistem Claude Code menjadi 26.891 karakter, sekitar 6.500 token, dan OpenCode 8.811 karakter, sekitar 2.000 token
- Pada kedua harness, prompt sedikit menyusut saat alat dinonaktifkan
- Sisa selisih berasal dari instruksi perilaku seperti nada, panduan keselamatan, aturan manajemen tugas, dan informasi lingkungan
- Pada Fable 5, Claude Code memendekkan prompt sesuai model sehingga selisih menyusut menjadi sekitar 3,3x
- Instruksi sistem turun dari 27.787 karakter pada Sonnet menjadi 10.526 karakter pada Fable
- Dengan 27 alat yang sama, skemanya juga mengecil dari 99.778 menjadi 82.283 karakter
- Permintaan OpenCode identik sampai tingkat byte pada kedua model
Total penggunaan berubah sesuai bentuk tugas
- Pada T2 yang membaca dan merangkum satu file, kedua harness menghasilkan jawaban yang akurat, tetapi struktur permintaannya berbeda
- Claude Code memakai 6 permintaan HTTP dan total input sekitar 199.000 token
- OpenCode memakai 4 permintaan dan sekitar 41.000 token, ditambah 1 panggilan Haiku untuk membuat judul sesi
- Sebagian besar penggunaan adalah pembacaan cache yang ditagih sepersepuluh harga input
- Meski ada diskon cache, penulisan cache pada permintaan pertama, pembacaan cache di tiap giliran, dan okupansi jendela konteks tetap bertambah seiring ukuran payload
- Basis 33.000 token sudah memakan sekitar seperenam jendela 200.000 token bahkan sebelum kode dimasukkan
- Pada T3, yaitu tugas menulis, menjalankan, menguji, dan memperbaiki, cara pemanggilan alat menutup selisih overhead dasar
- Claude Code mengelompokkan 2 penulisan file dan 2 eksekusi skrip dalam satu round-trip alat paralel, sehingga hanya 3 permintaan model dengan total input sekitar 121.000 token
- OpenCode memanggil hanya satu alat per giliran, menghasilkan 9 permintaan plus 1 panggilan judul, dengan total input sekitar 132.000 token
- Total input kira-kira ditentukan oleh basis per permintaan dikali jumlah permintaan, ditambah pertumbuhan percakapan
- Seiring percakapan berjalan, Claude Code menambah
<system-reminder>dari 3 blok pada giliran pertama menjadi 4 blok saat round-trip alat pertama - Payload tambahan per giliran pada OpenCode sekitar 400~2.200 karakter, dan hanya isi percakapan yang bertambah
Token tambahan dari konfigurasi nyata
- Saat
AGENTS.md72KB dari repositori produksi ditambahkan, kedua harness bertambah lebih dari 20.000 token pada setiap permintaan- Pengukuran OpenCode naik dari 13.152 token menjadi 33.336 token
- Claude Code naik dari 39.005 token menjadi 59.243 token
- Claude Code 2.1.207 mengabaikan
AGENTS.md; file harus diubah namanya menjadiCLAUDE.mdagar disisipkan ke pesan pengguna pertama - OpenCode membaca kedua nama file dan menyisipkannya ke prompt sistem
- Jika nama file yang benar-benar dikenali harness tidak diverifikasi, file instruksi bisa diam-diam diabaikan
- Server MCP kecil yang tersedia publik menambah sekitar 1.000~1.400 token per server pada setiap permintaan
- 5 server menambah 4.900 token ke payload Claude Code dan 6.967 token ke pengukuran OpenCode
- Jumlah alat naik dari 27 menjadi 69 pada Claude Code, dan dari 10 menjadi 52 pada OpenCode
- Server produksi dengan API lebih kaya bisa mengirim skema yang lebih besar
- Mode print Claude Code diam-diam mengabaikan
.mcp.jsoncakupan proyek jika tidak ada--mcp-configeksplisit, sehingga konektivitas harus dipastikan di batas API
- Framework workflow berbasis cerita seperti BMAD memperluas slash command menjadi template besar berisi persona, protokol, dan checklist
- Template eksperimen sepanjang 8.405 karakter sendiri setara sekitar 2.100 token, tetapi masuk ke riwayat percakapan dan dikirim ulang pada semua permintaan berikutnya
- Pada sesi 9 permintaan, template yang sama ikut terkirim 9 kali, sehingga biaya naik sebesar ukuran template × jumlah permintaan
- Permintaan pertama dalam konfigurasi nyata jauh lebih besar daripada overhead dasar
- OpenCode memakai 11 server MCP untuk email/kalender, manajemen tugas, manajemen referensi, analisis produk, dan lain-lain, plus file instruksi 72KB, sehingga tercatat 179 alat, skema 277KB, dan penulisan cache dingin 90.817 token
- Claude Code dengan 4 server MCP, plugin terpasang, dan file instruksi yang sama mencatat 118 alat, payload 311KB, dan sekitar 75.000 token
- Konfigurasi OpenCode ini sekitar 12x lebih besar daripada default sekitar 7.000 token setelah amplop gateway dikeluarkan
Biaya subagen dan extended thinking
- Ketika Claude Code membagi pekerjaan secara paralel ke dua subagen, penggunaan naik dari 121.000 token pada eksekusi langsung menjadi 513.000 token, atau 4,2x lebih besar
- Total ada 9 permintaan model dalam tiga jenis permintaan: sesi utama, pemanggilan subagen, dan lainnya
- 5 pemanggilan subagen masing-masing melakukan bootstrap sendiri dengan prompt sistem 3.554 karakter dan 24 dari 27 alat default
- Setiap subagen menanggung biaya awalnya sendiri, lalu catatan eksekusinya dibaca kembali oleh induknya
- Subagen OpenCode mengirim profil yang diperkecil, hanya dengan prompt sistem 1.379 karakter dan 5 alat
- Karena eksekusi lewat gateway tidak selesai normal, total penggunaan subagen OpenCode tidak dikuantifikasi
- Hanya perbedaan desain yang tampak dari payload yang ditangkap yang dibandingkan
- Output extended thinking ditagih dengan harga output, yaitu 5x harga input, dan blok penalarannya masuk ke riwayat percakapan lalu dikirim ulang pada permintaan berikutnya
- Karena kebijakan thinking milik gateway sendiri, tidak bisa dipastikan apakah setelan kedua harness benar-benar diterapkan, sehingga angka pengukuran tidak dipublikasikan
- Yang dipastikan hanya struktur biaya saat blok penalaran bergabung ke log
Ekonomi dan stabilitas prompt cache
- Kedua harness mengatur breakpoint cache dengan benar. Payload ditulis sekali dengan harga 1,25x harga input dasar untuk TTL 5 menit, lalu dibaca dengan harga sepersepuluhnya
- Ada tiga biaya yang tidak berkurang oleh cache
- Jika jeda lebih dari 5 menit, seluruh stack harus ditulis ulang, sehingga setelah jeda seperti rapat atau makan, biaya penulisan muncul lagi
- Pembacaan cache juga berulang sebanyak jumlah permintaan, jadi loop alat serial dan pembagian ke subagen menambah biaya
- Okupansi jendela konteks tidak terpengaruh diskon cache; bootstrap 85.000 token memakan lebih dari 40% jendela 200.000 token, dan saat kompresi dimulai ada biaya ringkasan tambahan
- OpenCode mempertahankan prefiks identik hingga tingkat byte pada semua permintaan dan eksekusi yang ditangkap
- Dalam tiga sesi T1, byte alat, sistem, dan pesan identik, dan penulisan cache pada eksekusi berulang adalah 0
- Sesi T3 dengan 9 permintaan juga mempertahankan satu prefiks stabil
- Claude Code membentuk jenis permintaan dan entri cache yang berbeda-beda per sesi: eksplorasi pemanasan, percakapan utama, dan pemanggilan subagen
- Bahkan pada ruang kerja yang sama, byte sistem dan scaffolding pesan pertama berubah antar-eksekusi
- Pada tugas ringkasan file yang sama, ia menulis 53.839 token cache di 5 permintaan, dan menulis ulang seluruh prefiks sekitar 43.000 token sekali di tengah pekerjaan
- Penulisan cache OpenCode untuk tugas yang sama hanya 1.003 token
- Penulisan ulang cache menengah berskala besar pada Claude Code juga muncul dalam eksperimen berulang
- Pada dua eksekusi pertama, masing-masing 43.342 token dan 36.899 token ditulis ulang, sedangkan pada eksekusi ketiga yang memakai cache baru dipanaskan hampir tidak ada penulisan
- Pada Fable 5 pun, 50.053 token ditulis ulang tanpa pembacaan cache, menghasilkan selisih 52x yang mirip dengan 54x pada Sonnet
- Bergantung suhu cache, jumlah penulisan cache Claude Code adalah 5,9~54x milik OpenCode
- Harga penulisan cache adalah 1,25x dari dasar pada tier 5 menit dan 2x pada tier 1 jam
- Satu miss cache mungkin berasal dari eviction gateway, tetapi gejala ini direproduksi di banyak eksekusi, dan ketidakstabilan prefiks juga terlihat pada byte tangkapan sebelum permintaan
- Jika prefiks besar, jenisnya banyak, penulisan ulang berulang, dan subagen ikut ditambahkan, dashboard penggunaan Claude Code bisa meningkat lebih cepat
Kualitas hasil dan audit log
- Kedua harness menyelesaikan semua tugas evaluasi dengan benar
- Hasil ringkasan file keduanya akurat
- Tugas multilangkah lulus skrip verifikasi yang ditulis oleh masing-masing harness dan berakhir normal
- Dalam cakupan ini, perbedaan biaya token untuk mencapai hasil yang sama bisa dibandingkan
- Tidak diukur apakah pada tugas engineering nyata yang lebih sulit, agen latar belakang, skill, dan orkestrasi Claude Code meningkatkan kualitas sepadan dengan biaya tambahannya
- Untuk menentukannya, diperlukan kumpulan tes yang sesuai, cukup banyak pengulangan, dan evaluasi tingkat kelulusan secara terpisah
- Pemborosan yang tidak terkait kualitas juga ditemukan
- Menulis ulang prefiks cache yang byte-nya sama di tengah sesi pada dasarnya membeli kembali isi yang sama dengan harga premium
- Jika harness diam-diam mengabaikan file instruksi, tidak ada manfaat apa pun yang didapat dari file itu
- Sebanyak 185 log permintaan/respons yang ditangkap dicatat ke rantai hash SHA-256 dengan library open source
@systima/aiact-audit-log- Rantai itu terverifikasi utuh tanpa putus, dan hasil integritasnya
VALID - Dengan struktur yang sama, isi kiriman dan respons bisa direkonstruksi serta bukti integritas bisa diberikan ke pihak ketiga
- Ini sama dengan metode pencatatan terstruktur yang dipakai untuk logging EU AI Act Article 12
- Rantai itu terverifikasi utuh tanpa putus, dan hasil integritasnya
Batas pengukuran dan cara reproduksi
- Hasil ini adalah snapshot Juli 2026 dari satu mesin, dua versi harness, dan sampel kecil
- T1 dan T2 masing-masing dijalankan 3 kali, dan setiap kondisi pengganda konfigurasi dijalankan sekali
- Kondisi default dan cache memakai Sonnet 4.5 serta Fable 5, sedangkan kondisi pengganda konfigurasi hanya memakai satu model
- Prompt harness sering berubah, jadi metode pengukuran di batas API kemungkinan lebih tahan lama daripada angka per item
- Gateway lokal berada di jalur pengukuran
- Angka per komponen memakai isi permintaan yang tidak bisa diubah gateway
- Nilai pengukuran dikoreksi dengan amplop tetap dari baseline cache dingin, dan angka eksekusi hangat yang penyebabnya tidak bisa dipisahkan dikeluarkan
- Ada kasus gateway diam-diam mengganti model tetapnya dengan snapshot yang lebih baru, jadi model respons sebenarnya juga perlu diverifikasi di batas
- Pada jalur Fable, terjadi resume sesi server lama dan eksekusi alat di sisi host, sehingga hasil multilangkah Fable Claude Code dikeluarkan
- Konvergensi biaya T3 berasal dari satu observasi pada satu bentuk tugas
- Pada tugas yang wajib dieksekusi berurutan, jumlah permintaan Claude Code dan total penggunaan bisa naik lagi
- Kondisi penghapusan alat dan subagen OpenCode mengembalikan stream yang salah di gateway, sehingga hanya ukuran payload tangkapan yang dipakai
- Angka konfigurasi nyata berasal dari setelan satu pengguna dan bisa berbeda di lingkungan lain
- Perangkat reproduksi adalah proxy HTTP sekitar 200 baris kode Node
- Ia meneruskan permintaan ke endpoint model sambil mencatat isi permintaan dan blok penggunaan respons ke disk serta rantai audit
- Set
ANTHROPIC_BASE_URLke proxy, ukur default dalam direktori konfigurasi baru dan ruang kerja kosong, lalu tambahkan file instruksi, server MCP, dan workflow satu per satu - Jika memakai gateway, terlebih dulu ukur amplopnya sendiri dengan permintaan minimal dan cek model apa yang benar-benar menjawab
- Jika ada logging di batas API sehingga isi persis yang dikirim agen produksi ke model pada titik waktu tertentu bisa direkonstruksi, maka akuntansi token juga ikut didapat
1 komentar
Opini Hacker News
Yang benar-benar membakar banyak token adalah sub-agent. Saat saya memberikan tugas besar ke Claude Code, ia langsung menjalankan 7 sub-agent, dan anggaran habis bahkan sebelum satu pun selesai. Lima jam kemudian saat dicoba lagi, hasilnya tetap sama
Kalau agent utama dibiarkan mengerjakan tugas yang sama secara berurutan, sama sekali tidak ada masalah. Saya tidak tahu apakah ini sangat tidak efisien karena biaya komunikasi dan koordinasi, atau karena pengguna sub-agent umumnya memakai akun perusahaan dan membayar per token sehingga Anthropic ingin menaikkan pendapatan
Namun, jika tujuannya adalah menerapkan pekerjaan yang sudah direncanakan dengan baik ke beberapa target secara paralel, sebaiknya secara eksplisit meminta sub-agent turun tingkat ke model yang rasa ingin tahunya lebih rendah. Konsistensi hasilnya juga bisa menjadi lebih baik
Jika dijalankan berurutan, file kira-kira hanya perlu dibaca sekali dan semua permintaan memanfaatkan cache prefiks yang sama
Dalam lingkungan seperti ini, strategi terbaik mungkin adalah memasukkan fitur baru ke paket tertinggi lebih dulu, menutup biayanya, lalu menurunkannya ke paket yang lebih rendah, atau menarik tangga agar pesaing sulit mengikuti
Tapi pada tahap verifikasi, ia mencoba menjalankan 41 agent verifikasi Fable. Entah bagaimana ia berhasil menemukan jalan memutar
Saya rasa Claude Code memakai banyak token karena Anthropic ingin menghasilkan lebih banyak uang dan mendorong pengguna ke langganan. Kebijakan yang mencegah hak langganan dipakai di coding agent lain juga mendukung hal ini. Saya memakai pi
API·enterprise mencakup 75–85% dari total pendapatan, langganan perusahaan sekitar 10–15%, dan langganan pribadi sekitar 5%
Seperti analogi PUSH_AX yang masuk akal, ini seperti kontraktor A meminta 33 ribu dolar dan B meminta 7 ribu dolar, jadi kita perlu memeriksa apakah kita benar-benar mengukur hal yang tepat
Karena itu saya akan menambahkan pekerjaan yang lebih mendalam, perbandingan hasil kualitatif, dan materi reproduksi input-output secepat mungkin ke tulisan tersebut
Ini bukan cuma masalah system prompt yang besar. Lingkungan eksekusi coding agent juga memakai tool secara lebih agresif bahkan untuk permintaan sepele. Dalam pengujian, prompt seperti “Hey” atau “commit” kadang memicu lebih dari 30 pemanggilan tool
https://quesma.com/blog/the-true-cost-of-saying-hi-to-an-ai-...
Inflasi token di mana jumlah token yang dikonsumsi tugas sederhana terus naik memang benar-benar terlihat
Ini memang tanggung jawab saya karena di aturan tertulis semua perubahan harus diverifikasi lewat test, tetapi kalau huruf I pada AI mau begitu ditekankan, saya berharap setidaknya ada penilaian yang cukup untuk tidak memasukkan tomat ke salad buah
Setelah memakai Claude selama 6 bulan, saya baru-baru ini beralih ke Codex. Codex lebih terbuka, lebih mudah mengikuti proses kerja model, dan pengalaman pengguna pada alur persetujuannya juga lebih baik. Secara keseluruhan transparansinya lebih tinggi, dan biaya berpindah hampir nol
Saya tidak suka Claude yang sejak sekitar Februari menjadi lebih tidak transparan, termasuk system prompt-nya, dan 33 ribu token terasa terlalu banyak
Belakangan OpenAI menjadi jauh lebih ramah konsumen
Agen pi memiliki prompt sistem yang lebih kecil, dan isi lengkapnya bisa dilihat di sini
https://github.com/earendil-works/pi/blob/main/packages%2Fco...
cmdsetiap kali memanggil prompt sistem akan membatalkan cacheJika hanya dibatalkan saat tanggal atau direktori root berubah, itu sebenarnya cukup jarang terjadi
Pada akhirnya, yang penting bukan ukuran prompt mentah. Jika itu yang utama, maka Pi dan turunannya seharusnya memiliki biaya paling rendah. Kuncinya adalah efisiensi prompt, dan minimalisme prompt sering disamakan dengan efisiensi. Meski begitu, Claude Code memang terlihat gemuk untuk apa yang dilakukannya
Yang lebih penting lagi adalah kualitas alatnya. Alat yang buruk atau penuh bug akan sangat meningkatkan panggilan bolak-balik, sehingga menghapus semua keuntungan yang ingin dihemat di awal
Beberapa bulan lalu saya membandingkan 7 agen secara menyeluruh pada 8 tugas benchmark, dan ada data serta jejak eksekusinya di https://github.com/dirac-run/dirac. Salah satunya memang terkait langsung dengan saya sehingga saya tidak bisa mengklaim netral, tetapi materinya bisa direproduksi. Karena sebagian besar tugas berkaitan dengan refactoring, Dirac menang telak berkat keunggulannya dalam hash anchoring dan analisis abstract syntax tree
Di tempat kerja saya terpaksa harus memakai Claude Code, tetapi itu bisa diatasi dengan mudah memakai
--system-prompt "". Akan lebih baik jika mereka juga mengizinkan runtime lain--system-prompt "", bukankah itu berarti bahkan prompt sistem dasar agar model memahami alat yang tersedia pun ikut hilang?Saat pertama kali bereksperimen dengan model lokal, saya menghubungkannya ke Claude Code dan hasilnya bekerja sangat baik, hanya saja lambat
Dengan bantuan Claude saya menyiapkan mitmproxy dan menangkap seluruh prompt sistem awal Claude Code, lalu setelah dicek ulang ukurannya ternyata JSON 162KB. Dari situ saya mulai bereksperimen dengan Pi, OpenCode, dan Hermes
/contextdi sesi baru Claude Code, hanya 23 ribu token dari konteks 1 juta token Opus 4.8 yang terpakai. Tercatat prompt sistem 3,9 ribu, alat sistem 13,9 ribu, agen kustom 235, file memori 28, fitur 4,9 ribu, pesan 8, dan buffer kompresi 3 ribu tokenPrompt sistem 4 ribu token kira-kira 15~20KB. Saya ingin meminta Anda mengunggah tangkapan itu ke Gist, tetapi mungkin ada data sensitif di dalamnya, dan 162KB yang terlihat itu kemungkinan bukan hanya prompt sistem saja
Yang saya buat mengirim lebih sedikit: https://maki.sh
Tetapi ringkasan percakapan sebelumnya pada dasarnya membatalkan cache konteks, jadi bukankah itu berarti meskipun token yang dipakai lebih sedikit, yang dikonsumsi justru token yang lebih mahal?