Paritok: Gateway Token untuk Hemat Biaya Coding Agent
Paritok mengklaim mengurangi token hingga 74% dengan memadatkan pembacaan file dan output tool. Simak mekanisme serta hitungan titik impasnya.
Apa yang dilakukan Paritok terhadap sebuah permintaan
Paritok adalah gateway token: proxy yang berada di antara coding agent Anda dan API model, lalu memadatkan setiap permintaan sebelum meneruskannya. Agent Anda berkomunikasi dengan http://127.0.0.1:8080, bukan dengan provider. Proxy menulis ulang skema tool, pembacaan file, output tool, dan turn yang lebih lama, mengirim payload yang lebih kecil ke upstream, lalu mengembalikan balasan tanpa perubahan.
Provider menagihkan biaya berdasarkan data yang diterima provider. Jadi, payload yang lebih kecil menghasilkan tagihan yang lebih kecil. Itulah seluruh konsepnya. Ini berbeda dari klaim bahwa "konteks Anda bertahan lebih lama", dan itulah alasan tool ini menarik, bukan sekadar lebih rapi.
Proyek ini masih baru. Tag publik pertamanya bertanggal July 2026, dan tag saat ini adalah v1.3.0, bertanggal 5 August 2026. Weights dan kode gateway dirilis di bawah lisensi Apache 2.0. Model kompresinya adalah adapter LoRA (low-rank adaptation) pada Qwen3-4B-Instruct-2507, yang dilatih menggunakan 45,000 sampel hasil distilasi dari teacher yang diambil dari trajectory coding agent nyata.
Mengapa ini bukan pemangkasan konteks
Pemangkasan menghapus data. Ketika agent mendekati batas konteks lalu membuang giliran percakapan yang paling lama, file yang dibacanya pada giliran 3 sudah tidak tersedia. Jika file itu diperlukan pada giliran 20, agent membacanya lagi, sehingga Anda membayar token tersebut untuk kedua kalinya. Penghematan itu hanya pinjaman.
Paritok mengganti segmen dengan bentuk yang lebih singkat beserta tag, [REF:id], lalu menyimpan teks lengkapnya pada proxy. Model mengambil kembali segmen tersebut dengan memanggil read_original atau expand_context. Hal ini mengubah mode kegagalannya. Pemangkas gagal karena melupakan data, dan tidak pernah memberi tahu Anda. Kompresor gagal karena memberikan ringkasan lossy kepada model, dan model dapat meminta teks asli jika ringkasan tersebut tidak memadai.
Filter tool bekerja dengan cara yang sama. Skema tool yang difilter diganti dengan stub, bukan dihapus, dan model dapat mengambilnya kembali dengan memanggil gateway_search_tools. Hal ini penting karena filter yang menyembunyikan tool secara permanen mengubah kemampuan agent Anda, dan Anda baru mengetahuinya melalui tugas yang diam-diam gagal.
Tiga tuas dan opsi yang gratis
Tuas pertama adalah filter skema tool. Setiap request membawa seluruh array tools. Dalam satu giliran Claude Code dengan beberapa server MCP (model context protocol) terpasang, proyek ini mengukur blok tersebut sekitar 29,000 token. Filter ini menyematkan request pengguna dan setiap deskripsi tool menggunakan BAAI/bge-small-en-v1.5, yaitu model embedding berukuran 130 MB, mempertahankan tool yang cocok, lalu membuat stub untuk sisanya. Ukuran blok turun menjadi sekitar 8,000 token. Model embedding tersebut berjalan pada CPU.
Tuas kedua adalah kompresi konten. Bagian inilah yang memerlukan model 4B pada GPU. Pembacaan file, output tool, dan riwayat ditulis ulang menjadi 25.7% dari ukuran semula. Dari sinilah angka utama 74% berasal. Perhatikan dengan saksama: 74% adalah tingkat kompresi pada konten yang dikompresi, bukan pengurangan tagihan Anda.
Tuas ketiga adalah peringkasan riwayat. Setelah anggaran konteks terisi, giliran di luar jendela terbaru diringkas agar sesi panjang tetap berjalan dan tidak mencapai batas.
Hanya tuas kedua yang memerlukan GPU. Ini adalah kalimat terpenting di halaman ini. pip install "paritok[toolselect]" menyediakan filter tool pada VPS CPU biasa, dan fitur ini adalah bagian produk yang tidak menimbulkan biaya bulanan. Cobalah sebelum menyewa kartu GPU.
Yang diukur oleh proyek, dan pada harness siapa
The data behind this chart
[
{
"label": "Paritok-4B-v1",
"compressed_to_pct": 25.7,
"quality_retained_pct": 86.5
},
{
"label": "gpt-4.1-mini",
"compressed_to_pct": 50.2,
"quality_retained_pct": 85.6
},
{
"label": "gpt-5",
"compressed_to_pct": 61.9,
"quality_retained_pct": 93.6
}
]Ini adalah angka yang dipublikasikan oleh proyek sendiri, yang diukur pada harness miliknya sendiri terhadap SWE-bench Lite. Paritok-4B-v1 memadatkan konten menjadi 25.7% dari ukuran asli, dengan mempertahankan 86.5% dari solve rate tanpa pemadatan. Penggunaan gpt-5 sebagai compressor mempertahankan lebih banyak kualitas, yaitu 93.6%, tetapi hanya memadatkan konten menjadi 61.9%, sehingga Anda membayar harga frontier untuk menghemat harga frontier.
Baca kolom kualitas secara jujur. Mempertahankan 86.5% dari solve rate berarti proses terkompresi gagal menyelesaikan masalah yang dapat diselesaikan oleh proses tanpa pemadatan, yaitu hampir satu dari tujuh solve. Pada benchmark, angka itu hanya tercantum dalam tabel. Pada repository Anda, angka itu berarti ada task yang harus dijalankan dua kali.
The data behind this chart
[
{
"label": "Turn 1",
"saved_pct": 25
},
{
"label": "Turn 5",
"saved_pct": 39
},
{
"label": "Turn 12",
"saved_pct": 57
},
{
"label": "Turn 20",
"saved_pct": 63
}
]Penghematan end-to-end meningkat selama sesi berlangsung karena history terus bertambah, dan history adalah bagian yang dipadatkan. Proyek melaporkan penghematan sekitar 25% pada satu turn, 39% pada turn ke-5, dan 63% pada turn ke-20. Proyek juga menjelaskan kapan pertumbuhan tersebut berhenti: pada budget 200,000 token, penghematan absolut mendatar di sekitar 48,000 token per turn, kira-kira antara turn ke-8 hingga ke-12, karena setelah context penuh, history tidak lagi bertambah. Angka "lebih dari 85%" yang sering dikutip merujuk pada sesi yang context-nya telah penuh. Itu adalah kondisi terbaik, jadi jangan menyusun perencanaan berdasarkan angka tersebut.
Apakah GPU 24GB sepadan untuk Paritok?
Kartu 24 GB adalah unit sewa yang umum untuk model sebesar ini. Per 7 Agustus 2026, tarif on-demand median yang dipublikasikan untuk RTX 4090 dengan 24 GB adalah $0.44 per jam, dengan listing termurah sekitar $0.20. Gunakan $0.44. Jika terus berjalan sepanjang bulan, durasinya 730 jam, sehingga biayanya $321. Jika hanya berjalan selama jam kerja, 8 jam sehari selama 22 hari, durasinya 176 jam, sehingga biayanya $77.
Sekarang ubah penghematan token menjadi penghematan dolar. Pengurangan hanya berlaku pada token input. Token output melewati proxy tanpa perubahan, sehingga jumlahnya tidak berubah sama sekali. Asumsikan token input mencakup 80% dari total biaya Anda, yang umum untuk coding agent, lalu bandingkan asumsi tersebut dengan tagihan Anda sendiri. Penghematan dalam dolar berarti pengurangan token dikalikan 0.8.
The data behind this chart
[
{
"label": "Turn 5 (39% saved)",
"bill_always_on_usd": "1,030",
"bill_workday_only_usd": 248
},
{
"label": "Turn 20 (63% saved)",
"bill_always_on_usd": 637,
"bill_workday_only_usd": 154
},
{
"label": "Saturated (85% saved)",
"bill_always_on_usd": 472,
"bill_workday_only_usd": 114
}
]Pada angka sesi jenuh sebesar 85%, Anda menghemat 68% dari tagihan. Dengan demikian, kartu yang terus berjalan akan menutup biayanya sendiri setelah pengeluaran bulanan Anda untuk agent mencapai sekitar $472, atau sekitar $114 jika instance dihentikan di luar jam kerja. Pada angka turn-20 sebesar 63%, nilainya menjadi $637 dan $154. Pada angka turn-5 sebesar 39%, yang mencerminkan sesi singkat sebenarnya, Anda perlu mengeluarkan sekitar $1,030 per bulan sebelum menyewa kartu ini benar-benar sepadan.
Dua hal membuat hasil ini lebih baik daripada yang ditunjukkan tabel. Model tidak memerlukan 24 GB: build q4 berukuran sekitar 2.5 GB dan build bf16 sekitar 8 GB. Jadi, kartu yang lebih kecil atau GPU box yang sudah Anda jalankan untuk keperluan lain akan menurunkan semua angka pada grafik tersebut. Selain itu, menghentikan instance saat tidak ada yang melakukan coding adalah langkah paling efektif, karena dapat mengurangi biaya sewa sekitar tiga perempat.
Satu hal membuat hasilnya lebih buruk. Proses kompresi membutuhkan kerja komputasi nyata. Setiap token yang dikompresi model 4B harus dibaca lalu ditulis kembali, sehingga menambah latensi pada setiap turn agent. Pada kartu yang disewa per jam, biaya ini muncul sebagai waktu tunggu, bukan sebagai baris pada invoice. Karena itu, dampaknya mudah terlewat sampai Anda mengalaminya secara langsung.
Jika Anda sedang membandingkan jam penggunaan GPU sewaan dengan token API secara umum, perbandingan titik impas antara GPU VPS dan token API menggunakan perhitungan yang sama untuk inference itu sendiri.
Menjalankan gateway Paritok pada VPS
Python 3.10 atau yang lebih baru diperlukan. Ubuntu 24.04 menyertakan Python 3.12, sehingga image VPS standar sudah cukup untuk bagian yang hanya menggunakan CPU.
sudo apt update && sudo apt install -y python3-venv curl
python3 -m venv /opt/paritok/venv
source /opt/paritok/venv/bin/activate
pip install "paritok[proxy]==1.3.0"
pip install "paritok[toolselect]==1.3.0"Tetapkan versinya. Repositori memberi tag v1.2.8 pada 29 July 2026 dan v1.3.0 pada 5 August 2026. Proyek yang bergerak secepat itu dapat mengganti nama kunci konfigurasi antar-rilis. pip install paritok tanpa versi yang ditetapkan, atau git clone dari main, dapat memberi Anda gateway yang berbeda minggu depan tanpa menyimpan catatan gateway yang menghasilkan angka yang Anda ukur.
Backend default-nya adalah Ollama. Pull model tersebut, lalu berikan nama singkat yang dicari proxy.
ollama pull paritok/paritok-4b-v1
ollama cp paritok/paritok-4b-v1 paritok-4b-v1Karena model lokal menulis rewrite untuk setiap segmen yang dikompresinya, proses kompresi yang berjalan terlalu lama akan terlihat sebagai giliran agent yang macet. Batas num_predict Ollama pada panjang output adalah parameter yang membatasi durasinya.
Tulis paritok.yaml di sebelahnya. use_gpu_server: false memastikan kompresi tetap berjalan pada perangkat keras Anda sendiri.
use_gpu_server: false
local_model:
base_url: http://localhost:11434paritok proxy --port 8080 --config-file paritok.yamlparitok up adalah pintasan untuk semua langkah di atas: perintah ini melakukan pull model jika model belum tersedia, lalu menjalankan proxy pada port 8080. Periksa proxy sebelum mengarahkan agent ke sana.
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/stats/health mengembalikan objek JSON kecil yang berisi "status":"ok" dan string versi. /stats mengembalikan total kompresi dan perkiraan proxy sendiri tentang jumlah yang dihemat. Perlakukan perkiraan tersebut sebagai penilaian proxy atas pekerjaannya sendiri, lalu konfirmasikan dengan halaman penggunaan provider Anda.
Untuk throughput, bukan kemudahan penggunaan, vLLM menyajikan adapter di atas base model.
vllm serve Qwen/Qwen3-4B-Instruct-2507 \
--enable-lora \
--lora-modules paritok-4b-v1=paritok/paritok-4b-v1 \
--port 8000Ollama lebih cepat disiapkan. vLLM menangani request secara bersamaan dengan jauh lebih baik. Hal ini mulai penting segera setelah lebih dari satu agent menggunakan server yang sama. Perbedaan praktis antara Ollama dan vLLM menentukan pilihan untuk kasus ini.
Arahkan agent ke proxy menggunakan environment variable base URL.
export ANTHROPIC_BASE_URL=http://127.0.0.1:8080
export OPENAI_BASE_URL=http://127.0.0.1:8080Codex CLI mengabaikan OPENAI_BASE_URL, sehingga proyek menulis ~/.codex/config.toml untuk Anda ketika codex.enabled: true ditetapkan dalam paritok.yaml. Mengekspor variable tersebut saja membuat Codex tetap berkomunikasi langsung dengan provider. Tandanya adalah counter /stats yang tidak pernah bertambah selama Anda bekerja.
Pertahankan listener pada 127.0.0.1, jangan pada 0.0.0.0. Proxy meneruskan API key provider Anda ke upstream. Jadi, proxy yang dapat dijangkau dari Internet menjadi open relay untuk key tersebut: siapa pun yang menemukan port itu dapat membelanjakan uang Anda tanpa pernah melihat key-nya. Akses proxy dari laptop melalui SSH tunnel atau VPN, bukan dengan membuka port tersebut.
Jalankan proxy di bawah systemd agar tetap berjalan setelah reboot. Sesuaikan path dengan instalasi Anda.
[Unit]
Description=Paritok compression proxy
After=network-online.target
[Service]
User=paritok
WorkingDirectory=/opt/paritok
ExecStart=/opt/paritok/venv/bin/paritok proxy --port 8080 --config-file /opt/paritok/paritok.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.targetAktifkan dengan sudo systemctl enable --now paritok, lalu jalankan curl /health lagi. Unit yang start lalu langsung exit biasanya menunjukkan bahwa path file konfigurasi salah. journalctl -u paritok -n 50 menampilkan penyebabnya.
Opsi hosted dan biayanya
Proyek ini juga menyediakan kompresi sebagai layanan. Konfigurasikan use_gpu_server: true dengan API key, lalu model 4B berjalan pada hardware milik penyedia layanan dengan tarif $0.30 per juta token yang diproses. Menurut dokumentasinya sendiri, layanan ini gratis hingga akhir Agustus 2026. Dengan demikian, Anda tidak perlu menanggung biaya sewa GPU dan seluruh pekerjaan operasional yang dijelaskan di atas.
Namun, prompt Anda dan file yang dibaca agent akan meninggalkan mesin Anda dan dikirim ke pihak ketiga sebelum diteruskan ke penyedia model Anda. Self-hosting digunakan untuk menghindari hop tersebut. Tentukan prioritas Anda sebelum mengaktifkan flag itu. Perubahan pada flag hanya memerlukan satu baris, tetapi konsekuensinya tidak sesederhana itu.
Cara mengukur kondisi sebelum dan sesudah
Angka yang dipublikasikan adalah angka proyek, yang diperoleh dari harness proyek pada SWE-bench Lite. Repository Anda bukan SWE-bench Lite. Lakukan pengukuran sendiri.
- Jalankan satu minggu normal tanpa proxy di jalur koneksi. Catat token input, token yang dibaca dari cache, dan token output pada baris terpisah dari halaman penggunaan provider Anda, bukan sebagai satu total dalam dolar.
- Jalankan minggu berikutnya dengan proxy di depan, menggunakan jenis pekerjaan yang sama.
- Bandingkan baris input dan pembacaan cache. Output seharusnya relatif tetap karena tidak ada proses yang mengompresnya. Jika output berubah banyak, berarti ada hal lain selain proxy yang berubah.
- Hitung tugas yang harus Anda kerjakan ulang. Ini adalah bagian kualitas dari trade-off tersebut, dan tidak ada dashboard yang melaporkannya.
- Tambahkan jam penggunaan GPU ke minggu kedua sebelum membandingkan totalnya.
Memisahkan input dari output penting karena keduanya memiliki harga yang sangat berbeda dan compressor hanya memengaruhi salah satunya. Per Agustus 2026, Claude Sonnet 4.6 berharga $3 per juta token input dan $15 per juta token output, sedangkan pembacaan prompt cache berharga 10% dari tarif input, yaitu $0.30 per juta. Perbedaan biaya token input dan output menentukan apakah compressor pada sisi input bermanfaat bagi Anda. Ke mana token Claude Code sebenarnya digunakan menunjukkan bagian konteks mana yang cukup besar untuk dikompresi.
Prompt caching secara khusus memperumit perhitungan filter tool. Blok tool berada di bagian awal request, sehingga setelah turn pertama, blok tersebut biasanya menjadi cache hit dengan harga 10% dari harga input. Mengurangi 21,000 token dari blok yang tersimpan di cache menghemat biaya untuk 21,000 token dengan tarif $0.30 per juta, yaitu sekitar $0.006 per turn, bukan $0.063 seperti yang ditunjukkan oleh tarif tanpa cache. Proyek ini menjaga blok yang telah difilter tetap sama selama session agar prefix yang tersimpan di cache tidak berubah. Filter yang memilih ulang tool pada setiap turn akan membatalkan prefix tersebut dan biayanya bisa lebih besar daripada penghematannya.
Yang masih belum terverifikasi
Semua angka performa di atas berasal dari proyek itu sendiri. Belum ada reproduksi independen atas hasil SWE-bench Lite, dan karena tag pertama bertanggal July 2026, riwayat operasional kode ini juga masih sangat terbatas. Tingkat kompresi dan angka kualitas yang dipertahankan sama-sama diukur oleh pihak yang diuntungkan jika hasilnya terlihat baik. Itu tidak berarti angkanya salah. Artinya, angka tersebut belum terkonfirmasi, dan Anda harus memperlakukannya secara berbeda dari angka yang Anda hasilkan sendiri.
Ada satu perilaku yang terdokumentasi dan perlu diketahui sebelum Anda menyalahkan konfigurasi Anda. Model embedding yang digunakan filter alat dimuat pada permintaan pertama, bukan saat startup. Karena itu, proyek ini mendokumentasikan waktu pemanasan selama 10 hingga 15 detik, kemudian sekitar 15 ms per pemanggilan. Kirim satu permintaan percobaan setelah proxy dimulai agar giliran agen pertama yang sebenarnya tidak tampak macet.
Ada empat hal yang dapat Anda pastikan sendiri dalam satu sore: apakah proxy dapat dimulai dan tetap berjalan, apakah /stats berubah selama Anda bekerja, apakah baris input-token dari provider Anda benar-benar berkurang, dan apakah agen tetap menyelesaikan pekerjaan. Hal-hal tersebut jauh lebih menentukan untuk konfigurasi Anda daripada benchmark apa pun yang dipublikasikan.
Mengenai posisi alat ini di antara tooling Anda yang lain: gateway LiteLLM self-hosted merutekan dan mengukur permintaan tanpa mengubah isinya. Dengan demikian, keduanya menyelesaikan masalah yang berbeda dan dapat digunakan berantai, dengan Paritok berada paling dekat dengan agen. Jika tujuan sebenarnya adalah mengurangi tagihan, bukan menggunakan alat khusus ini, kumpulan kontrol biaya yang lebih luas untuk agen pada VPS mencakup beberapa perubahan yang dapat dicoba terlebih dahulu tanpa biaya.
FAQ
Apakah Paritok mengurangi tagihan API saya atau hanya penggunaan konteks?
Paritok mengurangi tagihan karena proxy menulis ulang permintaan sebelum permintaan tersebut mencapai provider, sedangkan provider menagih berdasarkan data yang diterimanya. Besarnya pengurangan ini lebih kecil daripada angka utama yang disebutkan. Angka 74% adalah tingkat kompresi pada konten yang dikompresi. Secara menyeluruh, proyek ini melaporkan pengurangan sekitar 25% pada satu turn dan 63% pada turn ke-20, serta hanya token input yang berubah. Token output diteruskan tanpa perubahan.
Berapa GPU yang diperlukan untuk melakukan self-hosting model kompresi?
Build q4 berukuran sekitar 2.5 GB, sedangkan build bf16 berukuran sekitar 8 GB. Jadi, model dapat dimuat pada GPU 24 GB dengan banyak ruang tersisa. GPU yang lebih kecil juga dapat digunakan dan membuat perhitungan titik impas lebih menguntungkan. Filter tool-schema sama sekali tidak memerlukan GPU. Filter ini menggunakan BAAI/bge-small-en-v1.5, yaitu model embedding berukuran 130 MB yang berjalan pada CPU. Instal paritok[toolselect] pada VPS biasa untuk mendapatkan pengurangan tool-block dengan biaya tambahan RAM yang kecil.
Apa yang terjadi jika kompresor menghapus sesuatu yang diperlukan agent?
Tidak ada yang dihapus. Segmen terkompresi membawa tag [REF:id], dan model memulihkan teks lengkap dengan read_original atau expand_context. Tool schema yang difilter dibuat sebagai stub, bukan dihapus, dan model memulihkannya dengan gateway_search_tools. Risiko sebenarnya lebih sulit terlihat daripada file yang hilang: model bekerja berdasarkan ringkasan lossy dan tidak pernah menyadari bahwa model perlu meminta teks asli. Itulah yang diukur oleh angka 86.5% kualitas yang dipertahankan pada SWE-bench Lite.
Mengapa permintaan pertama saya memerlukan waktu lima belas detik?
Model embedding di balik tool filter dimuat pada permintaan pertama, bukan saat startup. Proyek ini mendokumentasikan waktu warm-up selama 10 hingga 15 detik, kemudian sekitar 15 ms per pemanggilan. Kirim satu permintaan percobaan dengan curl setelah proxy dijalankan agar turn agent yang pertama tidak terhenti.
Apakah sebaiknya saya menggunakan server GPU hosted daripada melakukan self-hosting?
Pilihan ini menghilangkan biaya sewa GPU dan pemeliharaan, dengan tarif $0.30 per juta token yang diproses per Agustus 2026. Namun, pilihan ini juga mengirim prompt dan file yang dibaca agent ke pihak ketiga sebelum data tersebut mencapai provider model Anda. Jika Anda melakukan self-hosting untuk menyimpan kode pada infrastruktur yang Anda kendalikan, pengaturan tersebut menghilangkan alasan Anda memulai. Self-hosting menjaga konteks dan API key provider tetap berada pada server Anda sendiri.