
Infrastruktur Routing OrcaRouter: Routing Sadar Sesi dan Eskalasi Frontier
- obsidianBARUQwen3.8 27B Uncensored (Aggressive)2026-08-15$0.40 / $4.21 per 1 juta token · 22 tok/s
- qwenBARUQwen: Qwen3.8 27B (free)2026-08-1343 tok/s
- deepseekBARUDeepSeek: DeepSeek V4 Pro 08132026-08-1253Kecerdasan69Koding
- grokBARUSpaceXAI: Grok 4.62026-08-1261Kecerdasan77Koding
- metaBARUMeta: Muse Spark 1.22026-08-0557Kecerdasan72Koding
- qwenQwen: Qwen3.8 Max2026-08-0358Kecerdasan72Koding
- deepseekDeepSeek: DeepSeek V4 Flash 07312026-07-3152Kecerdasan69Koding
- minimaxMiniMax: MiniMax-H32026-07-31minimax/minimax-h3
- qwenQwen: Qwen3.7 Flash2026-07-27$0.03 / $0.13 per 1 juta token · 273 tok/s
- orcaOrcaDub: OrcaDub 1.02026-07-27orca/dub
- anthropicAnthropic: Claude Opus 52026-07-2463Kecerdasan78Koding
- googleGoogle: Gemini 3.6 Flash2026-07-2152Kecerdasan69Koding
- googleGoogle: Gemini 3.5 Flash-Lite2026-07-2137Kecerdasan49Koding
- metaMeta: Muse Spark 1.12026-07-1653Kecerdasan71Koding
- kimiMoonshotAI: Kimi K32026-07-1560Kecerdasan76Koding
- openaiOpenAI: GPT-5.6 Luna2026-07-0952Kecerdasan71Koding
- openaiOpenAI: GPT-5.6 Terra2026-07-0957Kecerdasan77Koding
- openaiOpenAI: GPT-5.6 Sol2026-07-0961Kecerdasan77Koding
- grokxAI: Grok 4.52026-07-0856Kecerdasan72Koding
- tencentTencent: Hy32026-07-0642Kecerdasan59Koding
ORCAROUTER · ARSITEKTUR ROUTING
Setiap gateway LLM yang melakukan cache pada prompt harus mengunci percakapan ke satu model. Setiap gateway yang mengunci percakapan membuat keputusan peruteannya berdasarkan giliran yang paling tidak informatif dalam percakapan tersebut. Ini adalah laporan tentang trade-off tersebut, dan tentang mekanisme tiered-stickiness yang disertakan OrcaRouter untuk menghindarinya.
Subjek: OrcaRouter LLM gateway (Go / Gin / Redis) · Komponen: afinitas sesi + mesin Frontier Escalation · Metode: pemutaran ulang 400 sesi terhadap kode keputusan produksi · Tanggal: 14 Agustus 2026
ABSTRAK — Perutean LLM tingkat-permintaan — menilai setiap permintaan secara independen dan mengirimkannya ke model termurah yang memadai — adalah rezim yang hampir semua riset perutean yang dipublikasikan tujukan. Ini juga merupakan rezim yang keliru untuk lalu lintas yang kini mendominasi volume gateway: sesi agen multi-giliran, yang promp-nya 90% berupa konteks bawaan dan cache prompt penyedia membayar untuk keberlanjutan. Mengganti model di tengah percakapan menghilangkan diskon 10× pada prefiks bersama, sehingga gateway mengunci sesi. Tetapi penguncian yang dibuat pada giliran 1 adalah penguncian yang dibuat pada giliran dengan bukti paling sedikit, dan itu bertahan selama percakapan berlangsung.
100 / 100 — sesi-sesi latent-hard yang skor turn-1-nya tidak dapat dibedakan dari skor yang trivial
+16% — pergeseran skor kesulitan hanya dari panjang transkrip, pada kesulitan tugas yang identik
45% — dari biaya always-frontier, untuk 67% cakupan hard-turn-nya
0.019 — margin antara gate yang dikirim dan batas atas skor realistis
1 Dua rezim routing
Sebuah gateway LLM yang menaungi banyak penyedia harus menjawab satu pertanyaan per permintaan: model mana yang melayani permintaan ini? Ada dua cara yang secara struktural berbeda untuk menjawabnya, dan literatur serta realitas produksi telah menyimpang mengenai mana yang lebih penting.
Perutean tingkat permintaan memperlakukan setiap permintaan secara independen. Sebuah penilai memperkirakan tingkat kesulitan kueri atau kualitas respons yang diprediksi, dan permintaan tersebut dikirim ke model termurah yang diperkirakan dapat menanganinya. Inilah rezim yang berlaku pada hampir semua karya router yang dipublikasikan: RouteLLM melatih router data-preferensi yang mencapai 95 % kualitas GPT-4 dengan 14 % panggilan model kuatsup>[1]/sup>; FrugalGPT mengalirkan secara berjenjang dari model murah ke mahal dengan pemeriksaan terima/tolak dan melaporkan pengurangan biaya hingga 98 %sup>[2]/sup>; RouterArena membangun tolok ukur 8.400 kueri untuk membandingkan router pada sumbu yang persis inisup>[3]/sup>. Unit analisisnya adalah kueri.
Alasan routing yang sadar sesi ada bukanlah karena keanggunan. Itu adalah aritmetika.
2 Ekonomi cache yang membuat kelengketan menjadi wajib
Dalam sesi agen multi-giliran, giliran n punya prompt adalah giliran n−1 punya prompt ditambah delta. Pada giliran ke-10, prefiks yang dibawa adalah mayoritas besar dari token input. Setiap penyedia utama sekarang memberi harga pada prefiks tersebut secara berbeda tergantung pada apakah itu cache hit:
Tabel 1. Semantik prompt-cache menurut penyedia. Cache dikunci pada prefiks yang tepat dan pada kunci penyajian — pergantian model atau rotasi kunci adalah pembacaan dingin dengan harga penuh.
OrcaRouter mengodekan persis masa pakai ini sebagai TTL pin: peta per jenis saluran dari jendela cache penyedia — 5 menit untuk OpenAI, Anthropic, dan Gemini, 60 menit untuk DeepSeek — dengan default penyedia yang tidak dipetakan 5 menit. Pin saluran+kunci kedaluwarsa dengan jendela itu, karena indeks kunci basi tidak memiliki nilai cache dan hanya mendistorsi penyeimbangan beban. Adapun model pin, pada penyebaran berbasis Redis dan untuk id sesi yang memenuhi syarat pin panjang, bertahan selama 30 hari — bukan untuk nilai cache, yang sudah lama hilang, tetapi untuk kesinambungan format permintaan. Peralihan model di tengah percakapan memaksa konversi format permintaan yang dapat tidak kompatibel dengan data: blok pemikiran dan id panggilan alat tidak selalu selamat dari penerjemahan antar skema penyedia.
DETAIL YANG KURANG DIHARGAI
Cache prompt diindeks per kunci API, bukan per model. Gateway yang menetapkan model tetapi menyeimbangkan beban di tiga kunci pada saluran yang sama masih akan mengalami cache dingin dua dari tiga kali. Inilah mengapa pin saluran OrcaRouter menyimpan {ChannelID, KeyIndex} alih-alih ID saluran, dan mengapa pin tersebut dilepas ketika indeks kunci yang tercatat tidak lagi mengarah ke kunci aktif — kunci yang dinaikkan tetapi diputar akan cenderung ke cache dingin sambil mengabaikan penyeimbangan, yang merupakan yang terburuk dari keduanya.
Pin-pinnya lunak di seluruh bagian: session id yang tidak dapat diselesaikan tidak melakukan apa pun, saluran pin yang dinonaktifkan atau tidak sehat diturunkan ke pemilihan seimbang normal, dan pin ke saluran berbobot nol dalam kumpulan campuran diabaikan sehingga admin yang menguras saluran tidak dikalahkan oleh kelengketan. Mereka tidak pernah menggagalkan permintaan.
3 Jebakan: kelengketan menonaktifkan router
Berikut adalah mode kegagalannya. Pada jalur kode pra-eskalasi OrcaRouter, untuk router yang sadar sesi pada strategi non-DSL apa pun, pin sesi→model yang dikembalikan
Itu akan dapat ditoleransi jika turn 1 bersifat representatif. Namun secara sistematis tidak demikian, karena dua alasan yang saling memperkuat.
3.1 Giliran 1 adalah giliran yang paling tidak informatif.
Skalar kesulitan (service/model_router_difficulty.go) adalah kombinasi linear berbobot atas enam fitur leksikal:
LogPromptTokens × 0.20 batas log(8001) ≈ 8.99
ReasoningCueCount × 0.15 maksimum 5
SystemPromptLogLen × 0.10 cap log(2001) ≈ 7.60
CodeKeywordDensity × 0.20 batas maksimum 5.0 (kecocokan per 100 karakter)
HasTools × 0.15 sudah 0/1
MathMarkerCount × 0,20 maksimum 5
Pembuka singkat tanpa riwayat mendapat skor rendah hampir secara konstruksi: istilah token berbobot 0,20 berada di dekat batas minimumnya, dan istilah penalaran/matematika terpicu oleh kosakata yang belum sempat digunakan pengguna. Sesi karena itu berkomitmen pada model kumpulan lemah pada saat informasi paling sedikit — dan dengan pin model 30 hari berbasis Redis, komitmen itu berlangsung lama.
Gambar 1. Rata-rata kesulitan giliran terakhir per giliran percakapan, pada 100 sesi laten-sulit dan 200 sesi yang benar-benar mudah, yang dinilai oleh penilai produksi. Pada giliran 1 — giliran saat pin tempel ditulis — kedua populasi tidak dapat dibedakan (0.210 vs 0.208). Populasi sulit melewati gerbang pada giliran 5. Di bawah kebijakan hanya-pin, semua 100 sesi laten-sulit dimasukkan ke kumpulan murah sebelum bukti apa pun tentang itu ada.
3.2 Panjang menyamar sebagai kesulitan
Masalah kedua lebih halus dan melemahkan perbaikan yang jelas. Jika Anda hanya menjalankan ulang gerbang kesulitan setiap giliran, Anda menjalankannya ulang pada skor yang dihitung atas seluruh transkrip yang digabungkan. Skor tersebut memiliki pergeseran naik yang melekat: istilah LogPromptTokens berbobot 0.20 naik secara monoton seiring panjang percakapan, dan untuk setiap sesi agen, istilah HasTools 0.15 dan SystemPromptLogLen 0.10 secara efektif merupakan batas bawah yang konstan. Sesi yang panjang dan membosankan tampak semakin sulit.

Gambar 2. Artefak bias panjang, diukur pada 60 sesi yang seluruhnya terdiri dari edit-edit sepele ("ganti nama variabel ini", "tambahkan nil check"). Skor transkrip penuh bergeser +16% dalam 25 giliran pada tingkat kesulitan tugas yang konstan; skor giliran terakhir (delta) datar. Evaluasi ulang yang naif terhadap skor transkrip penuh setiap giliran akan mengeskalasi sesi hanya karena terlalu panjang.
Perbaikan yang disertakan OrcaRouter adalah ekstraktor delta terpisah (service/model_router_delta.go) yang hanya menilai giliran terbaru — teks pengguna baru ditambah hasil alat apa pun yang dilampirkan setelah pesan asisten terakhir — menggunakan kembali bobot dan batas yang sama tetapi secara sengaja menyetel SystemPromptLogLen menjadi nol, yang bukan bagian dari delta. Garis biru datar pada Gambar 2 adalah ekstraktor tersebut.
4 Desain: stickiness bertingkat
Pelarian naif dari lock-in giliran pertama adalah dengan merutekan ulang setiap giliran — yang hanyalah routing tingkat permintaan, dan mengorbankan cache. Perbaikan naif ke arah sebaliknya adalah menjadikan pin sebagai memori bahwa “sesi ini menjadi sulit” — yang tidak dapat mengekspresikan de-eskalasi dan tidak dapat dibatasi. Desain OrcaRouter menolak keduanya.
Pembingkaian ulang: sebuah sesi dipatok ke sebuah model di dalam sebuah tier, dan sebuah Redis kecil untuk status tier adalah satu-satunya memori eskalasi. Pin model tidak pernah menjadi memorinya.
Kumpulan tier. Tier kuat adalah pool eskalasi yang telah ditetapkan (escalation_pool, yang secara default menggunakan strong_pool milik router). Tier dasar adalah AllowedModels \ pool tier kuat; model yang berada di keduanya termasuk ke tier kuat. Di dalam tier dasar, pengelompokan tingkat kesulitan weak/mid/strong milik gated_adaptive tetap beroperasi persis seperti sebelumnya.
Pin dengan cakupan tier. Kunci model-pin tier kuat mendapat sufiks :t:strong; tier dasar mempertahankan kunci lama yang tidak berubah. Eskalasi karena itu mempertahankan pin dasar, sehingga sesi yang dide-eskalasi — atau yang dilanjutkan setelah status tier kedaluwarsa — kembali ke model yang persis sama seperti saat dimulai, bukan pemilihan ulang yang sembarangan. Pin kuat ditulis hanya dengan TTL jendela penyedia yang pendek: pin kuat 30 hari akan hidup lebih lama daripada status tier 4 jam yang menjadi alasannya.
Gerbang berjalan lebih dulu. Di dalam selectByStrategy (service/model_router.go:1374), tingkatan ditentukan sejak awal, kumpulan kandidat dipersempit ke pool tingkatan tersebut, dan hanya setelah itu pin lengket dikonsultasikan — di dalam tingkatan tersebut. Ini adalah perbaikan struktural untuk §3: perhitungan kesulitan dan pemicu eskalasi berjalan setiap giliran, sebelum pin dapat memotong keduanya.
4.1 Tiga kelas pemicu, diperingkat berdasarkan kepercayaan
Tabel 2. Pemicu eskalasi. Tidak ada sinyal samar yang pernah memicu eskalasi sendirian; hanya permintaan eksplisit klien yang berkomitmen pada n=1, dan bahkan itu pun mematuhi batas.
Tiga invarian higiene bersifat menahan beban. Strike dideduplikasi berdasarkan id permintaan melalui ring buffer, sehingga retry klien yang saling tumpang tindih tidak dapat dihitung dua kali. Kegagalan infrastruktur tidak pernah merupakan kegagalan kapabilitas — 429, 5xx, dan fallback saluran tidak pernah dihitung sebagai strike; hanya sinyal kualitas pasca-sukses yang dihitung. Dan “turn” didefinisikan sebagai permintaan yang telah selesai dan berhasil ditagih serta menjalankan evaluasi strike, sehingga permintaan yang gagal tidak memajukan peluruhan strike maupun penghitung turn bersih.
4.2 Resolve bersifat murni; commit ditunda.
Properti struktural yang paling penting dari mesin ini adalah bahwa ResolveEscalation tidak menulis apa pun. Ia mengembalikan keputusan beserta daftar intents yang tertunda. Distributor menerapkan intents tersebut dalam blok pasca-suksesnya, ke sebuah pembacaan baru di dalam transaksi Redis WATCH. Ini penting karena resolver berjalan pada jalur yang tidak boleh mengubah status: resolusi rantai fallback spekulatif, endpoint diagnostik hanya-baca, dan permintaan yang kemudian berkode 403 atau gagal di upstream. Menerapkan ulang intents ke status baru juga berarti penulis konkuren yang basi tidak dapat menimpa eskalasi yang sudah dikomit, dan dua eskalasi identik yang berpacu bergabung secara idempoten.
4.3 Huruf kapital, dan mengapa huruf kapital mengikat segalanya
Eskalasi positif palsu memakan biaya (strong − base) harga × sisa token episode hangat, dan biayanya terjadi secara diam-diam — tidak ada yang gagal. Jari-jari ledakan dibatasi oleh batas yang berlaku untuk setiap kelas:
escalation_max_per_session (bawaan 1). De-eskalasi dan reset klien tidak mengembalikannya, yang menutup jalur eksploitasi loop reset.
per-routerBatas pangsa eskalasi (default 20 %) selama jendela 24–48 jam terakhir dari bucket harian Redis, ditambah batas lintas-router di seluruh workspace. Pada batas tersebut, semua perutean eskalasi ditekan — termasuk permintaan eksplisit dan boost sekali.
De-eskalasi hanya pada batas cache-dingin, sehingga positif palsu dibatasi pada satu episode hangat.
Alasan Kelas A mematuhi batas adalah kesimpulan model ancaman, bukan preferensi kebijakan: pada gerbang API, siapa pun yang memegang token ruang kerja mengontrol header. Jalur yang bebas batas dengan dalih “klien memintanya” adalah saluran pengeluaran tanpa pengukuran. §7 mengukur apa yang terjadi ketika setiap klien menyalahgunakannya.
4.4 De-eskalasi bersifat asimetris secara desain
Eskalasi berdasarkan bukti yang terkonfirmasi; de-eskalasi hanya ketika bebas biaya. Sesi yang kuat kembali ke basis hanya ketika semua kondisi berikut terpenuhi: sesi dalam keadaan cache dingin (tidak aktif melampaui jendela penyedia yang tercatat saat eskalasi), telah mengumpulkan ≥3 giliran evaluasi tanpa strike, dan delta kesulitan terakhir di bawah T1. Di dalam jendela hangat, peralihan membayar pembacaan ulang dingin dengan harga penuh — flapping adalah satu-satunya cara yang dijamin untuk membuat biaya eskalasi menjadi negatif.
5 Metode
Kami mengukur mekanisme tersebut dengan memutar ulang korpus sesi sintetis melalui kode keputusan produksi yang sebenarnya. Kerangka uji tersebut adalah pengujian Go dalam paket layanan yang memanggil ResolveEscalation dan CommitEscalationDecision per giliran terhadap penyimpanan tier yang didukung miniredis, dengan penilai kesulitan asli, penghasil strike sisi permintaan asli, dan mesin share-cap asli. Tidak ada bagian dari jalur keputusan yang diimplementasikan ulang atau di-mock, kecuali audit-event sink.
APA YANG NYATA DAN APA YANG TIDAK
Nyata: setiap keputusan routing, skor kesulitan, deteksi strike, aturan streak, evaluasi batas, dan transisi status Redis — inilah fungsi-fungsi yang dirilis. Sintetis: lalu lintasnya. Korpus dibangkitkan, bukan disampel dari log produksi. Campuran arketipenya (50% sulit) adalah campuran stres yang dipilih untuk menguji mekanisme, bukan perkiraan lalu lintas nyata; §6.4 melaporkan sensitivitas terhadap pilihan tersebut, dan sensitivitasnya besar. Angka presisi bersih di bawah ini mencerminkan korpus yang kelas-kelasnya dapat dipisahkan berdasarkan konstruksinya, dan harus dibaca sebagai “mekanisme terpicu di tempat yang dirancang untuk itu”, bukan sebagai perkiraan presisi produksi.
5.1 Korpus
400 sesi, 3.968 giliran, dengan seed dan deterministik. Setiap giliran adalah badan permintaan chat-completions lengkap yang membawa riwayat kumulatif, array definisi dua alat, dan prompt sistem yang realistis — bentuk yang sebenarnya dikirim oleh agen coding. Lima arketipe, masing-masing membawa label ground-truth:
Tabel 3.Komposisi korpus. "Needs strong" adalah ground truth yang digunakan untuk skor presisi dan cakupan.
Langkah-langkah sulit memuat dump goroutine yang ditempel atau kutipan sumber berukuran 3–8 KB selain prosa, karena itulah yang terkandung dalam langkah debugging sulit yang sesungguhnya. Detail ini ternyata sangat penting — lihat §6.2.
5.2 Model biaya
Biaya dihitung dari daftar harga yang dipublikasikan dengan semantik cache per penyedia; modelnya dinyatakan secara lengkap sehingga dapat diperdebatkan.
Tabel 4. Parameter model biaya. Harga adalah $ per 1 juta token, daftar Agustus 2026.
Giliran hangat berbiaya 0.1·p_in·prefix + write·p_in·delta; giliran dingin berbiaya write·p_in·prompt. Giliran 1 selalu merupakan penulisan cache penuh. Giliran peralihan tingkat berdasarkan kebijakan eskalasi secara eksplisit dikenai biaya sebagai dingin, sehingga mekanisme tersebut membayar untuk invalidasi cache-nya sendiri.
Kualitas dilaporkan sebagai cakupan giliran sulit — proporsi giliran yang menurut ground truth tergolong sulit dan benar-benar dilayani oleh model kuat — bukan sebagai angka akurasi. Kami tidak menjalankan inferensi upstream, jadi kami menolak mengarang angka akurasi.
6 Hasil
6.1 Mekanisme tersebut aktif di tempat yang dirancang untuknya.
Tabel 5. Hasil eskalasi berdasarkan arketipe, mode otomatis, canary 100%, T2 = 0.70 (default bawaan).
Tidak ada positif palsu pada 200 sesi mudah, termasuk 60 sesi panjang yang akan terbawa ke kategori sulit oleh penilai transkrip penuh. Kelas pemicu berspesialisasi secara bersih dan tanpa tumpang tindih: difficulty menangkap pekerjaan yang sarat penalaran, strikes menangkap loop kegagalan. Perhatikan bahwa skor puncak difficulty dari failure_loop adalah 0.262 — gerbang difficulty tidak pernah melihat sesi-sesi itu sama sekali. Sebuah agen yang terjebak dalam loop kesalahan kompilasi tidak menghasilkan prosa yang sarat isyarat penalaran; ia menghasilkan prompt pendek yang sama dengan stack trace yang berbeda. Tanpa strikes Kelas C, masing-masing dari 60 sesi itu akan terus bekerja keras pada model murah tanpa batas waktu.

Gambar 3. Ketika sesi meningkat, pisahkan berdasarkan pemicu. Eskalasi yang didorong oleh serangan terkonsentrasi tajam (giliran 4, giliran pertama di mana dua serangan dapat terakumulasi dalam jendela peluruhan); eskalasi yang didorong oleh kesulitan tersebar di seluruh giliran 2–11 mengikuti distribusi onset korpus. Aturan rentetan dua giliran berturut-turut berarti eskalasi kesulitan paling awal yang mungkin terjadi adalah giliran 2.
6.2 Temuan: gerbang yang dikirim berada di tepi jurang
Korpus pertama kami menghasilkan nol eskalasi yang didorong oleh kesulitan. Langkah-langkah sulit — yang dipenuhi dengan kondisi balapan, invarian, analisis kompleksitas, dan kosakata pembuktian — mencapai puncak 0,658 terhadap ambang batas 0,70. Menambahkan stack trace yang ditempel yang sebenarnya dibawa oleh langkah-langkah debugging nyata mendorongnya ke 0,719. Ambang batas dilampaui dengan selisih 0,019.

Gambar 4. Ke mana anggaran kesulitan sebenarnya mengalir, dirata-ratakan atas 855 giliran sulit dan 3.113 giliran mudah. Giliran sulit yang realistis mencapai 0,719 dari maksimum delta teoretis 0,90. Istilah CodeKeywordDensity menyumbang 0,069 dari anggaran 0,20-nya — kepadatan terukur adalah 1,72 kecocokan per 100 karakter terhadap batas saturasi 5,0 — dan kontribusi 0,10 dari SystemPromptLogLen secara struktural nol dalam pengekstrak delta. Kira-kira sepertiga dari rentang nominal skor tidak dapat dicapai oleh teks yang realistis.
Sapuan ambang batas mengonfirmasi bahwa ini adalah tebing, bukan lereng. Sepanjang T2 dari 0,35 hingga 0,65 hasilnya identik — 200 dari 400 sesi meningkat, dengan nol luput. Pada 0,70 yang dikirim, pengklasifikasi mulai kehilangan sesi; pada 0,75 eskalasi yang didorong oleh kesulitan runtuh dari 122 sesi menjadi 23.

Gambar 5. Sensitivitas ambang batas. Seluruh rentang 0.35–0.65 berperilaku identik karena tidak ada teks delta realistis yang berada di dalamnya — distribusi skor bersifat bimodal, dengan giliran mudah terkumpul di dekat 0.23 dan giliran sulit di dekat 0.72, dan tidak ada apa pun di antaranya. Nilai default bawaan berada di tepi atas mode atas.
IMPLIKASI TEKNIS
T2 dikalibrasi untuk distribusi transkrip lengkap yang menjadi dasar penyetelan band gated_adaptive, dan digunakan kembali sebagai ambang batas delta extractor. Dokumen desain menandai bahwa delta extractor “perlu penyetelan sendiri”; pengukuran ini mengkuantifikasi seberapa besar. Entah delta gate memerlukan T2 yang lebih rendah miliknya sendiri — di mana pun dalam 0,45–0,60 memberikan perilaku identik dengan margin nyata — atau ambang batas berbasis persentil yang sudah dijadwalkan untuk Fase 3 (“X% teratas dari lalu lintas terbaru router ini”) harus diterapkan, yang menjadikan tingkat eskalasi sebagai kenop operator dan menghindari kalibrasi absolut sepenuhnya.
6.3 Biaya dan cakupan

Gambar 6. Lima kebijakan pada 400 sesi yang sama. Kiri: biaya per 1.000 sesi (skala log). Kanan: proporsi giliran yang benar-benar sulit yang dilayani oleh model kuat.
Tabel 6.Perbandingan kebijakan. Biaya per 1.000 sesi berdasarkan model Tabel 4.
Dua hasil perlu dipisahkan. Pertama, afinitas sesi saja menghemat 24% pada pilihan model yang identik (16.64 → 12.63) dan 35% pada pasangan frontier (290.93 → 188.30). Itu murni ekonomi cache — model yang sama, semuanya sama, hanya kelengketan kunci yang berbeda. Penghematannya lebih besar pada pasangan frontier karena premi tulis 1.25× dari Anthropic membuat cold turn menjadi sangat mahal secara tidak proporsional.
Kedua, eskalasi berakhir di tempat yang seharusnya menjadi mekanisme penyelamatan: 45 % dari biaya selalu-frontier untuk 67 % dari cakupan giliran sulitnya, yang melayani model kuat hanya pada 21.4 % giliran.
Sepertiga cakupan yang hilang bukanlah cacat; itu adalah harga ratchet. Aturan koroborasi yang memberikan nol positif palsu juga berarti mekanisme tersebut tidak dapat bertindak pada giliran pertama suatu masalah:
Tabel 7. Latensi eskalasi — giliran-giliran sulit yang dilayani pada model murah sebelum ratchet menyala.
Dua giliran persis seperti yang ditentukan oleh aturan dua giliran beruntun, dan satu giliran persis seperti yang ditentukan oleh dua-strike-untuk-ratchet. Latensi itu adalah desainnya, dan properti yang sama itulah yang menghasilkan nol positif palsu. Siapa pun yang menginginkan penyelamatan lebih cepat memiliki header Class A, yang bekerja pada n=1 — justru itulah alasan jalan keluar manual dikirim lebih dulu.
6.4 Rasio judul bergantung sepenuhnya pada lalu lintas Anda.
Korpus ini 50% sulit berdasarkan konstruksi. Lalu lintas router nyata tidak demikian, dan perbandingan biaya sangat sensitif terhadap hal itu. Menimbang ulang biaya per-arketipe yang terukur di berbagai rentang prevalensi sesi sulit:

Gambar 7. Biaya per 1.000 sesi sebagai fungsi dari seberapa banyak trafik Anda yang benar-benar membutuhkan model yang kuat. Perilaku dalam kelas dipertahankan pada nilai-nilai terukur; hanya komposisinya yang berubah.
Tabel 8. Sensitivitas prevalensi, $ per 1.000 sesi.
Pada tingkat eskalasi target yang ditetapkan oleh dokumen desain itu sendiri, yaitu ≤5 % dari sesi, biaya eskalasi sebesar 1.6× tagihan pool murah dan 12 % dari tagihan frontier. Pada campuran stres 50 %, biayanya 6.7× tagihan pool murah. Keduanya benar; keduanya menjawab pertanyaan yang berbeda. Yang relevan secara operasional adalah yang pertama, dan itulah sebabnya batas porsi secara default adalah 20 %, bukan “nonaktif” — batas tersebut, bukan presisi pemicu, yang sebenarnya membatasi tagihan.
6.5 Batas-batas tetap bertahan di bawah penyalahgunaan adversarial
Kami menjalankan ulang korpus dengan mesin share-cap yang sesungguhnya — tanpa stub, day-bucket Redis yang nyata — di bawah model ancaman §8: setiap klien mengirim X-OrcaRouter-Tier: strong pada setiap giliran.

Gambar 8. Penyalahgunaan header secara adversarial terhadap batas pangsa eskalasi 20 %. 20 permintaan pertama secara desain tidak dibatasi — batas bawah pemanasan mencegah skenario di mana "1 eskalasi dari 2" terbaca sebagai 50 % dan mengunci fitur pada router baru — setelah itu pangsa berkonvergensi dan bertahan. Keadaan akhir: 296 dari 1.439 permintaan dilayani kuat (20,6 %), dengan 1.143 permintaan eksplisit ditolak dan diaudit sebagai peristiwa denied_cap.
Overshoot sisa 0,6% adalah perilaku yang dimaksud dari perbandingan yang lebih besar secara ketat pada penghitung trailing perkiraan, dan batas per sesi sebesar 1 mencegah sesi individu menghabiskan anggaran. Setiap penolakan terlihat oleh klien di header respons X-Orca-Session-Tier: base; reason=denied:share_cap dan oleh operator di tabel audit — eskalasi yang ditekan tidak pernah diam.
7 Apa yang akan kami ubah
Berikan ambang batas tersendiri bagi ekstraktor delta. Penggunaan kembali T2 dari transkrip penuh menyisakan margin 0,019 (§6.2). T2 khusus-delta dalam rentang 0,45–0,60 berperilaku identik pada korpus ini, dengan keleluasaan dua orde magnitudo lebih besar. Pekerjaan ambang batas persentil yang sudah dijadwalkan mencakup hal ini dan merupakan perbaikan yang lebih baik.
Jangan biarkan istilah kepadatan kode tetap dekoratif. Istilah ini menyumbang 0,069 dari anggaran 0,20-nya pada teks realistis terpadat yang dapat kami susun, karena batas saturasi 5 kecocokan per 100 karakter menyiratkan kira-kira satu kata kunci kode setiap dua puluh karakter. Tetapkan ulang batasnya berdasarkan distribusi produksi yang terukur, atau alokasikan ulang bobotnya.
Kelas C adalah andalan untuk lalu lintas agen, dan ini yang paling kurang berkembang. Populasi failure_loop tidak terlihat oleh gerbang kesulitan (puncak 0,262) dan sepenuhnya tertangkap oleh strikes. Sesi agen gagal karena looping, bukan karena semakin sulit secara leksikal. Produser sisi-respons yang tersisa — dan hook penangkap streaming native-Gemini yang masih hilang — lebih berharga daripada penyesuaian kesulitan lebih lanjut.
Publikasikan latensi eskalasi. Dua putaran kerja keras yang disajikan pada model murah adalah biaya jujur dari ratchet yang menguatkan, dan operator harus melihatnya di panel analitik di samping presisi, bukan menemukannya.
8 Keterbatasan
Korpus ini sintetis. Korpus ini dibangun agar terpisah secara bersih, sehingga hasil tanpa positif palsu mencirikan spesifisitas mekanisme pada masukan yang dapat dipisahkan, bukan presisinya pada lalu lintas produksi. Angka presisi yang sesungguhnya hanya dapat diperoleh dari pekerjaan pelabelan mode bayangan yang ditentukan oleh desain — pipeline pemicu penuh berjalan, tidak merutekan apa pun, keputusan diberi label secara retrospektif — dengan gerbang go-live pada presisi berlabel ≥70 %.
Model biaya mengasumsikan 500 token output tetap per giliran, yang menekan efek nyata: model frontier mengeluarkan lebih banyak token penalaran, sehingga premi frontier yang sebenarnya diremehkan. Model ini juga memodelkan kehangatan cache tingkat permintaan sebagai 1/N yang seragam di seluruh slot kunci; kumpulan berbobot akan menggunakan indeks Herfindahl Σw², dan saluran kunci tunggal tidak akan menunjukkan keuntungan cache sama sekali untuk afinitas sesi di tingkat saluran — meskipun pin tingkat model masih penting untuk strategi adaptif.
Kami tidak menjalankan inferensi upstream, jadi tidak ada klaim akurasi atau keberhasilan tugas yang dibuat. Cakupan hard-turn adalah proksi untuk kualitas, dan ini mengasumsikan bahwa model yang kuat sebenarnya lebih baik pada giliran-giliran tersebut — masuk akal untuk arketipe yang dibangun, tetapi belum diverifikasi di sini.
Akhirnya, hal ini mengukur implementasi satu gateway. Mode kegagalan lock-in pada turn-1 seharusnya berlaku umum untuk router yang sadar-cache yang mengunci sesi, tetapi angka-angka spesifiknya adalah properti dari ambang batas ini, bobot ini, dan harga-harga ini.
9 Pekerjaan terkait
Perutean tingkat permintaan sudah tercakup dengan baik. FrugalGPTsup>[2]/sup> memperkenalkan kaskade LLM — kueri model murah, beri skor pada jawaban, eskalasi jika keyakinan rendah — melaporkan pengurangan biaya hingga 98 % pada akurasi yang setara. RouteLLMsup>[1]/sup> melatih router pada data preferensi Chatbot Arena dan melaporkan 95 % kualitas GPT-4 dengan 14 % panggilan model kuat, dengan router yang dapat ditransfer antar pasangan model tanpa pelatihan ulang. RouterArenasup>[3]/sup> menyediakan fondasi evaluasi yang selama ini hilang: 8.400 kueri di berbagai domain dan tingkat kesulitan, dinilai berdasarkan akurasi, biaya, optimalitas perutean, ketahanan, dan overhead router.
Yang tidak dibahas oleh semua ini adalah percakapan sebagai unit perutean. Sebuah kaskade mengeskalasi sebuah permintaan dan melupakannya; giliran berikutnya menjalankan ulang model murah yang sama pada tugas yang sama yang kini diketahui sulit. Router yang dilatih dengan preferensi menilai sebuah kueri, bukan sebuah lintasan. Celah yang dibahas oleh laporan ini adalah apa yang harus diingat oleh router di antara giliran, berapa lama, dan apa yang seharusnya diizinkan untuk mengubah pikirannya — sebuah pertanyaan yang baru menjadi mendesak begitu prompt caching membuat lupa menjadi mahal.
OrcaRouter menyertakan harness RouterArena di dalam tree-nya (eval/) yang melakukan benchmark lima strategi tingkat-request — cheapest, quality, balanced, linucb, gated_adaptive — terhadap dataset terbuka tanpa memodifikasi repositori upstream. Mekanisme tingkat-sesi yang dijelaskan di sini bersifat ortogonal terhadap kelima strategi tersebut dan dapat dipadukan dengannya.
10 Kesimpulan
Penembolokan prompt mengubah ekonomi perutean LLM dengan cara yang belum diikuti oleh literatur perutean. Ketika kontinuitas bernilai diskon 10× pada mayoritas token masukan Anda, router harus pin — dan pada saat ia pin, ia membuat keputusannya pada giliran di mana ia paling sedikit tahu, dan hidup dengan keputusan itu selama percakapan berlangsung. Perutean tingkat permintaan tidak memiliki masalah ini dan membayarnya dengan cache miss; evaluasi ulang per-giliran yang naif memperkenalkan kembali miss dan menambahkan artefak bias panjang di atasnya.
Stickiness bertingkat menyelesaikannya dengan memisahkan dua hal yang terlihat seperti satu: model mana yang melayani sesi ini (pin, stabil dalam satu tier) dan sesi ini termasuk ke dalam tier mana (sebuah state yang kecil, terbatas, terkonfirmasi, dan berakhir). Dalam replay kami, pemisahan tersebut memulihkan 87% sesi yang kesulitannya tidak terdeteksi pada giliran pertama, tanpa false positive pada 200 sesi mudah, dengan biaya 45% dari always-frontier — dan mempertahankan batas pengeluaran sebesar 20% terhadap klien yang secara aktif mencoba mengalahkannya.
Kelemahan jujur dari mekanisme ini adalah kalibrasi, bukan arsitektur: sebuah gerbang kesulitan yang digunakan kembali dari distribusi yang tidak disetel untuknya, sebuah istilah fitur yang tidak dapat mencapai anggarannya, dan dua giliran latensi penyelamatan yang tidak dapat dihindari. Semua itu dapat ditangani. Klaim arsitektural — bahwa memori eskalasi harus terpisah dari pin, bahwa tidak ada sinyal kabur yang dapat menaikkan sendiri, dan bahwa batas harus mengikat permintaan eksplisit klien sendiri karena klien memegang token — adalah bagian yang akan kami pertahankan.
11 Sumber
1. LMSYS Org. RouteLLM: Kerangka Kerja Sumber Terbuka untuk Routing LLM yang Hemat Biaya. a href="https://www.lmsys.org/blog/2024-07-01-routellm/">u>lmsys.org/blog/2024-07-01-routellm//u>/a> · kode: a href="https://github.com/lm-sys/RouteLLM">u>github.com/lm-sys/RouteLLM/u>/a>
2. Chen, Zaharia & Zou. FrugalGPT: Cara Menggunakan Model Bahasa Besar Sambil Mengurangi Biaya dan Meningkatkan Performa. arXiv:2305.05176. a href="https://arxiv.org/abs/2305.05176">u>arxiv.org/abs/2305.05176/u>/a>
3. Lu, Liu, Yuan, Cui, Zhang, Liu & Xing. RouterArena: Platform Terbuka untuk Perbandingan Menyeluruh atas Router LLM. arXiv:2510.00202. a href="https://arxiv.org/abs/2510.00202">u>arxiv.org/abs/2510.00202/u>/a>
4. OpenAI. Prompt Caching di API. a href="https://openai.com/index/api-prompt-caching/">u>openai.com/index/api-prompt-caching//u>/a> — caching otomatis, prefiks ≥1,024-token dalam kelipatan 128-token, eviction idle 5–10 menit, ≤1 jam; diskon input cache berdasarkan tingkatan model. Harga: a href="https://openai.com/api/pricing/">u>openai.com/api/pricing//u>/a>
5. Anthropic. Caching prompt. a href="https://platform.claude.com/docs/en/build-with-claude/prompt-caching">u>platform.claude.com/docs/en/build-with-claude/prompt-caching/u>/a> — pembacaan cache 0.1× input dasar, penulisan 1.25× (TTL 5 menit) atau 2× (TTL 1 jam), disegarkan saat digunakan. Harga: a href="https://www.anthropic.com/pricing">u>anthropic.com/pricing/u>/a>
6. DeepSeek. API DeepSeek memperkenalkan Caching Konteks pada Disk. a href="https://api-docs.deepseek.com/news/news0802/">u>api-docs.deepseek.com/news/news0802//u>/a> — otomatis, ditagih berdasarkan cache hit aktual, pengurangan orde besaran pada hit.
7. Google. Cache konteks Gemini API. a href="https://ai.google.dev/gemini-api/docs/caching">u>ai.google.dev/gemini-api/docs/caching/u>/a> — caching implisit dan eksplisit dengan TTL yang biayanya berdasarkan penyimpanan.
8. Sumber OrcaRouter, repositori ini: service/session_affinity.go (pin, TTL, kunci lingkup-tier) · service/session_escalation.go (mesinnya) · service/model_router.go:1374 (selectByStrategy: penyempitan tier sebelum pembacaan pin) · service/model_router_difficulty.go (bobot dan batas) · service/model_router_delta.go (ekstraktor delta) · service/escalation_strikes.go (produsen sisi permintaan) · service/escalation_caps.go (batas berbagi) · docs/features/frontier-escalation.md (desain, putaran tinjauan 1–4).
Reproduksibilitas. Perangkat pengukuran adalah tes Go dalam paket layanan yang menjalankan ResolveEscalation / CommitEscalationDecision terhadap miniredis, ditambah alur analisis dan pembuatan gambar berbasis Python. Pembuatan korpus diinisialisasi dengan seed (rand.NewSource(20260814)) dan keseluruhan prosesnya deterministik: 400 sesi, 3.968 giliran, tiga eksperimen (replay utama, percobaan dengan batas adversarial, sapuan ambang 9 titik). Gambar-gambar menggunakan palet kategoris yang divalidasi untuk CVD; setiap gambar dipasangkan dengan tabel yang mendasarinya. Tidak ada data produksi yang diakses, dan tidak ada bagian dari analisis ini yang dikomit ke repositori.
Dibandingkan dalam artikel ini1
Terdeteksi dari artikel ini · Benchmark: Artificial Analysis · diperbarui setiap hari
