Paritok: Apakah Tagihan Coding Agent Jadi Lebih Murah?
Paritok mengompresi pembacaan file dan output tool sebelum dikirim ke API model. Proyek ini mengklaim pengurangan token 74 persen. Simak mekanisme dan titik impasnya.
Dampak Paritok terhadap permintaan
Paritok adalah gateway token: proxy yang berada di antara coding agent dan API model, lalu mengompresi 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 sebelumnya, mengirim payload yang lebih kecil ke upstream, lalu mengembalikan respons tanpa perubahan.
Provider menagihkan biaya berdasarkan data yang diterima di sisi provider. Jadi, payload yang lebih kecil menghasilkan tagihan yang lebih kecil. Itulah keseluruhan idenya. Klaim ini berbeda dari “konteks Anda bertahan lebih lama”. Inilah alasan tool ini menarik, bukan sekadar membuat konfigurasi lebih rapi.
Proyek ini masih baru. Tag publik pertamanya bertanggal July 2026, sedangkan tag saat ini adalah v1.3.0, bertanggal 5 August 2026. Bobot model dan kode gateway menggunakan 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 dan diambil dari trajektori coding agent nyata.
Mengapa ini bukan pemangkasan konteks
Pemangkasan menghapus data. Ketika agen mendekati batas konteksnya lalu membuang giliran paling lama, file yang dibacanya pada giliran 3 sudah tidak ada. Jika file itu diperlukan pada giliran 20, agen membacanya lagi. Token tersebut harus dibayar untuk kedua kalinya. Penghematan itu hanya pinjaman.
Paritok mengganti suatu segmen dengan bentuk yang lebih singkat dan sebuah tag, [REF:id], lalu menyimpan teks lengkapnya pada proxy. Model mengambil kembali segmen tersebut dengan memanggil read_original atau expand_context. Hal ini mengubah bentuk kegagalannya. Trimmer gagal karena lupa, 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 dibuat sebagai stub, bukan dihapus, dan model mengambilnya kembali dengan memanggil gateway_search_tools. Hal ini penting karena filter yang menyembunyikan tool secara permanen mengubah kemampuan agen Anda. Anda baru mengetahuinya melalui tugas yang diam-diam gagal.
Tiga pengungkit dan mana yang gratis
Pengungkit pertama adalah filter skema tool. Setiap permintaan 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 menyematkan permintaan pengguna dan setiap deskripsi tool menggunakan BAAI/bge-small-en-v1.5, yaitu model embedding berukuran 130 MB, mempertahankan tool yang cocok, dan mengganti sisanya dengan stub. Blok tersebut berkurang menjadi sekitar 8,000 token. Model embedding ini berjalan pada CPU.
Pengungkit kedua adalah kompresi konten. Bagian ini memerlukan model 4B pada GPU. Pembacaan file, output tool, dan riwayat ditulis ulang hingga menjadi 25.7% dari ukuran awalnya. Dari sinilah angka 74% berasal. Perhatikan dengan saksama: 74% adalah tingkat kompresi pada konten yang dikompresi, bukan pengurangan tagihan Anda.
Pengungkit ketiga adalah peringkasan riwayat. Setelah anggaran konteks penuh, giliran di luar jendela terbaru diringkas agar sesi panjang tetap berjalan dan tidak mencapai batas.
Hanya pengungkit kedua yang memerlukan GPU. Ini adalah kalimat paling penting di halaman ini. pip install "paritok[toolselect]" memberi Anda filter tool pada VPS CPU biasa, dan bagian produk ini tidak menimbulkan biaya bulanan. Cobalah sebelum menyewa kartu.
Hal yang diukur 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 sendiri oleh proyek, 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 tingkat penyelesaian tanpa pemadatan. Dengan menggunakan gpt-5 sebagai pemadat, kualitas yang dipertahankan lebih tinggi, yaitu 93.6%, tetapi konten hanya dipadatkan menjadi 61.9%. Artinya, Anda membayar tarif frontier untuk menghemat tarif frontier.
Baca kolom kualitas secara cermat. Mempertahankan 86.5% dari tingkat penyelesaian berarti proses terkompresi gagal menyelesaikan masalah yang dapat diselesaikan oleh proses tanpa pemadatan, atau hampir satu dari tujuh penyelesaian. Pada benchmark, angka itu hanya muncul sebagai nilai dalam tabel. Pada repositori Anda, angka itu berarti tugas 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 riwayat terus bertambah, sedangkan riwayat adalah bagian yang dipadatkan. Proyek melaporkan penghematan sekitar 25% pada satu giliran, 39% pada giliran 5, dan 63% pada giliran 20. Proyek juga menjelaskan kapan pertumbuhan ini berhenti: pada anggaran 200,000 token, penghematan absolut mendatar di sekitar 48,000 token per giliran, sekitar giliran 8 hingga 12, karena setelah konteks penuh, riwayat tidak lagi bertambah. Angka "lebih dari 85%" yang sering dikutip menggambarkan sesi ketika konteks sudah penuh. Itu adalah kondisi terbaik, jadi jangan menjadikannya dasar perencanaan.
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 daftar termurah sekitar $0.20. Gunakan $0.44. Jika terus berjalan sepanjang bulan, durasinya 730 jam, sehingga biayanya $321. Jika hanya berjalan selama jam kerja, yaitu 8 jam per hari selama 22 hari, durasinya 176 jam, sehingga biayanya $77.
Sekarang ubah pengurangan token menjadi pengurangan biaya. Pengurangan ini berlaku untuk token input. Token output diteruskan oleh proxy tanpa perubahan, sehingga tidak berubah sama sekali. Asumsikan token input mencakup 80% dari total biaya Anda, yang umum untuk coding agent, lalu periksa asumsi tersebut berdasarkan tagihan Anda sendiri. Penghematan biaya Anda adalah 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 agent bulanan Anda melewati 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 secara nyata, Anda memerlukan sekitar $1,030 per bulan sebelum kartu tersebut layak disewa.
Dua hal membuat hasilnya lebih baik daripada yang ditunjukkan tabel. Model ini tidak memerlukan 24 GB: build q4 berukuran sekitar 2.5 GB dan build bf16 sekitar 8 GB. Karena itu, kartu yang lebih kecil, atau GPU box yang sudah Anda jalankan untuk keperluan lain, menurunkan semua angka pada grafik tersebut. Selain itu, menghentikan instance saat tidak ada yang melakukan coding adalah langkah paling efektif, karena tindakan ini mengurangi biaya sewa sekitar tiga perempat.
Satu hal membuat hasilnya lebih buruk. Proses kompresi membutuhkan pekerjaan komputasi yang nyata. Setiap token yang dikompresi oleh model 4B harus dibaca lalu ditulis kembali, sehingga menambah latensi pada setiap turn agent. Pada kartu yang disewa berdasarkan jam, biaya ini muncul sebagai waktu tunggu, bukan sebagai baris pada tagihan. Karena itu, dampaknya mudah terlewat sampai Anda merasakannya.
Jika Anda sedang membandingkan jam penggunaan GPU sewaan dengan token API secara umum, perbandingan titik impas antara GPU VPS dan token API menghitung biaya inferensi itu sendiri dengan cara yang sama.
Menjalankan gateway Paritok pada VPS
Python 3.10 atau yang lebih baru diperlukan. Ubuntu 24.04 menyediakan 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 antarrilis. pip install paritok tanpa versi yang ditetapkan, atau git clone dari main, dapat menggunakan gateway yang berbeda minggu depan tanpa menyisakan catatan tentang gateway yang menghasilkan angka pengukuran Anda.
Backend default-nya adalah Ollama. Pull model tersebut, lalu beri nama pendek yang dicari proxy.
ollama pull paritok/paritok-4b-v1
ollama cp paritok/paritok-4b-v1 paritok-4b-v1Tulis paritok.yaml di sebelahnya. use_gpu_server: false memastikan kompresi berlangsung 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 serta perkiraan proxy sendiri tentang jumlah yang dihemat. Perlakukan perkiraan tersebut sebagai penilaian proxy terhadap 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 di paritok.yaml. Mengekspor variable tersebut saja membuat Codex tetap berkomunikasi langsung dengan provider. Tanda-tandanya adalah counter /stats yang tidak pernah bertambah selama Anda bekerja.
Pertahankan listener pada 127.0.0.1, bukan pada 0.0.0.0. Proxy meneruskan API key provider Anda ke upstream. 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 menggunakan 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 bagi Anda
Proyek ini juga menyediakan kompresi sebagai layanan. Atur use_gpu_server: true dengan API key, lalu model 4B berjalan pada hardware mereka dengan biaya $0.30 per juta token yang diproses. Menurut dokumentasi mereka, 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 mencapai model provider Anda. Self-hosting digunakan untuk menghindari jalur tersebut. Tentukan terlebih dahulu mana dari kedua hal ini yang ingin Anda prioritaskan sebelum mengatur flag tersebut. Perubahan flag hanya memerlukan satu baris, tetapi konsekuensinya tidak.
Cara mengukur kondisi Anda sebelum dan sesudah
Angka yang dipublikasikan adalah angka proyek, yang diperoleh dari harness proyek pada SWE-bench Lite. Repositori Anda bukan SWE-bench Lite. Lakukan pengukuran sendiri.
- Jalankan satu minggu kerja normal tanpa proxy dalam jalur permintaan. 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 baris yang dibaca dari cache. Output seharusnya relatif tetap karena tidak ada kompresi yang diterapkan padanya. Jika output berubah banyak, berarti ada perubahan lain selain proxy.
- Hitung tugas yang harus Anda kerjakan ulang. Ini adalah bagian kualitas dari pertukaran tersebut, dan tidak dilaporkan oleh dashboard mana pun.
- Tambahkan jam penggunaan GPU ke minggu kedua sebelum membandingkan totalnya.
Memisahkan input dari output penting karena keduanya memiliki harga yang sangat berbeda, sedangkan compressor hanya memengaruhi salah satunya. Per Agustus 2026, Claude Sonnet 4.6 berharga $3 per 1 juta token input dan $15 per 1 juta token output, sedangkan pembacaan prompt cache dikenai 10% dari tarif input, yaitu $0.30 per 1 juta token. 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 giliran pertama, blok tersebut biasanya menjadi cache hit dengan biaya 10% dari harga input. Menghapus 21,000 token dari blok yang tersimpan di cache menghemat biaya untuk 21,000 token dengan tarif $0.30 per 1 juta, atau sekitar $0.006 per giliran, bukan $0.063 seperti yang ditunjukkan oleh tarif tanpa cache. Proyek mempertahankan blok yang telah difilter tetap sama selama sesi agar prefix yang tersimpan di cache tidak berubah. Filter yang memilih ulang tool pada setiap giliran akan membatalkan prefix tersebut dan biayanya 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. Selain itu, karena tag pertama bertanggal July 2026, kode ini juga memiliki sangat sedikit riwayat operasional. 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. Karena itu, perlakukan angka tersebut secara berbeda dari angka yang Anda hasilkan sendiri.
Ada satu perilaku yang terdokumentasi dan perlu diketahui sebelum Anda menyalahkan konfigurasi. Model embedding yang digunakan oleh filter tool dimuat pada request pertama, bukan saat startup. Karena itu, proyek ini mendokumentasikan waktu pemanasan selama 10 hingga 15 detik, kemudian sekitar 15 ms per pemanggilan. Kirim satu request percobaan setelah proxy berjalan agar giliran agent pertama yang sebenarnya tidak terlihat macet.
Ada empat hal yang dapat Anda pastikan sendiri dalam satu sore: apakah proxy dapat start dan tetap berjalan, apakah /stats berubah selama Anda bekerja, apakah baris input-token dari provider Anda benar-benar berkurang, dan apakah agent tetap menyelesaikan pekerjaan. Hal-hal tersebut lebih menentukan untuk setup Anda daripada benchmark yang dipublikasikan.
Mengenai posisi tool ini dibandingkan tool lain yang Anda gunakan: gateway LiteLLM yang di-host sendiri merutekan dan mengukur request tanpa mengubah isinya. Jadi, keduanya menyelesaikan masalah yang berbeda dan dapat digunakan secara berantai, dengan Paritok berada paling dekat dengan agent. Jika tujuan sebenarnya adalah mengurangi tagihan, bukan menggunakan tool tertentu ini, serangkaian kontrol biaya yang lebih luas untuk agent pada VPS mencakup beberapa perubahan yang dapat dicoba terlebih dahulu tanpa biaya.
FAQ
Apakah Paritok mengurangi biaya API saya atau hanya penggunaan context?
Biaya berkurang karena proxy menulis ulang request sebelum mencapai provider, dan provider mengenakan biaya berdasarkan data yang diterimanya. Besarnya pengurangan tersebut lebih kecil daripada yang tersirat dalam angka utama. Angka 74% adalah tingkat kompresi pada konten yang dikompresi. Secara end-to-end, proyek ini melaporkan sekitar 25% pada satu turn dan 63% pada turn ke-20, dan hanya input token yang berubah. Output token diteruskan tanpa perubahan.
Berapa GPU yang saya perlukan untuk self-host compression model?
Build q4 berukuran sekitar 2.5 GB, sedangkan build bf16 sekitar 8 GB. Jadi, model dapat dimuat dalam card 24 GB dengan banyak ruang tersisa. Card 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 embedding model berukuran 130 MB yang berjalan pada CPU. Install paritok[toolselect] pada VPS biasa untuk mendapatkan pengurangan tool-block dengan tambahan penggunaan RAM yang kecil.
Apa yang terjadi jika compressor menghapus sesuatu yang diperlukan agent?
Tidak ada yang dihapus. Segmen yang dikompresi membawa tag [REF:id], dan model memulihkan teks lengkap menggunakan read_original atau expand_context. Tool schema yang difilter dibuat sebagai stub, bukan dihapus, dan model memulihkannya menggunakan 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 request pertama saya memerlukan waktu lima belas detik?
Embedding model di balik tool filter dimuat pada request pertama, bukan saat startup. Proyek ini mendokumentasikan waktu warm-up 10 hingga 15 detik, kemudian sekitar 15 ms per call. Kirim satu request percobaan dengan curl setelah menjalankan proxy agar turn agent pertama yang sebenarnya tidak tertunda.
Apakah saya sebaiknya menggunakan hosted GPU server, bukan self-hosting?
Pilihan ini menghilangkan biaya sewa GPU dan pemeliharaan, dengan tarif $0.30 per million token yang diproses per August 2026. Pilihan ini juga mengirim prompt dan file yang dibaca agent Anda ke pihak ketiga sebelum data tersebut mencapai model provider Anda. Jika Anda melakukan self-hosting untuk menjaga kode pada infrastruktur yang Anda kendalikan, pengaturan tersebut menghilangkan alasan Anda memulainya. Self-hosting menjaga context dan provider API key tetap berada pada server Anda sendiri.