Mengapa cache hit agent AI runtuh: GPT, Claude, dan gateway yang dapat diaudit
Panduan berbasis sumber tentang kegagalan cache agent pihak ketiga, prompt caching GPT dan Claude, pengukuran yang dapat direproduksi, serta kompensasi publik Modelflare.
Caching pada agent AI bukan sekadar kotak centang. Ini adalah kontrak protokol, routing, dan akuntansi. Artikel ini menjelaskan mengapa agent pihak ketiga dapat memiliki tingkat cache hit yang sangat rendah walaupun model upstream mendukung prompt caching, bagaimana GPT dan Claude mengukur penggunaan ulang secara berbeda, serta apa yang harus dijamin gateway yang dapat diaudit.
Keputusan dalam satu kalimat
Jangan menempatkan agent production yang bergantung pada ekonomi cache di belakang agent atau gateway pihak ketiga yang tidak menampilkan penggunaan native, tidak mempertahankan prefix stabil, tidak menjaga afinitas model dan rute, tidak membuka TTL serta penyebut, dan tidak merekonsiliasi hasil dengan ledger permanen. “Mendukung cache” adalah klaim fitur; hit rate terukur untuk traffic yang memenuhi syarat adalah fakta operasi.
Ini bukan klaim bahwa semua agent pihak ketiga pasti gagal. Dokumentasi publik tidak dapat membuktikan persentase menyeluruh suatu vendor tanpa corpus tetap, model tetap, jendela observasi yang jelas, dan bukti penggunaan per request. Kesimpulan yang lebih tepat adalah lapisan penerjemah yang tidak transparan menciptakan beberapa titik putus independen dan dapat mengubah cache provider yang valid menjadi jalur yang hampir selalu dingin. Untuk traffic production yang bergantung pada cache, ketiadaan bukti sudah menjadi alasan untuk tidak memilih jalur tersebut.
Tetapkan penyebut sebelum membahas persentase
Provider biasanya melaporkan tiga bucket. R adalah token yang dibaca dari cache, W token yang ditulis, dan U token input yang diproses tanpa penggunaan ulang. Untuk prefix yang eligible, hit rate yang dapat dibandingkan adalah:
eligible_hit_rate = R / (R + W)
Untuk seluruh input yang dikirim ke model, porsi penggunaan ulang adalah:
input_reuse_share = R / (R + W + U)
Kedua angka ini menjawab pertanyaan berbeda. Dashboard yang membagi dengan seluruh input dapat terlihat rendah ketika agent mengirim banyak request pendek yang tidak eligible. Dashboard yang hanya memakai traffic eligible dapat menyembunyikan bahwa suffix dinamis masih mendominasi biaya. Laporkan keduanya, aturan eligibility, dan jendela waktu.
Bukti berasal dari field provider, bukan lencana hijau di UI agent:
| Sinyal | Field OpenAI | Field Claude | Yang dibuktikan |
|---|---|---|---|
| Prefix yang digunakan ulang | input_tokens_details.cached_tokens |
cache_read_input_tokens |
Token yang dilayani oleh entry yang cocok |
| Entry cache baru | input_tokens_details.cache_write_tokens |
cache_creation_input_tokens |
Token untuk membuat atau memperpanjang entry |
| Input yang tidak digunakan ulang | input_tokens - input_tokens_details.cached_tokens - input_tokens_details.cache_write_tokens (hitung dengan hati-hati) |
input_tokens setelah breakpoint |
Input di luar prefix; semantiknya berbeda |
| Korelasi | request ID, model, dan rute | request ID, model, dan rute | Percobaan provider yang menghasilkan penggunaan |
Contoh sintetis, bukan telemetry production Modelflare: R=720,000, W=80,000, U=200,000 menghasilkan eligible hit rate 720,000 / 800,000 = 90%, tetapi porsi penggunaan ulang seluruh input 720,000 / 1,000,000 = 72%. Menerbitkan satu angka saja menyembunyikan penyebut.
input_tokens_details.cache_write_tokens=0 bukan bukti “tanpa cache”: pembacaan entry yang ada memang tidak membuat entry baru. Jika respons pihak ketiga tidak menyertakan field penggunaan, nilainya juga bukan nol; itu adalah kegagalan observability dan harus ditandai tidak dapat diaudit.
Mengapa jalur agent kehilangan hit walau model mendukung cache
Masalah biasanya berada di antara aplikasi dan provider. Titik putus yang paling sering adalah:
- Byte dinamis datang terlalu awal. Timestamp, ID request, pengguna, flag eksperimen, atau tanggal saat ini yang berubah mengubah prefix sebelum instruksi yang dapat digunakan ulang.
- Tool diserialisasi ulang. Menambah, menghapus, mengurutkan ulang, atau menserialisasi schema tool secara nondeterministik mengubah prefix persis; urutan key JSON saja dapat menghasilkan miss.
- Fallback mengubah identitas cache. Load balancing di antara alias model, region, organisasi, atau kredensial tidak berbagi satu entry universal.
- Adapter membuang kontrol native. Menghapus
cache_control,prompt_cache_key, opsi retensi, atau detail penggunaan menjadikan fitur sebagai best effort yang tidak terlihat. - Prompt berada di bawah ambang. Turn agent yang pendek dapat valid tetapi tidak eligible untuk cache.
- Jendela TTL terlewati. Entry Claude lima menit atau retensi OpenAI yang bergantung pada model dapat kedaluwarsa saat menunggu manusia.
- Ada race pada pemanasan paralel. Request awal yang bersamaan dapat tiba sebelum respons pertama membuat entry tersedia.
- History ditulis ulang. Ringkasan, kompaksi, pemotongan, atau serialisasi berbeda mengubah prefix, bukan sekadar menambahkan di akhir.
Tidak satu pun kegagalan ini memerlukan vendor yang berniat menipu. Ini konsekuensi yang dapat diprediksi ketika gateway memperlakukan request agent sebagai teks bebas dan tidak mempertahankan kontrak cache provider. Peringatan praktisnya jelas: bila agent tidak dapat menunjukkan breakpoint yang gagal, biaya dan gangguan traffic yang bergantung pada cache tidak dapat dihitung atau di-debug dengan benar.
GPT dan Claude memiliki gagasan serupa, tetapi semantiknya tidak sama
Keduanya memerlukan prefix yang cocok persis, tetapi kontrol dan akuntansinya berbeda. Tabel ini memakai panduan resmi yang diperiksa pada 2026-08-25; nama model, minimum, dan retensi dapat berubah.
| Dimensi | Prompt caching OpenAI | Prompt caching Claude |
|---|---|---|
| Unit penggunaan ulang | Prefix konteks yang dirender seluruhnya, termasuk instruksi, tool, history, dan bagian multimodal | Prefix berurutan sampai breakpoint cache_control: tool, system, lalu message |
| Panjang minimum | Panduan saat ini mencantumkan 1.024 token terlihat untuk GPT-5.6+ dan umumnya 2.048 untuk model lama | Minimum per model sekitar 512–4.096 token; prompt lebih pendek tidak dicache |
| Kontrol | Cache implisit; breakpoint eksplisit dan prompt_cache_key stabil pada model yang didukung |
Cache otomatis tingkat atas atau breakpoint blok; maksimal empat dan lookback 20 blok |
| Retensi | GPT-5.6+ mendukung TTL 30 menit; model lama memiliki mode dengan jendela tipikal provider | TTL default lima menit, diperbarui saat dipakai; satu jam opsional dengan biaya write lebih tinggi |
| Bentuk harga | Pada panduan GPT-5.6+ saat ini, write 1,25× dan read 0,1× input dasar | Write lima menit 1,25×, satu jam 2×; read 0,1× |
| Bukti penggunaan | input_tokens_details.cached_tokens dan, bila ada, input_tokens_details.cache_write_tokens |
cache_read_input_tokens, cache_creation_input_tokens, dan input_tokens setelah breakpoint |
| Invalidator umum | Perubahan model, tool, atau setting, overflow mesin, atau perubahan sebelum breakpoint | Perubahan model, system, tool, atau message; pesan sebelumnya hilang atau miss pemanasan paralel |
OpenAI menyatakan entry cache berada pada mesin individual: prompt_cache_key membantu pengelompokan dan routing, tetapi tidak mengunci mesin atau menjamin hit. Claude mendokumentasikan pencocokan tepat, isolasi tingkat workspace, serta diagnosis seperti tools_changed dan messages_changed. Gateway yang menyembunyikan perbedaan ini tidak dapat secara jujur mengubah dokumentasi provider menjadi satu janji hit rate.
Pengali harga menjelaskan dampaknya. Pada model OpenAI yang dirujuk, satu write diikuti satu read berbiaya sekitar 1.25 + 0.10 = 1.35× unit input tanpa cache; sepuluh request yang sepenuhnya digunakan ulang sekitar 1.25 + 9×0.10 = 2.15×, bukan 10×. Ini perhitungan ilustratif resmi, bukan tagihan Modelflare atau jaminan semua model.
Pajak adapter dapat diukur
Gunakan matriks kegagalan, bukan screenshot. Tetapkan prompt, model, kredensial, dan laju; ubah satu variabel setiap kali dan simpan objek usage asli.
| Perubahan terkontrol | Sinyal yang diharapkan | Yang dapat disembunyikan agent opaque | Interpretasi rilis |
|---|---|---|---|
| Hanya menambahkan turn pengguna | R naik setelah W pertama |
History ditulis ulang atau rute baru | Prefix terjaga |
| Menambahkan timestamp ke system prompt | R menjadi nol atau W baru muncul |
Byte yang berubah | Prefix dinamis mematahkan cache |
| Mengurutkan ulang satu properti tool | tools_changed atau write baru |
Perilaku serializer | Schema harus deterministik |
| Membagi traffic antar alias atau mesin | R lebih rendah dan berubah-ubah |
Rute dan key yang dipilih | Tidak ada affinity |
| Menunggu melewati TTL terdokumentasi | Write baru setelah kedaluwarsa | Waktu kedaluwarsa dan mode retensi | Ukur jeda manusia secara terpisah |
| Mengirim dua request pertama identik secara paralel | Salah satu atau keduanya dapat menulis | Race pemanasan dan urutan percobaan | Burst dingin bukan ukuran kapasitas |
Simpan request ID, mode streaming, waktu event pertama, model tepat, rute pilihan, field cache, dan timestamp UTC. Redaksi prompt, key, serta konten pelanggan. Jika gateway hanya mengembalikan total input yang dinormalisasi, tandai percobaan tidak dapat diaudit; dimensi yang hilang bukan nol yang boleh dibuat-buat.
Catatan audit yang dapat direproduksi
Berikut format sintetis yang kecil. Envelope bersifat netral dan usage mempertahankan field native. Ini bukan benchmark.
{"request_id":"demo-001","timestamp":"2026-08-25T02:00:00Z","model":"MODEL_ID","route":"route-a","stream":true,"usage":{"input_tokens":1000000,"input_tokens_details":{"cached_tokens":0,"cache_write_tokens":1000000}}}
{"request_id":"demo-002","timestamp":"2026-08-25T02:00:03Z","model":"MODEL_ID","route":"route-a","stream":true,"usage":{"input_tokens":1000000,"input_tokens_details":{"cached_tokens":720000,"cache_write_tokens":80000}}}
Jalankan setidaknya lima fase: pemanasan serial, percakapan append-only, perubahan system dinamis, perubahan urutan tool, dan replay setelah jeda TTL. Pertahankan field read/write native tiap provider dan bandingkan R/(R+W) serta R/(R+W+U) menurut fase, rute, model, dan hari UTC. Satu angka gabungan tidak cukup untuk menyetujui agent production.
Apa yang dijamin Modelflare dan yang tidak
Halaman status publik Modelflare saat ini menjelaskan OpenAI Cache Hit Rate Guarantee. Untuk request eligible yang memenuhi persyaratan caching OpenAI dan membentuk cache valid, rate harian dihitung per hari kalender UTC. Jika berada di bawah tier yang berlaku, selisihnya dikompensasi dan ditampilkan di Dashboard → Token Usage Analysis. Tier publik saat ini adalah 65%, 75%, dan 85%.
Batas ini disengaja:
- Jaminan berlaku untuk traffic OpenAI yang eligible dan valid, bukan request pendek atau terus berubah yang tidak pernah memenuhi syarat.
- Jaminan tidak mengubah model, schema tool, rute, atau TTL yang berubah menjadi prefix yang dapat digunakan ulang.
- Perhitungan dilakukan per hari UTC dan kredit masuk melalui permukaan akun yang didokumentasikan; ini bukan klaim bahwa setiap request akan hit.
- Bukti penggunaan native dan perhitungan eligibility tetap wajib. Penyebut yang jelas membuat kompensasi dapat diverifikasi.
Itulah perbedaan antara janji layanan yang dapat diaudit dan slogan agent pihak ketiga: yang pertama menyebut populasi, jendela, ambang, dan tujuan kredit.
Keunggulan harga dan legitimasi operasi adalah bukti terpisah
Halaman harga publik juga menampilkan rasio promosi 0.015 untuk top-up pertama pada campaign/group yang berlaku, beserta minimum dan syaratnya. Ini insentif harga, bukan jaminan cache. Periksa halaman live untuk cakupan model dan aturan settlement sebelum membayar.
Materi trust dan hukum publik mengidentifikasi Havenbyte LLC sebagai operator dan menjelaskan operasi berbasis Amerika Serikat. Materi tersebut mencantumkan Stripe sebagai pemroses pembayaran untuk pembayaran, invoice, refund, dan kontrol fraud. Ini sinyal custody dan akuntabilitas, bukan klaim pendaftaran negara bagian atau sertifikasi tertentu.
Rekomendasi untuk agent production
Pilih agent pihak ketiga hanya jika memenuhi daftar ini:
- Meneruskan kontrol cache native dan mengembalikan read/write native.
- Menjaga byte prefix instruksi dan tool yang stabil tetap identik, lalu menambahkan state dinamis.
- Membuka model, rute, batas organisasi/wilayah, mode TTL, dan request ID.
- Mencatat pemanasan serial dan paralel secara terpisah, bukan dirata-ratakan.
- Mendefinisikan traffic eligible, penyebut, jendela UTC, ambang, dan kompensasi secara tertulis.
- Memungkinkan ekspor bukti per request tanpa mengekspos key atau konten pelanggan.
Jika ada satu jawaban “tidak”, jangan gunakan jalur tersebut untuk workload yang ekonominya bergantung pada penggunaan ulang cache. Uji melalui jalur provider langsung atau pilih gateway yang dapat diaudit seperti Modelflare dengan corpus yang sama. Lihat juga routing AI API yang andal, pelacakan biaya AI API, harga, dan trust.
Sumber dan tanggal verifikasi
Sumber primer berikut diperiksa pada 2026-08-25. Sumber ini menjelaskan kontrak provider dan kebijakan publik Modelflare saat ini, tetapi tidak membuktikan hit rate universal untuk agent pihak ketiga yang tidak disebutkan.
- Panduan OpenAI Prompt Caching
- Harga OpenAI API
- Panduan Anthropic Prompt Caching
- Diagnostik cache Anthropic
- Status dan jaminan cache Modelflare
- Harga dan ketentuan Modelflare saat ini
- Trust dan operator Modelflare
FAQ: Apakah hit rate pihak ketiga yang rendah selalu berarti penipuan?
Tidak. Prompt pendek, prefix berubah, rute tersebar, TTL kedaluwarsa, atau field yang hilang dapat menjelaskannya. Temuan yang benar adalah “tidak dapat direproduksi” atau “tidak dapat diaudit” sampai uji terkontrol menemukan penyebabnya.
FAQ: Bisakah Claude dan GPT dibandingkan dengan satu angka?
Hanya setelah penyebut dinormalisasi dan field native dipertahankan. Bandingkan corpus dan fase kerja yang sama, bukan total dashboard gabungan.
FAQ: Apakah kompensasi menghilangkan kebutuhan prefix stabil?
Tidak. Kompensasi membatasi risiko finansial traffic cache OpenAI yang eligible; kompensasi tidak membuat request yang tidak eligible dapat digunakan ulang dan tidak memperbaiki agent yang menulis ulang prefix.