Paritok token gateway: Giảm hóa đơn API cho coding agent
Paritok nén file đọc và output của tool trước khi gửi tới API. Dự án này tuyên bố giảm 74% số lượng token. Tìm hiểu cơ chế nén LoRA và bài toán hoàn vốn chi phí thực tế.
Paritok xử lý request như thế nào
Paritok là một token gateway: một proxy nằm giữa coding agent của bạn và model API, có nhiệm vụ nén từng request trước khi chuyển tiếp. Agent của bạn giao tiếp với http://127.0.0.1:8080 thay vì trực tiếp với nhà cung cấp. Proxy này viết lại các tool schema, các file đọc, output của tool và các lượt hội thoại cũ, gửi payload đã được thu nhỏ lên upstream, sau đó trả lại phản hồi nguyên vẹn cho bạn.
Nhà cung cấp tính phí dựa trên dữ liệu họ nhận được, vì vậy payload nhỏ hơn đồng nghĩa với hóa đơn thấp hơn. Đó là toàn bộ ý tưởng của công cụ này. Đây là một tuyên bố khác biệt so với việc "context của bạn kéo dài hơn", và đó là lý do tại sao công cụ này thú vị thay vì chỉ đơn thuần là gọn gàng.
Dự án này còn mới. Các tag công khai đầu tiên có từ tháng 7 năm 2026 và tag hiện tại là v1.3.0, ngày 5 tháng 8 năm 2026. Các file weights và mã nguồn gateway được cấp phép theo Apache 2.0. Model nén là một LoRA (low-rank adaptation) adapter chạy trên Qwen3-4B-Instruct-2507, được huấn luyện trên 45,000 mẫu chưng cất từ giáo viên (teacher-distilled) lấy từ các lộ trình thực tế của coding agent.
Tại sao đây không phải là cắt tỉa ngữ cảnh
Cắt tỉa là xóa bỏ. Khi một agent tiến gần đến giới hạn ngữ cảnh và loại bỏ các lượt hội thoại cũ nhất, file mà nó đã đọc ở lượt 3 sẽ biến mất. Nếu nó cần file đó ở lượt 20, nó phải đọc lại file đó, vì vậy bạn phải trả phí cho các token đó lần thứ hai. Khoản tiết kiệm đó chỉ là một khoản vay.
Paritok thay thế một phân đoạn bằng một dạng ngắn hơn kèm theo thẻ [REF:id], và giữ toàn bộ văn bản trên proxy. Model khôi phục phân đoạn bằng cách gọi read_original hoặc expand_context. Điều đó làm thay đổi cơ chế lỗi. Một trình cắt tỉa thất bại bằng cách quên, và nó không bao giờ báo cho bạn biết. Một trình nén thất bại bằng cách cung cấp cho model một bản tóm tắt bị mất dữ liệu, và model có thể yêu cầu bản gốc khi bản tóm tắt là không đủ.
Bộ lọc công cụ (tool filter) hoạt động theo cùng một cách. Các schema công cụ đã lọc được thay thế bằng stub thay vì bị xóa, và model khôi phục một công cụ bằng cách gọi gateway_search_tools. Điều này quan trọng vì một bộ lọc ẩn vĩnh viễn một công cụ sẽ làm thay đổi khả năng thực hiện của agent, và bạn sẽ chỉ biết về điều đó thông qua một tác vụ âm thầm thất bại.
Ba đòn bẩy và đòn bẩy nào miễn phí
Đòn bẩy thứ nhất là bộ lọc tool-schema. Mỗi request mang theo toàn bộ mảng tools. Trong một lượt chạy Claude Code với vài server MCP (model context protocol) được đính kèm, dự án đo được khối dữ liệu đó vào khoảng 29,000 token. Bộ lọc thực hiện embedding request của người dùng và mô tả của từng tool bằng BAAI/bge-small-en-v1.5, một mô hình embedding dung lượng 130 MB, giữ lại các tool phù hợp và thay thế phần còn lại bằng stub. Khối dữ liệu giảm xuống còn khoảng 8,000 token. Mô hình embedding đó chạy trên CPU.
Đòn bẩy thứ hai là nén nội dung, và đây là phần cần mô hình 4B trên GPU. Các file được đọc, output của tool và lịch sử được viết lại xuống còn 25.7% kích thước ban đầu. Đó là nơi con số 74% xuất hiện. Hãy đọc kỹ: 74% là tỷ lệ nén trên nội dung được nén, không phải mức giảm trên hóa đơn của bạn.
Đòn bẩy thứ ba là tóm tắt lịch sử. Khi ngân sách context đầy, các lượt hội thoại ngoài cửa sổ gần nhất sẽ được tóm tắt để phiên làm việc dài vẫn tiếp tục chạy thay vì chạm giới hạn.
Chỉ đòn bẩy thứ hai cần GPU. Đó là câu hữu ích nhất trên trang này. pip install "paritok[toolselect]" cung cấp cho bạn bộ lọc tool trên một VPS CPU thông thường, và đó là một nửa của sản phẩm không tốn phí hàng tháng của bạn. Hãy thử nó trước khi bạn thuê một card đồ họa.
Dự án đã đo lường những gì và trên bộ công cụ nào
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
}
]Đây là các số liệu do chính dự án công bố, được đo lường trên bộ công cụ riêng của họ đối với SWE-bench Lite. Paritok-4B-v1 nén nội dung xuống còn 25.7% kích thước gốc trong khi vẫn giữ được 86.5% tỷ lệ giải quyết so với khi không nén. Việc sử dụng gpt-5 làm bộ nén giúp giữ lại chất lượng cao hơn, đạt 93.6%, nhưng chỉ nén xuống còn 61.9%, và bạn sẽ phải trả mức giá của các model đầu bảng chỉ để tiết kiệm chi phí cho chính các model đó.
Hãy đọc cột chất lượng một cách nghiêm túc. Việc giữ lại 86,5% tỷ lệ giải quyết đồng nghĩa với việc các lượt chạy nén đã thất bại ở những bài toán mà lượt chạy không nén giải quyết được, gần như là một trong bảy bài toán. Trên một benchmark, đó chỉ là một con số trong bảng. Trên repository của bạn, đó là một tác vụ mà bạn phải chạy hai lần.
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
}
]Mức tiết kiệm tổng thể tăng dần khi phiên làm việc kéo dài, vì lịch sử tích lũy và lịch sử chính là thứ đang được nén. Dự án báo cáo mức tiết kiệm khoảng 25% trong một lượt, 39% ở lượt thứ 5, và 63% ở lượt thứ 20. Dự án cũng nêu rõ điểm dừng của mức tăng trưởng này: với ngân sách 200.000 token, mức tiết kiệm tuyệt đối sẽ chững lại ở khoảng 48.000 token mỗi lượt, rơi vào khoảng lượt thứ 8 đến 12, vì một khi context đã đầy thì lịch sử sẽ ngừng tăng. Con số "hơn 85%" được trích dẫn rộng rãi mô tả các phiên làm việc đã bão hòa context. Đó là trường hợp tốt nhất, vì vậy đừng lập kế hoạch dựa trên con số đó.
GPU 24GB có đáng tiền cho Paritok không?
Card 24 GB là đơn vị thuê tiêu chuẩn cho một model kích thước này. Tính đến ngày 7 tháng 8 năm 2026, giá on-demand trung bình cho một RTX 4090 với 24 GB là $0.44 mỗi giờ, với các danh sách rẻ nhất gần mức $0.20. Hãy lấy mức $0.44. Nếu chạy liên tục cả tháng, bạn mất 730 giờ, tương đương $321. Nếu chỉ chạy trong giờ làm việc, 8 giờ mỗi ngày trong 22 ngày, bạn mất 176 giờ, tương đương $77.
Bây giờ hãy chuyển đổi mức cắt giảm token thành mức cắt giảm chi phí bằng đô la. Mức giảm này áp dụng cho các input token. Output token đi qua proxy mà không bị thay đổi, vì vậy chúng không ảnh hưởng đến chi phí. Giả sử input token chiếm 80% tổng hóa đơn của bạn, đây là mức bình thường đối với một coding agent, và hãy kiểm tra giả định đó với hóa đơn thực tế của bạn. Khoản tiết kiệm đô la của bạn khi đó bằng mức giảm token nhân với 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
}
]Tại con số 85% cho phiên làm việc bão hòa, bạn giữ lại 68% hóa đơn, vì vậy một card chạy liên tục sẽ tự hoàn vốn khi chi tiêu hàng tháng cho agent của bạn vượt quá khoảng $472, hoặc khoảng $114 nếu bạn dừng instance ngoài giờ làm việc. Tại con số 63% cho turn-20, các mức này trở thành $637 và $154. Tại con số 39% cho turn-5, đây là những gì thực tế diễn ra trong các phiên ngắn, bạn cần khoảng $1,030 mỗi tháng trước khi việc thuê card trở nên đáng giá.
Hai yếu tố làm cho kết quả này tốt hơn so với bảng gợi ý. Model không cần tới 24 GB: bản build q4 chỉ khoảng 2.5 GB và bản build bf16 khoảng 8 GB, vì vậy một card nhỏ hơn, hoặc một GPU box bạn đã chạy cho mục đích khác, sẽ làm giảm mọi con số trong bảng đó. Và việc dừng instance khi không có ai lập trình là đòn bẩy lớn nhất ở đây, vì nó cắt giảm chi phí thuê khoảng ba phần tư.
Một yếu tố làm cho kết quả tệ hơn. Quá trình nén là công việc thực sự. Mỗi token mà model 4B nén là một token mà nó phải đọc và sau đó ghi, điều này làm tăng độ trễ cho mỗi lượt agent. Trên một card bạn thuê theo giờ, chi phí đó xuất hiện dưới dạng thời gian chờ đợi, không phải là một dòng trên hóa đơn, vì vậy rất dễ bỏ qua cho đến khi bạn cảm nhận được nó.
Nếu bạn đang cân nhắc giữa giờ thuê GPU và API token nói chung, điểm hòa vốn giữa một GPU VPS và API token thực hiện cùng một phép tính cho chính việc inference.
Chạy Paritok gateway trên VPS
Bạn cần Python 3.10 trở lên. Ubuntu 24.04 đã có sẵn Python 3.12, nên một image VPS mặc định là đủ cho phần chỉ chạy 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"Hãy ghim phiên bản. Repository đã gắn tag v1.2.8 vào ngày 29 tháng 7 năm 2026 và v1.3.0 vào ngày 5 tháng 8 năm 2026. Một dự án có tốc độ phát triển như vậy thường đổi tên các khóa cấu hình giữa các bản release. Một lệnh pip install paritok đơn thuần, hoặc một git clone của main, sẽ cung cấp cho bạn một gateway khác vào tuần tới và không để lại ghi chép nào về phiên bản đã tạo ra các con số bạn đã đo lường.
Backend mặc định là Ollama. Hãy pull model về, sau đó đặt cho nó cái tên ngắn gọn mà proxy yêu cầu.
ollama pull paritok/paritok-4b-v1
ollama cp paritok/paritok-4b-v1 paritok-4b-v1Viết paritok.yaml bên cạnh nó. use_gpu_server: false là thứ giúp duy trì việc nén dữ liệu trên phần cứng của chính bạn.
use_gpu_server: false
local_model:
base_url: http://localhost:11434paritok proxy --port 8080 --config-file paritok.yamlparitok up là phím tắt cho tất cả các bước trên: nó tự động pull model nếu thiếu và khởi động proxy trên cổng 8080. Hãy kiểm tra proxy trước khi trỏ agent vào đó.
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/stats/health trả về một object JSON nhỏ chứa "status":"ok" và một chuỗi phiên bản. /stats trả về tổng dung lượng nén và ước tính của proxy về lượng dữ liệu đã tiết kiệm được. Hãy coi ước tính đó là cách proxy tự đánh giá công việc của mình và đối chiếu lại với trang thống kê sử dụng của nhà cung cấp.
Để đạt throughput cao thay vì sự tiện lợi, vLLM sẽ phục vụ adapter trên nền model cơ sở.
vllm serve Qwen/Qwen3-4B-Instruct-2507 \
--enable-lora \
--lora-modules paritok-4b-v1=paritok/paritok-4b-v1 \
--port 8000Ollama nhanh hơn khi thiết lập. vLLM xử lý các request đồng thời tốt hơn nhiều, điều này bắt đầu trở nên quan trọng ngay khi có nhiều hơn một agent dùng chung máy chủ. Sự khác biệt thực tế giữa Ollama và vLLM là yếu tố quyết định lựa chọn này cho bạn.
Trỏ agent vào proxy bằng các biến môi trường base URL.
export ANTHROPIC_BASE_URL=http://127.0.0.1:8080
export OPENAI_BASE_URL=http://127.0.0.1:8080Codex CLI bỏ qua OPENAI_BASE_URL, vì vậy dự án sẽ tự viết ~/.codex/config.toml cho bạn khi codex.enabled: true được thiết lập trong paritok.yaml. Nếu chỉ export biến này, Codex sẽ vẫn giao tiếp trực tiếp với nhà cung cấp, và dấu hiệu nhận biết là bộ đếm /stats không bao giờ thay đổi trong khi bạn làm việc.
Luôn để listener ở 127.0.0.1, không bao giờ để ở 0.0.0.0. Proxy sẽ chuyển tiếp API key của nhà cung cấp lên upstream, vì vậy nếu proxy có thể truy cập từ internet, nó sẽ trở thành một open relay cho key đó: bất kỳ ai tìm thấy cổng này đều có thể tiêu tiền của bạn mà không cần nhìn thấy key. Hãy truy cập nó từ laptop thông qua SSH tunnel hoặc VPN thay vì mở cổng ra ngoài.
Chạy nó dưới quyền systemd để service tự khởi động sau khi reboot. Hãy điều chỉnh các đường dẫn cho khớp với cài đặt của bạn.
[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.targetEnable nó bằng sudo systemctl enable --now paritok, sau đó curl /health một lần nữa. Một unit khởi động rồi thoát ngay lập tức thường có nghĩa là đường dẫn file cấu hình bị sai, và journalctl -u paritok -n 50 sẽ in ra lý do.
Tùy chọn hosted và chi phí bạn phải trả
Dự án này cũng cung cấp dịch vụ nén dữ liệu. Thiết lập use_gpu_server: true với một API key, mô hình 4B sẽ chạy trên phần cứng của họ với giá $0.30 cho mỗi triệu token được xử lý. Theo tài liệu của dự án, dịch vụ này miễn phí cho đến hết tháng 8 năm 2026. Cách này giúp bạn không phải thuê GPU và loại bỏ toàn bộ các công việc vận hành nêu trên.
Điều này cũng đồng nghĩa với việc các prompt và file mà agent của bạn đọc sẽ rời khỏi máy của bạn và đi qua một bên thứ ba trước khi đến được nhà cung cấp mô hình. Việc tự host (self-hosting) tồn tại chính là để tránh bước trung gian đó. Hãy quyết định xem bạn đang ưu tiên yếu tố nào trước khi thiết lập flag đó, vì việc thay đổi flag chỉ mất một dòng lệnh nhưng hậu quả thì không đơn giản như vậy.
Cách tự đo lường hiệu quả trước và sau khi sử dụng
Các con số được công bố là số liệu của dự án, lấy từ bộ công cụ kiểm thử của dự án trên SWE-bench Lite. Repository của bạn không phải là SWE-bench Lite. Hãy tự đo lường.
- Chạy một tuần bình thường mà không có proxy trong luồng xử lý. Ghi lại số lượng input tokens, cache-read tokens và output tokens thành các dòng riêng biệt từ trang thống kê sử dụng của nhà cung cấp, thay vì chỉ ghi tổng chi phí bằng tiền.
- Chạy tuần tiếp theo với proxy ở phía trước, thực hiện cùng loại công việc.
- So sánh các dòng input và cache-read. Output tokens sẽ gần như không đổi vì không có gì nén phần này. Nếu output thay đổi đáng kể, có nghĩa là có yếu tố khác ngoài proxy đã thay đổi.
- Đếm số lượng tác vụ bạn phải làm lại. Đây là phần đánh giá chất lượng, và không có dashboard nào báo cáo chỉ số này.
- Cộng thêm số giờ GPU vào tuần thứ hai trước khi so sánh tổng chi phí.
Việc tách biệt input và output là quan trọng vì giá của hai loại này rất khác nhau và bộ nén chỉ tác động lên một trong hai. Tính đến tháng 8 năm 2026, Claude Sonnet 4.6 có giá 3 USD cho mỗi triệu input tokens và 15 USD cho mỗi triệu output tokens, còn prompt-cache read có giá bằng 10% mức giá input, tức 0,30 USD cho mỗi triệu token. Khoảng cách chi phí giữa input và output token là yếu tố quyết định liệu bộ nén phía input có đáng giá với bạn hay không. Nơi các token của Claude Code thực sự tiêu tốn sẽ cho bạn biết phần nào trong context của bạn đủ lớn để cần phải nén.
Prompt caching làm cho việc tính toán bộ lọc công cụ trở nên phức tạp hơn. Khối công cụ (tool block) nằm ở đầu request, vì vậy sau lượt đầu tiên, nó thường là một cache hit với giá bằng 10% giá input. Việc cắt giảm 21.000 token từ một khối đã cache sẽ tiết kiệm được 21.000 token với giá 0,30 USD mỗi triệu, khoảng 0,006 USD mỗi lượt, thay vì 0,063 USD như mức giá không cache. Dự án giữ cho khối đã lọc được cố định trong suốt phiên làm việc để phần tiền tố (prefix) đã cache không bị thay đổi. Một bộ lọc chọn lại công cụ sau mỗi lượt sẽ làm mất hiệu lực của tiền tố đó và chi phí sẽ cao hơn số tiền tiết kiệm được.
Những điều chưa được kiểm chứng
Mọi con số hiệu năng nêu trên đều do chính dự án cung cấp. Hiện chưa có bên độc lập nào tái lập kết quả SWE-bench Lite, và với các tag đầu tiên từ tháng 7 năm 2026, mã nguồn này cũng chưa có nhiều lịch sử vận hành thực tế. Tỷ lệ nén và chỉ số chất lượng được giữ lại đều do bên hưởng lợi từ các con số này đo đạc. Điều đó không có nghĩa là chúng sai. Nó chỉ có nghĩa là chúng chưa được xác nhận, và bạn nên nhìn nhận chúng khác với những con số do chính bạn tự đo.
Có một hành vi đã được ghi nhận mà bạn cần biết trước khi đổ lỗi cho cấu hình của mình. Embedding model mà công cụ này sử dụng sẽ load khi có request đầu tiên thay vì load lúc khởi động, vì vậy dự án ghi chú cần khoảng 10 đến 15 giây để warm-up, sau đó mỗi lần gọi chỉ mất khoảng 15 ms. Hãy gửi một request nháp sau khi proxy khởi động để lượt chạy agent thực tế đầu tiên của bạn không bị treo.
Có bốn thứ bạn có thể tự kiểm tra trong một buổi chiều: liệu proxy có khởi động và duy trì trạng thái hay không, liệu /stats có thay đổi trong khi bạn làm việc không, liệu hạn mức input-token của nhà cung cấp có thực sự giảm xuống không, và liệu agent có hoàn thành công việc hay không. Những yếu tố này quyết định hiệu quả cho hệ thống của bạn tốt hơn bất kỳ benchmark nào được công bố.
Về vị trí của công cụ này so với các công cụ khác của bạn: một LiteLLM gateway tự host sẽ định tuyến và đo lường các request mà không làm thay đổi nội dung của chúng, vì vậy hai công cụ này giải quyết các vấn đề khác nhau và có thể kết hợp với nhau, trong đó Paritok sẽ nằm gần agent nhất. Nếu mục tiêu thực sự là giảm hóa đơn thay vì dùng công cụ cụ thể này, bộ các biện pháp kiểm soát chi phí rộng hơn cho một agent trên VPS bao gồm một vài thay đổi mà bạn có thể thử trước mà không tốn kém gì.
FAQ
Paritok giúp giảm hóa đơn API hay chỉ giảm lượng context sử dụng?
Nó giúp giảm hóa đơn, vì proxy viết lại request trước khi gửi đến nhà cung cấp và nhà cung cấp tính phí dựa trên những gì họ nhận được. Mức giảm thực tế thấp hơn con số quảng cáo. Tỷ lệ 74% là tỷ lệ nén trên nội dung được nén. Xét tổng thể, dự án báo cáo mức giảm khoảng 25% cho một lượt trao đổi và 63% ở lượt thứ 20, và chỉ các input token mới bị ảnh hưởng. Output token được giữ nguyên.
Tôi cần bao nhiêu GPU để tự host model nén?
Bản build q4 chiếm khoảng 2.5 GB và bản bf16 khoảng 8 GB, nên model có thể chạy trên card 24 GB với rất nhiều tài nguyên dư thừa. Một card nhỏ hơn vẫn hoạt động tốt và giúp bài toán chi phí có lợi cho bạn hơn. Bộ lọc tool-schema không cần GPU: nó sử dụng BAAI/bge-small-en-v1.5, một model embedding 130 MB chạy trên CPU. Cài đặt paritok[toolselect] trên một VPS thông thường là bạn đã có thể giảm dung lượng tool-block với chi phí chỉ là một ít RAM.
Điều gì xảy ra nếu bộ nén loại bỏ thứ mà agent cần?
Không có gì bị loại bỏ cả. Các phân đoạn được nén sẽ mang thẻ [REF:id] và model sẽ khôi phục toàn bộ văn bản bằng read_original hoặc expand_context. Các tool schema đã lọc được thay thế bằng stub thay vì bị xóa, và model sẽ khôi phục lại bằng gateway_search_tools. Rủi ro thực sự không phải là mất file: model làm việc dựa trên bản tóm tắt có mất mát dữ liệu (lossy) và không bao giờ nhận ra nó cần yêu cầu bản gốc. Đó chính là điều mà con số 86.5% tỷ lệ duy trì chất lượng trên SWE-bench Lite đang đo lường.
Tại sao request đầu tiên của tôi mất mười lăm giây?
Model embedding đằng sau bộ lọc tool được load ở request đầu tiên thay vì lúc khởi động. Dự án ghi nhận thời gian warm-up từ 10 đến 15 giây, sau đó chỉ mất khoảng 15 ms cho mỗi lần gọi. Hãy gửi một request rác bằng curl sau khi khởi động proxy, lượt agent thực tế đầu tiên sẽ không bị khựng.
Tôi có nên dùng server GPU được host sẵn thay vì tự host không?
Nó giúp bạn loại bỏ chi phí thuê GPU và bảo trì, với giá $0.30 cho mỗi triệu token được xử lý tính đến tháng 8 năm 2026. Tuy nhiên, nó cũng gửi prompt và các file mà agent của bạn đọc đến bên thứ ba trước khi chúng đến nhà cung cấp model. Nếu bạn tự host để giữ code trên hạ tầng do mình kiểm soát, việc sử dụng dịch vụ này sẽ làm mất đi mục đích ban đầu của bạn. Tự host giúp giữ cả context và API key của nhà cung cấp trên chính máy chủ của bạn.