## 💰 ~1,62 Tỷ Token / Tháng Trên Các Gói Miễn Phí Của Bên Thứ Ba
> **Sử dụng tài khoản nhà cung cấp của riêng bạn.** Đây là tổng ước tính từ các gói miễn phí riêng biệt của bên thứ ba mà bạn đủ điều kiện sử dụng, không phải khoản token do OmniRoute cấp. Hãy đăng ký, lấy thông tin xác thực khi được yêu cầu và kết nối các nhà cung cấp mà bạn có thể sử dụng; mỗi nhà cung cấp tự kiểm soát hạn mức, tính khả dụng và điều khoản của mình.
>
> Việc kết hợp thủ công các gói miễn phí rất phiền phức — hàng chục SDK, hàng chục giới hạn tốc độ và không thể biết bạn thực sự có bao nhiêu. OmniRoute lập danh mục **489 mục gói miễn phí thuộc 35 khóa nhóm định kỳ** và tính tổng token nổi bật từ **17 nhóm có ngân sách hằng tháng dương được công bố cùng năm hạn mức Groq theo từng mô hình**, đồng thời loại bỏ trùng lặp theo nhóm dùng chung. Các hạn ngạch chỉ được mở sau khi xác minh danh tính theo khu vực (hiện tại: ModelScope) được hiển thị riêng, +~6M sau bước xác minh danh tính theo khu vực, và không bao giờ được cộng vào con số nổi bật. Kết quả luôn hiển thị trên bảng điều khiển (`/dashboard/free-tiers`).
> Bản tóm tắt động của trang `/dashboard/free-tiers` trực tiếp. Phương pháp đầy đủ (loại bỏ trùng lặp theo nhóm, các cấp tín dụng, điều khoản nhà cung cấp): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Các số liệu này được kiểm tra lại hai tuần một lần dựa trên danh mục trực tiếp và **có thể thay đổi theo cả hai chiều** — một nhà cung cấp chấm dứt gói miễn phí thì con số giảm xuống; một gói mới xuất hiện thì con số tăng lên. Chúng tôi công bố đúng những gì danh mục thực sự tính toán, không bao giờ dùng trường hợp tốt nhất đã được làm tròn lên.
⭐ Hãy gắn sao cho repo nếu OMNIROUTE đã giúp bạn tiết kiệm chi phí và làm việc dễ dàng hơn.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Tham gia cộng đồng
**👋 Theo dõi người bảo trì — nhận thông tin về nhà cung cấp mới, bản phát hành và mẹo sớm nhất:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Câu hỏi, mẹo về nhà cung cấp, lộ trình và hỗ trợ → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Toàn cầu](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Cổng thông tin](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Cổng kết nối không ngừng phát triển
| | v3.8.50 | **v3.8.51** | `v3.8.52+` |
| --------------------------------- | :----------------------------: | :---------: | :-------------------: |
| 🌐 Nhà cung cấp | 352 | **358** | 372 |
| 🧠 ID mô hình trò chuyện duy nhất | 1320 | **1374** | 1443 |
| 🖼️ Cầu nối phương thức | 🆕 hình ảnh + âm thanh + video | ✓ | ✓ |
| 📡 Danh mục Radar miễn phí | 🆕 tùy chọn tham gia | ✓ | ✓ |
| ⚖️ Lập lịch có xét hạn ngạch | 🆕 Chia sẻ hạn ngạch | ✓ | ✓ |
| 📊 Dữ liệu đo hạn ngạch | 🆕 theo thời gian thực | ✓ | ✓ |
| 🧰 Chế độ không giao diện | — | — | 🆕 `serve --headless` |
| 🛤️ Hạ tầng nhánh LTS | — | — | 🆕 các kênh phát hành |
**→ [Lộ trình](ROADMAP.md) — tiến theo lộ trình đến `v3.9.0 LTS`**
## 🧩 Có sẵn
[](https://www.npmjs.com/package/omniroute)

[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](LICENSE)


## 🆓 Cài đặt, kết nối nhà cung cấp, rồi định tuyến qua một endpoint
```bash
# Sau khi kết nối nhà cung cấp, hãy sao chép khóa OmniRoute của bạn từ Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` cần một tuyến đủ điều kiện. Một bản cài đặt mới có thể không có đích không cần khóa nào đủ điều kiện, và nhà cung cấp không cần khóa có thể từ chối các ứng dụng khách bên thứ ba. Các nhà cung cấp được đánh dấu `tos: avoid`, bao gồm OpenCode Free và Kiro, mặc định bị loại khỏi định tuyến tự động; việc kết nối tài khoản không ghi đè cài đặt đó. Hãy xem [Hướng dẫn về các gói miễn phí](docs/getting-started/FREE-TIERS-GUIDE.md) trước khi chọn nhà cung cấp.📦 Các tập lệnh khởi động nhanh có thể sao chép-dán cho **Python, Node.js, PHP và cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Cam kết
# 🤔 Tại sao chọn OmniRoute?
## 🤝 Được hỗ trợ bởi những người bạn mã nguồn mở của chúng tôi
> **Bạn muốn tham gia với tư cách là một Người bạn mã nguồn mở?** Đây là những công ty ủng hộ mã nguồn mở và giúp OmniRoute tiếp tục hoạt động — và chúng tôi công khai nơi mọi khoản đóng góp của họ được sử dụng. Liên hệ: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Cảm ơn Kimi (Moonshot AI), Người bạn mã nguồn mở sáng lập của chúng tôi, đã ủng hộ dự án này! Kimi là phòng thí nghiệm AI đứng sau các dòng mô hình K2 và K3 có trọng lượng mở — Kimi K3 cung cấp cửa sổ ngữ cảnh 1M-token, tầm nhìn gốc và mã hóa cấp độ tiên tiến với chi phí thấp hơn nhiều so với các mô hình đóng, và hoạt động ngay lập tức với Claude Code, Codex và mọi công cụ mã hóa mà OmniRoute phục vụ.
Hỗ trợ của Kimi cung cấp: Các khoản tín dụng API của Kimi cung cấp năng lượng cho quy trình phát hành được AI xác thực của OmniRoute — giai đoạn xác thực hợp nhất được cung cấp bởi Kimi K3 xem xét mọi yêu cầu kéo trước khi nó được xuất bản — cộng với việc phát triển tính năng hàng ngày. Hỗ trợ Kimi hạng nhất được vận chuyển trên cả hai đường ray: API Kimi trực tiếp (kimi-k3) và gói mã hóa Kimi Code (OAuth và khóa API). OmniRoute cũng là dự án mã nguồn mở đầu tiên của Brazil trong chương trình hỗ trợ của Kimi. Nhận khóa API Kimi với 15% tín dụng bổ sung →
Cheaper Inference cheaperinference.com
Cảm ơn Cheaper Inference, một Người bạn mã nguồn mở của OmniRoute, đã ủng hộ dự án này! Cheaper Inference là một cổng xếp hạng chi phí bán lại 42 mô hình tiên tiến — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok và MiniMax — đằng sau một điểm cuối tương thích với OpenAI, định tuyến mỗi yêu cầu đến nhà cung cấp đủ điều kiện rẻ nhất mà không bao giờ tính phí cao hơn giá niêm yết của nhà sản xuất mô hình.
Hỗ trợ hạng nhất trong OmniRoute: Chat Completions, điểm cuối /v1/responses gốc, tầm nhìn, gọi công cụ và 3 mô hình hình ảnh (grok-imagine, nano-banana-pro, nano-banana-2, có thể truy cập dưới dạng cheaperinference/<model>). Nhận khóa API →
Các liên kết được gắn thẻ aff=omniroute là liên kết đối tác. Chúng tài trợ cho dự án mà không tốn thêm chi phí cho bạn. 🎟️ Khuyến mãi liên kết — phiếu đăng ký miễn phí từ các nhà cung cấp mà chúng tôi không tài trợ (nhấp để mở rộng)Phần này chỉ dành cho mã giới thiệu/phiếu giảm giá. Các đối tác tài trợ nằm trong phần 🤝 Được hỗ trợ bởi những người bạn mã nguồn mở của chúng tôi ở trên. OmniRoute không có bất kỳ sự tài trợ hoặc hợp tác nào với các nhà cung cấp được liệt kê ở đây — đây là các phiếu giảm giá công khai mà bất kỳ ai cũng có thể sử dụng.
AgentRouter agentrouter.org
AgentRouter — đăng ký liên kết · $100 tín dụng miễn phí khi đăng ký (máy chủ miễn phí, có thể có độ trễ cao hơn — tốt nhất để thử nghiệm, không phải sản xuất). Hỗ trợ hạng nhất trong OmniRoute kể từ v3.8.50: Chat Completions, định dạng dây tương thích với Anthropic và đường dẫn tương thích với OpenAI. Các mô hình có sẵn bao gồm claude-opus-4-8, claude-opus-5, gpt-5.6-sol và nhiều hơn nữa. Nhận $100 của bạn →
⚠️ Liên kết liên kết — OmniRoute không có bất kỳ sự tài trợ hoặc hợp tác nào với nhà cung cấp này.
Bạn có biết nhà cung cấp nào khác có phiếu đăng ký miễn phí hào phóng mang lại lợi ích cho người dùng OmniRoute không? Mở một vấn đề và chúng tôi sẽ thêm nó vào đây.
## 🎯 Combo — Tính năng chủ lực
> **Combo** là một chuỗi mô hình mà OmniRoute định tuyến qua một cách **tự động**. Nếu hết hạn mức, nhà cung cấp gặp sự cố hoặc chi phí tăng đột biến, combo có thể chuyển sang mô hình đủ điều kiện và đang hoạt động tốt tiếp theo. 🛡️
### ⚡ Không cần cấu hình — chỉ cần dùng `auto`
Không cần tạo combo. Đặt mô hình của bạn thành `auto` (hoặc một biến thể) và OmniRoute sẽ xây dựng một combo ảo từ các nhà cung cấp đã kết nối, được chấm điểm theo thời gian thực:
ID mô hình
Tiêu chí tối ưu
auto
🎯 Mặc định cân bằng (LKGP — tiếp tục dùng nhà cung cấp tốt gần nhất)
auto/coding
🧑💻 Trọng số ưu tiên chất lượng để sinh mã
auto/fast
⚡ Ưu tiên độ trễ thấp nhất
auto/cheap
💰 Ưu tiên chi phí thấp nhất trên mỗi token
auto/offline
🔋 Ưu tiên mức dư hạn mức / giới hạn tốc độ lớn nhất
auto/smart
🔭 Ưu tiên chất lượng + 10% khám phá để tìm các mô hình tốt hơn
auto/lkgp
📌 Bám rõ ràng vào nhà cung cấp tốt gần nhất
auto/chaos
🧪 Phân tán song song đến một nhóm mô hình (mỗi nhà cung cấp một mô hình, mặc định là 5), trả về một câu trả lời; mỗi mô hình trong nhóm thực hiện một lệnh gọi ngược dòng, không phải chèn lỗi
##
### 🔀 Hoặc tự xây dựng — 19 chiến lược định tuyến
Toàn bộ **19** chiến lược — kết hợp tùy ý cho từng bước của combo:
#
Chiến lược
Chức năng
1
priority
Danh sách có thứ tự ưu tiên mục tiêu đầu tiên — dùng hết từng mục tiêu trước khi chuyển sang mục tiêu tiếp theo 🥇
2
fill-first
Dùng hết hạn mức của từng mục tiêu trước khi chuyển tiếp
3
weighted
Chọn ngẫu nhiên có trọng số theo trọng số của từng mục tiêu
4
round-robin
Luân phiên qua các mục tiêu theo thứ tự
5
p2c
Cân bằng tải ngẫu nhiên theo phương pháp chọn một trong hai
6
least-used
Chọn mục tiêu có tải hiện tại thấp nhất
7
random
Chọn ngẫu nhiên đồng đều (đã loại bỏ trùng lặp)
8
strict-random
Chọn ngẫu nhiên mà không loại bỏ các lần lặp 🎲
9
cost-optimized
Giảm thiểu chi phí $ trên mỗi yêu cầu dựa trên giá trực tiếp trong danh mục 💸
10
headroom
Chọn mục tiêu có hạn mức còn lại nhiều nhất
11
reset-window
Ưu tiên mục tiêu có khung thời gian hạn mức được đặt lại sớm nhất
12
reset-aware
Xếp hạng theo thời điểm đặt lại hạn mức — ưu tiên các khung thời gian ngắn 📊
13
context-relay
Chuyển tiếp ngữ cảnh giữa các mục tiêu cho những cuộc hội thoại dài 🧠
14
context-optimized
Chọn mục tiêu phù hợp nhất với kích thước ngữ cảnh hiện tại
15
cache-optimized
Gắn cố định từng tiền tố prompt có thể tái sử dụng vào cùng một tài khoản — tối đa hóa số lần trúng bộ nhớ đệm prompt 🎯
16
lkgp
Đường dẫn tốt gần nhất — gắn cố định vào nhà cung cấp thành công gần nhất, sau đó dự phòng theo các quy tắc
17
auto
Chấm điểm trực tiếp theo 16 yếu tố trên mọi kết nối 🤖
18
fusion
Phân tán yêu cầu đến một nhóm mô hình + một mô hình đánh giá tổng hợp thành một câu trả lời 🧬
19
pipeline
Xâu chuỗi các bước — đầu ra của mỗi mục tiêu được đưa vào mục tiêu tiếp theo 🔗
Công cụ Auto-Combo chấm điểm từng ứng viên dựa trên **16 yếu tố** (tình trạng hoạt động, hạn mức, chi phí, độ trễ, mức độ phù hợp với tác vụ, chất lượng, tính khả dụng của phiên…) — xem [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Khả năng phục hồi được tích hợp sẵn (3 lớp độc lập)
📖 [Công cụ Auto-Combo](docs/routing/AUTO-COMBO.md) · [Hướng dẫn về khả năng phục hồi](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Điều gì làm nên sự khác biệt của OmniRoute
📊 Phương pháp luận đầy đủ & chi tiết theo từng tính năng so với 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Hỗ trợ OmniRoute
OmniRoute được cấp phép theo MIT và được duy trì công khai. Nếu dự án giúp bạn tiết kiệm thời gian hoặc tiền bạc, đây là cách để giúp dự án duy trì tính độc lập — hãy chọn phương thức phù hợp với bạn. Việc tài trợ không bao giờ ảnh hưởng đến mức độ ưu tiên định tuyến; nó mang lại khả năng hiển thị, không phải thứ hạng.
**🇧🇷 PIX** — tức thì, không mất phí (Brazil)
Khóa (ngẫu nhiên): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix sao chép và dán:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Tiền mã hóa — BTC · ETH · USDT-TRC20 · USDC-Solana (nhấp để mở rộng)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Chỉ gửi từng loại tiền trên đúng mạng được hiển thị — gửi sai mạng có thể làm mất tiền.
🐛 Bạn phát hiện lỗi hoặc có phản hồi? Hãy mở một [Thảo luận](https://github.com/diegosouzapw/OmniRoute/discussions).
Ghi chú dành cho nhà phát triển: Dự án có thể tạo tệp .env cục bộ trong quá trình npm install/postinstall để thuận tiện cho nhà phát triển. Tệp này được chủ ý bỏ qua thông qua .gitignore (xem .gitignore) và tuyệt đối không được commit — nếu vô tình commit, hãy thay đổi mọi thông tin bí mật đã bị lộ và xóa tệp khỏi lịch sử. Xem docs/DEVELOPER-ENVIRONMENT.md để biết hướng dẫn về cách quản lý các tệp môi trường cục bộ và thông tin bí mật.
## 📡 OmniRoute Radar
Tiêu điểm chính của gói miễn phí vẫn là **~1.62B token/tháng** từ danh mục đã được lập tài liệu và loại bỏ trùng lặp theo nhóm ở trên. Khoản tín dụng đăng ký tạm thời của nhà cung cấp có thể giúp riêng tháng đầu tiên tăng lên **~2.22B**. Radar là một lớp phủ danh mục tùy chọn, có chữ ký, dành cho những người muốn cập nhật nhanh hơn về tình trạng sẵn có của các mô hình miễn phí giữa các bản phát hành OmniRoute; danh mục cộng đồng và mọi tính năng miễn phí hiện có vẫn hoàn toàn miễn phí.
Những người ủng hộ có thể nhận danh mục trực tiếp và các cơ hội bổ sung từ nhà cung cấp. Mức trần riêng, có thể thay đổi của danh mục này là **tối đa khoảng 3B token/tháng**, tùy thuộc vào tình trạng sẵn có của nhà cung cấp. Mức trần đó không phải là sự bảo đảm: nhà cung cấp có thể thay đổi hạn ngạch, điều kiện đủ tư cách, mô hình hoặc khu vực bất cứ lúc nào.
Radar hoạt động theo cơ chế chọn tham gia và chỉ sử dụng GET. Ứng dụng khách OmniRoute không tải lên prompt, lưu lượng truy cập, cấu hình nhà cung cấp, dữ liệu đo từ xa về mức sử dụng hoặc trạng thái cục bộ về việc bỏ qua thông báo. Tìm hiểu về điều kiện đủ tư cách và danh mục hiện tại tại **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Có gì mới
> Những điểm nổi bật gần đây từ **v3.8.20 → v3.8.50**. Xem toàn bộ lịch sử trong [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — ủy quyền A2A đầu vào cho đội tác nhân của bạn, các kỹ năng Conductor trên Agent Card và bảng điều khiển có tính năng trò chuyện thoại nhấn-để-nói Faro. → [Máy chủ A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Kiểm soát tiếp nhận thích ứng & bảo vệ quá tải** — các yêu cầu trò chuyện nặng được đưa vào hàng đợi thay vì trả về lỗi 503, với các lease RPM cuốn chiếu nguyên tử cho từng kết nối. → [Hướng dẫn khả năng phục hồi](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Thứ tự `/v1/models` chuẩn hóa** — mỗi nhà cung cấp có một khối liền mạch được nhóm theo nhà cung cấp (các combo được ghim trước), ổn định trên mọi nguồn danh mục. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🗜️ Tăng cường khả năng nén** — trình bảo vệ giải nén được bật mặc định, các gói Caveman cho DE / FR / JA + tiếng Trung (wényán), bộ lọc RTK cho Gradle & .NET. → [Nén](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Chi phí gói cố định minh bạch** — các nhà cung cấp theo gói đăng ký / gói lập trình hiển thị chi phí **$0** trong phân tích chi phí; ngân sách, hạn ngạch & định tuyến vẫn tiếp tục ước tính. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **⚖️ Định tuyến Quota-Share** — phân chia công bằng hạn ngạch của một tài khoản dùng chung giữa các khóa trong nhóm, đồng thời duy trì hiệu suất bằng cách cho mượn các phần hạn ngạch nhàn rỗi. → [Hướng dẫn khả năng phục hồi](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Thiết lập CLI/tác nhân bằng một lệnh** — 13 lệnh `setup-*` đã đăng ký; `omniroute run` khởi chạy 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` hỗ trợ 10 đích với trình chọn nhà cung cấp+mô hình tương tác và các mục yêu thích theo từng ngữ cảnh. → [Tích hợp CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Chế độ từ xa** — điều khiển OmniRoute từ xa bằng token có phạm vi (`connect` / `contexts` / `tokens`) + trình trợ giúp OAuth `antigravity` dành cho các bản cài đặt VPS. → [Chế độ từ xa](docs/guides/REMOTE-MODE.md)
- **🧭 Tự động định tuyến thông minh hơn** — các combo `auto/:`, **Fusion** (hội đồng mô hình + bộ đánh giá), định tuyến nhận biết tác vụ, ghi đè mô hình / chế độ / ngân sách USD theo từng yêu cầu. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Nén có thể mở rộng** — 12 engine có thể kết hợp + Compression Studios: LLMLingua-2, Ultra hai tầng, omniglyph, cổng kiểm tra độ trung thực theo từng bước, GCF v3.2, trình chỉnh sửa kéo-thả để sắp xếp lại. → [Nén](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Giải mã MITM minh bạch (TPROXY)** — thu thập lưu lượng từ các CLI bỏ qua biến môi trường proxy, với CA theo từng SNI + trình cài đặt kho tin cậy. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Dữ liệu đo lường chi phí ở mọi nơi** — các header chi phí/mức sử dụng `X-OmniRoute-*` trên mọi endpoint, header khoản tiết kiệm từ cache-HIT, hạn ngạch chi tiêu USD theo từng khóa. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🧠 Bộ nhớ do bạn kiểm soát** — mặc định tắt, tùy chọn sử dụng lượng tử hóa vector int8 + suy giảm có kiểu, `x-omniroute-no-memory` theo từng yêu cầu. → [Bộ nhớ](docs/frameworks/MEMORY.md)
- **🛡️ Bảo mật** — trình bảo vệ chống chèn prompt trên mọi tuyến LLM (bộ kiểm thử red-team), cơ chế bảo vệ che thông tin xác thực tùy chọn (ẩn các API key/bí mật bị rò rỉ theo cả hai chiều), tìm kiếm web dự phòng cuối cùng miễn phí bằng DuckDuckGo và cổng đăng nhập OIDC tùy chọn cho bảng điều khiển (đăng nhập bằng mật khẩu luôn khả dụng). → [Cơ chế bảo vệ](docs/security/GUARDRAILS.md)
- **🖼️ Endpoint mới** — `/v1/ocr` (Mistral OCR) và `/v1/audio/translations` (kiểu Whisper) hoàn thiện phạm vi xử lý nội dung đa phương tiện. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🎨 Tạo hình ảnh / video / âm thanh** — một API duy nhất cho nội dung đa phương tiện: video xAI Grok Imagine & Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind và các nhà cung cấp giọng nói như ElevenLabs. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🌍 Triển khai & vận hành** — `basePath` cho reverse proxy, tự động phát hiện ngôn ngữ trình duyệt, theo dõi thiết bị theo từng khóa, độ tin cậy MITM không cần quyền root, bản địa hóa zh-TW. → [Môi trường](docs/reference/ENVIRONMENT.md)
- **🤝 Thêm nhiều nhà cung cấp & tác nhân** — các tác nhân đám mây (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) với trình duyệt + đăng nhập OAuth, thẻ Ollama hạng nhất, Claude Opus 5 & Sonnet 5, quan hệ đối tác chính thức với Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… và **danh mục 352 nhà cung cấp** được làm mới. → [Nhà cung cấp](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Tính minh bạch của định tuyến** — mọi phản hồi đều có header `X-OmniRoute-Decision` cho biết chiến lược/nhà cung cấp/độ trễ đã phục vụ phản hồi đó; một chiến lược combo `cache-optimized` mới + hệ số `cacheAffinity` của Auto-Combo định tuyến các yêu cầu lặp lại trở về kết nối đang giữ tiền tố được lưu trong bộ nhớ đệm; và endpoint chỉ đọc `/v1/auto-combo/{channel}/candidates` hiển thị nhóm ứng viên trực tiếp của một kênh `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Hiệu năng cục bộ & hạ tầng** — Redis cục bộ chỉ với một cú nhấp chuột, các trình triển khai relay cho Cloudflare Workers / Deno Deploy, Bifrost & Mux dưới dạng các dịch vụ nhúng được giám sát. → [Dịch vụ nhúng](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Cũng được tích hợp sẵn** — framework plugin + marketplace, các framework kỹ năng Omni/Agent/GitHub, tích hợp kho Obsidian (22 công cụ MCP), API Batch & Files tương thích OpenAI, bộ nhớ đệm phản hồi ngữ nghĩa, trò chơi hóa với bảng xếp hạng, khám phá tác nhân ACP (15 tác nhân tích hợp sẵn), xuất nhật ký theo lịch sang BigQuery, phân luồng song song đến nhiều mô hình bằng `auto/chaos`, cầu nối bot Telegram, trình quản lý phiên bản trong ứng dụng và bảng xếp hạng nhà cung cấp miễn phí LMArena-ELO. → [Tài liệu](docs/README.md)
## 🤖 Các CLI & Agent lập trình tương thích
> Một cấu hình — `http://localhost:20128/v1` — và **mọi** IDE AI hoặc CLI đều chạy được với các mô hình miễn phí và chi phí thấp.
+ cũng hoạt động với · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · mọi công cụ tương thích với OpenAI
📖 Hướng dẫn thiết lập riêng cho từng công cụ trong tổng số 36 công cụ (26 CLI Code + 10 CLI Agent) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Khởi chạy bất kỳ CLI nào được hỗ trợ thông qua OmniRoute chỉ bằng một lệnh** — không ghi tệp cấu hình,
thông tin xác thực được đưa vào riêng cho từng tiến trình, Qwen/Gemini sử dụng thư mục home tạm thời và biệt lập:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Hoặc chọn provider+model theo cách tương tác và ghi cấu hình riêng của công cụ:
omniroute configure codex # cũng hỗ trợ: claude opencode qwen aider goose gemini cline continue kilo
```
Mọi lệnh đều sử dụng ngữ cảnh remote đang hoạt động (`omniroute connect `), `--dry-run`
cho phép xem trước chính xác các biến môi trường/tham số mà không thực thi, và `--api-key-env NAME` giúp tránh
lưu khóa bí mật vào lịch sử shell. → [Tích hợp CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 Nhà cung cấp AI — 154 nhà cung cấp được đánh dấu miễn phí trong danh mục
> **372 nhà cung cấp đã đăng ký** trong các bộ sưu tập chuẩn về trò chuyện, phương tiện, tìm kiếm, cục bộ, tác nhân đám mây và hệ thống, bao gồm **154 nhà cung cấp mang siêu dữ liệu khám phá `hasFree: true`**. Sổ đăng ký mô hình trò chuyện bao gồm **237 nhà cung cấp / 3.009 cặp nhà cung cấp-mô hình riêng biệt / 1.443 ID mô hình thô**; danh mục ngân sách miễn phí riêng biệt có **491 hàng theo từng mô hình**, **35 nhóm định kỳ** và **54 nhà cung cấp miễn phí vĩnh viễn theo định kỳ/không cần khóa**. Đây là các mẫu số khác nhau theo chủ đích; các định nghĩa và phép tính đã khử trùng lặp theo nhóm có trong [Tài liệu tham khảo về nhà cung cấp](docs/reference/PROVIDER_REFERENCE.md) và [Các gói miễn phí](docs/reference/FREE_TIERS.md).
### 🏢 Mọi phòng nghiên cứu lớn — thông qua một điểm cuối duy nhất
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…và hơn 330 nhà cung cấp khác — mọi biểu tượng đều được tải trực tiếp từ danh mục nhà cung cấp của bảng điều khiển. 📖 [Tài liệu tham khảo về nhà cung cấp](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Miễn phí vĩnh viễn — $0, không cần thẻ
OpenCode Zen DeepSeek V4, Nemotron 3 Không giới hạn token
Kilo Code Bộ định tuyến tự động, Tencent Hy3 Miễn phí vĩnh viễn
Qoder AI Qwen3-Max, Kimi-K2 MIỄN PHÍ không giới hạn
Pollinations GPT, Llama, Claude Không cần khóa
Cloudflare AI Hơn 50 mô hình 10K nơ-ron/ngày
NVIDIA NIM GLM, MiniMax Miễn phí ~40 RPM
Cerebras GLM 4.7, GPT-OSS Tín dụng $5 một lần; yêu cầu thẻ
OpenRouter Các mô hình :free +$10 → RPM cao hơn
📖 Danh mục đầy đủ có thể đọc bằng máy → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ OmniRoute Chạy Ở Đâu — Mọi Nơi
> Cùng một ứng dụng, máy của bạn, quy tắc của bạn. Từ cài đặt npm toàn cục đến **điện thoại của bạn** thông qua Termux.
Nền tảng
Cài đặt
Điểm nổi bật
📦 npm (toàn cục)
npm install -g omniroute
Một lệnh, mọi hệ điều hành
🐳 Docker
docker run … diegosouzapw/omniroute
Đa kiến trúc AMD64 + ARM64
🖥️ Máy tính để bàn (Electron)
npm run electron:build
Cửa sổ gốc + khay hệ thống — Windows / macOS / Linux
🎩 Thanh menu (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Giám sát & tự động cập nhật máy chủ — macOS
💪 ARM
arm64 nguyên bản
Raspberry Pi, máy chủ ARM, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Chạy trên điện thoại của bạn, 24/7, không cần root
📲 PWA
"Thêm vào màn hình chính"
Toàn màn hình, ngoại tuyến, có thể cài đặt từ trình duyệt
🧩 Plugin OpenCode
@omniroute/opencode-provider
Tích hợp OpenCode nguyên bản
🤖 VS Code Copilot Chat
cài đặt tiện ích mở rộng OmniCopilot
Mọi mô hình OmniRoute trong bộ chọn Copilot Chat nguyên bản — bản ổn định & Insiders
🛠️ Từ mã nguồn
npm install && npm run dev
Tùy biến, đóng góp
📖 [Hướng dẫn Docker](docs/guides/DOCKER_GUIDE.md) · [Máy tính để bàn](electron/README.md) · [Khay thanh menu](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 Mới: OmniRoute bên trong Copilot Chat nguyên bản của VS Code
> Không có thanh bên mới, không có giao diện trò chuyện mới — mọi mô hình do OmniRoute cung cấp đều xuất hiện ngay trong
> **bộ chọn mô hình Copilot Chat mà bạn đã sử dụng**. Kể từ VS Code 1.122, các mô hình của nhà cung cấp hoạt động
> mà không cần đăng nhập GitHub hoặc đăng ký Copilot — chế độ tác nhân, gọi công cụ và thị giác, hoàn toàn
> miễn phí.
Cài đặt tiện ích mở rộng **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, trỏ tiện ích
đến máy chủ OmniRoute của bạn (mặc định là `localhost:20128`), sau đó mở Copilot Chat → bộ chọn mô hình
→ **Quản lý mô hình…** → **OmniRoute**.
Từ bên trong trình soạn thảo: mở chế độ xem **Tiện ích mở rộng**, tìm kiếm **"OmniRoute"**, nhấp vào **Cài đặt**
— hoạt động theo cùng một cách trên cả hai cửa hàng. Mã nguồn, các vấn đề và tài liệu quy trình phát hành nằm tại
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Hướng dẫn VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — thiết lập, nội dung bộ chọn hiển thị, bảng điều khiển trong một tab, khắc phục sự cố
### 🎩 Mới: OmniRouteTray — cổng kết nối của bạn, nằm ngay trên thanh menu
> `omniroute serve` hoạt động tốt nhất khi luôn được bật. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> biến việc đó thành một ứng dụng thanh menu chỉ cần thiết lập một lần trên macOS: ứng dụng khởi động máy chủ, duy trì hoạt động
> sau khi khởi động lại, cập nhật tại chỗ và giúp bạn xem ngân sách token trực tiếp chỉ với một cú nhấp chuột — **không
> cần để cửa sổ dòng lệnh mở, không cần trông chừng `npm install -g omniroute`.**
Được xây dựng bằng [Tauri v2](https://v2.tauri.app/) (lõi Rust nhỏ đến mức có thể xem như sai số làm tròn), ứng dụng đi kèm
môi trường chạy Node 24 đã được ký riêng và quản lý bản cài đặt OmniRoute thuộc sở hữu của ứng dụng, vì vậy không bao giờ xung đột với
`node`/`bun` toàn cục của bạn. Ứng dụng **dùng chung cấu hình và cơ sở dữ liệu `~/.omniroute/` hiện có của bạn** — vì vậy đây vẫn là
OmniRoute mà bạn đang chạy, chỉ là được đội thêm một chiếc mũ. 🎩
Chức năng
Cách thức
🟢 Giám sát máy chủ
Khởi tạo omniroute serve, tiếp quản phiên bản đang chạy thay vì tạo bản trùng lặp
📊 Xem nhanh mức sử dụng trực tiếp
Thanh hạn mức nhà cung cấp, giới hạn phiên/hàng tuần của Claude kèm đếm ngược thời gian đặt lại, phân tích chi phí trong 30 ngày
🔄 Tự động cập nhật tại chỗ
Cài đặt theo giai đoạn, hoán đổi nguyên tử, hoàn tác khi thất bại — luôn sử dụng bản phát hành mới nhất
🚀 Khởi động khi đăng nhập
Tùy chọn khởi chạy khi đăng nhập; chỉ hiển thị ở khay, không có biểu tượng trên dock
🩺 Chẩn đoán & nhật ký
Chẩn đoán chỉ với một cú nhấp chuột và truy cập nhật ký máy chủ
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Muốn tải xuống? Hãy lấy tệp .dmg mới nhất từ
Bản phát hành. Mã nguồn, các vấn đề và tài liệu
hướng dẫn build có tại zoispag/omniroute-tray.
💛 Một dự án cộng đồng của @zoispag — không phải là bản phát hành OmniRoute chính thức.
> Ngoài máy chủ, OmniRoute còn là một **buồng điều khiển dòng lệnh đầy đủ** với **hơn 80 lệnh**, cùng các giao thức tác nhân mở để một tác nhân AI có thể **tự mình** vận hành nó.
### ⌨️ Một CLI thực thụ (không chỉ có `start`)
```bash
omniroute # phục vụ cổng kết nối + bảng điều khiển (cổng 20128)
omniroute chat # trình trò chuyện TUI tương tác (lệnh gạch chéo: /model /combo /skill /memory)
omniroute setup # trình hướng dẫn có chỉ dẫn cho lần chạy đầu tiên
omniroute doctor # chẩn đoán nhà cung cấp, cổng, phần phụ thuộc native
```
### 🛰️ Chế độ từ xa — chạy CLI tại đây, OmniRoute trên VPS
OmniRoute đang chạy trên máy chủ? Điều khiển nó từ máy tính xách tay của bạn bằng **chính CLI đó**. Đăng nhập một lần
bằng token truy cập có phạm vi; sau đó mọi lệnh sẽ nhắm đến máy chủ từ xa.
```bash
omniroute connect 192.168.0.15 # mật khẩu → token có phạm vi, được lưu dưới dạng ngữ cảnh
omniroute models list # ← chạy trên máy chủ TỪ XA
omniroute configure codex # ← chọn một mô hình từ xa, ghi một hồ sơ Codex cục bộ
omniroute tokens create --name ci --scope read # tạo token có phạm vi hẹp hơn cho các máy khác
omniroute contexts use default # ← chuyển trở lại máy chủ cục bộ
```
Token có các phạm vi `read` / `write` / `admin`; các tuyến khởi chạy tiến trình chỉ khả dụng trên loopback.
📖 [Chế độ từ xa](docs/guides/REMOTE-MODE.md)
### 🤝 Kết nối một tác nhân — và tác nhân đó tự điều khiển OmniRoute
Cung cấp OmniRoute qua **MCP**, **A2A**, **REST API**, **webhook** hoặc **CLI từ xa** — bất kỳ tác nhân đủ năng lực nào (hoặc mã của riêng bạn) đều có quyền điều khiển toàn bộ cổng kết nối: định tuyến, nhà cung cấp, tổ hợp, bộ nhớ đệm, nén, bộ nhớ — một cách tự động. Các endpoint HTTP bên dưới được phục vụ tại `http://localhost:20128`.
Giao diện
Endpoint / lệnh
Dùng cho
🧰 MCP (stdio)
omniroute --mcp
Tích hợp vào Claude Desktop, Cursor hoặc bất kỳ trình khách MCP nào
🌊 MCP (HTTP)
/api/mcp/stream
MCP từ xa — 110 công cụ, 33 phạm vi (tùy chọn bật thực thi), nhật ký kiểm tra đầy đủ
📡 MCP (SSE)
/api/mcp/sse
Phương thức truyền tải MCP dạng luồng
🤝 A2A
/.well-known/agent.json
Tác nhân với tác nhân, JSON-RPC 2.0 + SSE, 6 kỹ năng
🌐 REST API
/v1/*
Tương thích với OpenAI — trò chuyện, embedding, hình ảnh, âm thanh, OCR
🔔 Webhook
/api/webhooks
Đẩy các sự kiện yêu cầu / hạn ngạch đến Slack, Discord, Telegram hoặc bất kỳ URL nào
🛰️ CLI từ xa
omniroute connect
Điều khiển một phiên bản từ xa bằng token truy cập có phạm vi
```bash
# Cung cấp cho Claude Code toàn bộ bộ công cụ OmniRoute qua MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [Máy chủ MCP](docs/frameworks/MCP-SERVER.md) · [Máy chủ A2A](docs/frameworks/A2A-SERVER.md) · [Giao thức tác nhân](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Tiết kiệm 15–95% token — Tự động
### 📖 Cách hoạt động — quy trình, kiến trúc và phép tính mức tiết kiệm
Tổ hợp xếp chồng mặc định chạy `RTK → Caveman`. Khi cả hai cùng tác động lên một payload công cụ/ngữ cảnh, mức tiết kiệm được cộng dồn:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Các khối mã, URL, JSON và dữ liệu có cấu trúc **luôn được bảo vệ** bởi engine bảo toàn.
> **Tại sao phải dùng nhiều token khi chỉ cần ít token là đủ?** Mọi yêu cầu đều đi qua quy trình nén của OmniRoute một cách **minh bạch** — không cần thay đổi phía máy khách. Giờ đây, đây là một **ngăn xếp gồm 12 engine có thể kết hợp**, chạy theo thứ tự và được phối hợp linh hoạt theo từng tổ hợp định tuyến — phát triển dựa trên các ý tưởng từ [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) và [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Ngăn xếp 12 engine
Các engine chạy theo thứ tự trong quy trình; từng engine có thể được bật/tắt và cấu hình độc lập cho mỗi tổ hợp:
#
Engine
Chức năng
1
Session-Dedup
Loại bỏ nội dung lặp lại giữa các lượt (định địa chỉ theo nội dung, xuyên lượt)
2
CCR
Lưu trữ các khối lớn phía sau các dấu mốc truy xuất và tải về khi cần
3
Lite
Cắt giảm khoảng trắng + URL hình ảnh (mức cơ sở có độ trễ thấp)
4
RTK
Lọc, loại bỏ trùng lặp và cắt ngắn kết quả công cụ một cách thông minh (nhận biết lệnh)
5
Responses Tool Output
Ưu tiên không mất dữ liệu cho JSON + nén chẩn đoán có giới hạn đối với đầu ra shell/patch/search/build (Responses API)
6
Headroom
Thu gọn dạng bảng không mất dữ liệu cho các mảng JSON (~30%) thông qua codec GCF được tích hợp nội bộ
7
Relevance
Chấm điểm và trích xuất câu dựa trên truy vấn gần nhất của người dùng
8
Caveman
Nén văn xuôi dựa trên quy tắc (~65–75% trên đầu ra)
9
Aggressive
Tóm tắt + làm cũ dần các lượt trước
10
LLMLingua-2
Lược bỏ ngữ nghĩa bằng ML thông qua MobileBERT ONNX — an toàn cho mã, bất đồng bộ
11
Ultra
Lược bỏ token theo heuristic với tầng mô hình nhỏ (SLM) tùy chọn
12
OmniGlyph
Mã hóa ngữ cảnh dưới dạng hình ảnh mang tính thử nghiệm cho Claude Fable 5 đã được đo lường trên kết nối Anthropic trực tiếp; các transformer GPT 5.6 vẫn duy trì trạng thái đóng an toàn trong khi chờ biên nhận từ nhà cung cấp. Bốn cấu hình nén (aggressive mặc định, balanced, coding-safe, passthrough) (mạnh nhất; cần chủ động bật)
Các khối mã, URL và dữ liệu có cấu trúc **luôn được bảo toàn** chính xác đến từng byte. **Các thiết lập sẵn một cú nhấp** kết hợp những engine này:
Chế độ
Mức tiết kiệm
Phù hợp nhất cho
🪶 Lite
~15%
Mặc định an toàn, luôn bật
🪨 Standard (Caveman)
~30%
Lập trình hằng ngày
⚡ Aggressive
~50%
Các phiên dài sử dụng nhiều công cụ
🔥 Ultra
~75%
Tiết kiệm tối đa
🧰 RTK
60–90%
Đầu ra shell/test/build/git
🔗 Stacked (RTK → Caveman)
78–95%
Prompt hỗn hợp + nhật ký công cụ
**Ví dụ thực tế — chế độ Standard:**
> **Trước (69 token):** _"Lý do thành phần React của bạn kết xuất lại có thể là vì bạn đang tạo một tham chiếu đối tượng mới trong mỗi chu kỳ kết xuất. Khi truyền một đối tượng nội tuyến làm prop, phép so sánh nông của React sẽ coi đó là một đối tượng khác mỗi lần, từ đó kích hoạt việc kết xuất lại. Tôi khuyên bạn nên sử dụng useMemo để ghi nhớ đối tượng."_
>
> **Sau (19 token):** _"Tham chiếu đối tượng mới ở mỗi lần kết xuất. Prop đối tượng nội tuyến = tham chiếu mới = kết xuất lại. Bọc bằng useMemo."_
>
> **Cùng một câu trả lời. Ít hơn 72% token. Không làm giảm độ chính xác.** ✅
**Ví dụ PT-BR — chế độ [Troglodita](https://github.com/leninejunior/troglodita):**
> **Trước (42 token):** _"Vấn đề là component đang render lại vì một tham chiếu object mới được tạo trong mỗi chu kỳ render. Tôi khuyên bạn nên dùng useMemo."_
>
> **Sau (12 token):** _"Render lại: ref mới mỗi chu kỳ (object inline được tạo lại). Dùng `useMemo`."_
>
> **Cùng một câu trả lời. Ít hơn ~70% token. Độ chính xác kỹ thuật không đổi.** ✅
### 🎚️ Không chỉ các engine — kiểu đầu ra, núm điều chỉnh thích ứng & khả năng kiểm soát theo từng request
12 engine ở trên thu gọn nội dung **đầu vào**. Ba lớp bổ sung định hình nội dung **như thế nào**, **khi nào** và **đầu ra** là gì:
- **🪄 Kiểu đầu ra** _(điều hướng theo trục đầu ra)_ — chèn các chỉ dẫn định hình phản hồi có tính xác định, an toàn cho cache; có thể kết hợp, mỗi kiểu có cường độ `lite` / `full` / `ultra`. Thêm một kiểu chỉ cần một dòng trong registry:
- **Văn phong súc tích** — loại bỏ từ thừa / mạo từ / cách diễn đạt dè dặt; giữ nguyên độ chính xác kỹ thuật.
- **Ít code hơn** — YAGNI theo kiểu "lập trình viên senior lười": thay đổi hoạt động được ở mức nhỏ nhất, không dựng thêm cấu trúc ngoài yêu cầu.
- **Ponytail (lập trình viên senior lười)** — lần theo thang YAGNI, sửa nguyên nhân gốc rễ, tạo diff hoạt động được nhỏ nhất.
- **Tôi bị ADHD (hành động trước)** — mở đầu bằng hành động tiếp theo, đánh số các bước, chỉ một bước tiếp theo cụ thể, không có lời dẫn.
- **CJK súc tích (文言)** — phong cách Hán văn cổ siêu súc tích (chỉ bật cho locale `zh`).
- **🎯 Ngân sách context thích ứng** _(núm điều chỉnh)_ — thay vì một ngưỡng token bật/tắt duy nhất, chỉ tăng cường các engine rẻ nhất và ít mất mát nhất đến mức cần thiết để **vừa với cửa sổ context của model**. Chính sách: `reserve-output` (mặc định, nhận biết model) · `percentage` · `absolute`. Chế độ: `floor` (đảm bảo vừa) · `replace-autotrigger` (lựa chọn rõ ràng của bạn được ưu tiên) · `off` (ngưỡng cũ).
- **🎛️ Nơi quyết định việc nén** _(thứ tự ưu tiên, từ cao → thấp)_ — header `x-omniroute-compression` theo từng request › ghi đè của tổ hợp định tuyến › profile có tên đang hoạt động › thích ứng / tự động kích hoạt › mặc định trên panel › tắt. Kế hoạch được áp dụng sẽ được phản hồi trong header response `X-OmniRoute-Compression: ; source=`.
Tự động kích hoạt theo ngưỡng token, bật núm điều chỉnh thích ứng, ghim một profile có tên, thiết lập riêng cho từng request hoặc gán pipeline theo từng tổ hợp định tuyến — tùy cách nào phù hợp với workload. Một **bộ công cụ eval** ngoại tuyến tùy chọn (`npm run eval:compression`) chấm điểm độ trung thực so với mức tiết kiệm trên một corpus được cố định trước khi bạn đưa thay đổi vào sử dụng.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Bắt đầu nhanh
**1) Cài đặt & chạy**
```bash
npm install -g omniroute
omniroute
```
> 💡 Thấy cảnh báo `npm warn ERESOLVE` hoặc peer-dep? [Chúng vô hại](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Đang dùng npm 11 trở lên?** npm có thể chặn các script trong vòng đời package nếu chúng chưa được cho phép. `postinstall` (`node scripts/build/postinstall.mjs`) của OmniRoute là bắt buộc để chuẩn bị các tệp runtime native. Khi cài đặt global, hãy cho phép các package được nêu trong cảnh báo của npm. Đối với tập hợp package được OmniRoute 3.8.51 báo cáo:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Để tái sử dụng danh sách cho phép này cho những lần cài đặt global sau, hãy cấu hình một lần rồi cài đặt như bình thường:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Danh sách dependency có thể thay đổi giữa các bản phát hành; nếu npm báo một danh sách khác, hãy sử dụng tên package từ cảnh báo đó. Việc cho phép một package sẽ cho phép các script cài đặt của package đó chạy.
> **Đang dùng Gemini Web hoặc một provider dùng cookie web khác?** Package npm có bao gồm
> Playwright nhưng không bao gồm Chromium binary của nó. Hãy xem ghi chú
> [thiết lập Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> trước khi thực hiện request đầu tiên tới web provider.
Dashboard tại `http://localhost:20128` · API tại `http://localhost:20128/v1`.
**2) Kết nối một provider đủ điều kiện bằng tài khoản của bạn**
Dashboard → **Providers** → chọn một provider có điều khoản và quota hiện tại phù hợp với trường hợp sử dụng của bạn → thêm API key hoặc hoàn tất quy trình tài khoản của provider đó. Các gói miễn phí có thể yêu cầu đăng ký, phê duyệt hoặc phương thức thanh toán. Hãy xem [Hướng dẫn về gói miễn phí](docs/getting-started/FREE-TIERS-GUIDE.md); khả năng sử dụng không cần key không được đảm bảo, và các provider được đánh dấu `tos: avoid` mặc định sẽ bị loại khỏi `auto`.
**3) Trỏ công cụ lập trình của bạn tới dịch vụ**
```txt
URL cơ sở: http://localhost:20128/v1
API key: [sao chép từ Dashboard → Endpoints]
Model: auto (định tuyến giữa các kết nối đủ điều kiện — hoặc chọn provider/model)
```
**4) Xác minh hoạt động**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Bạn sẽ thấy danh sách các model đã kết nối. 🎉 Vậy là xong — hãy bắt đầu lập trình, OmniRoute sẽ tự động định tuyến và chuyển sang phương án dự phòng cho bạn.
Nếu client của bạn không thể gửi header tùy chỉnh, OmniRoute cũng cung cấp các alias tương thích được token hóa:
```txt
Danh mục OpenAI: http://localhost:20128/vscode/YOUR_KEY/
Model OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
Chat OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
Response OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
Chat Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat
Tag Ollama: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Chỉ sử dụng các alias này cho những client không thể đính kèm `Authorization: Bearer ...`. Xác thực bằng header vẫn là chế độ được ưu tiên.
## 📦 Các phương thức cài đặt khác — Docker, mã nguồn, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` luôn trỏ đến phiên bản SemVer ổn định **đã phát hành** cao nhất. Thẻ này không theo dõi nhánh git `main`. Hãy ghim `:X.Y.Z` khi dùng GitOps. Xem [Các kênh phát hành Docker](docs/guides/DOCKER_GUIDE.md#release-channels). Image ghim **`OMNIROUTE_MEMORY_MB=1024`**. Mức này đủ cho bảng điều khiển và các cuộc trò chuyện nhẹ. **Các tác nhân lập trình** (`POST /v1/responses` từ Claude Code, Codex, Grok, …) cần heap V8 lớn hơn nhiều, nếu không tiến trình sẽ gặp `FATAL ERROR` ở mức khoảng 12 GiB khi có hai ngữ cảnh dài chồng lấn. Hãy đặt giới hạn bộ nhớ container cao hơn heap (các bộ đệm native nằm ngoài V8):
| Khối lượng công việc | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| --------------------------------- | ------------------------------- | ---------------------- |
| Bảng điều khiển / trò chuyện nhẹ | `1024` (mặc định của image) | ≥2 g |
| Một tác nhân lập trình | `8192` | ≥10 g |
| Hai `/v1/responses` dài đồng thời | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
Bảng đầy đủ: [Hướng dẫn Docker — RAM khi chạy](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Kênh Docker tiền phát hành:** `diegosouzapw/omniroute:next` và
> `diegosouzapw/omniroute:next-web` theo dõi nhánh `release/v*` mặc định hiện tại.
> Các thẻ có thể thay đổi này chỉ dành cho việc kiểm thử các bản sửa lỗi chưa phát hành và
> **không được hỗ trợ cho môi trường production**. Xem
> [Các kênh phát hành Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
`bun install` tiêu chuẩn và cài đặt toàn cục (`bun install -g omniroute`) được hỗ trợ thông qua cơ chế phát hiện runtime Bun:
- **`bun:sqlite` tích hợp sẵn**: OmniRoute sử dụng driver `bun:sqlite` tích hợp sẵn của Bun khi chạy trên Bun và chuyển sang `better-sqlite3` trên Node.js hoặc `sql.js` nếu cần.
- **Tự động chọn trình đóng gói Webpack trong môi trường phát triển**: Chế độ phát triển (`bun run dev`) tự động phát hiện Bun và tắt Turbopack để chuyển sang Webpack, nhằm ngăn các vấn đề không tương thích với liên kết native V8. Các bản dựng production (`bun run build`) tuân theo `OMNIROUTE_USE_TURBOPACK` chính xác như trên Node: mặc định dùng Turbopack, đặt `OMNIROUTE_USE_TURBOPACK=0` để dựng bằng Webpack (`Dockerfile.bun` cung cấp biến này dưới dạng `--build-arg`).
- **Dockerfile riêng cho Bun**: `Dockerfile.bun` nhiều giai đoạn dành cho các bản triển khai production Bun native (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Cài đặt và chạy bằng Bun
bun install
bun run dev
```
**🛠️ Từ mã nguồn**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# Sử dụng Nix flakes
nix develop
npm run dev
# Hoặc sử dụng devbox
devbox run npm run dev
```
📖 [Hướng dẫn Docker](docs/guides/DOCKER_GUIDE.md) — Các profile Compose, Caddy HTTPS, tunnel Cloudflare.
**🦭 Podman**
```bash
# 1. Chuẩn bị thư mục dữ liệu được bind mount
mkdir -p data
# 2. Chỉ dành cho Linux + Podman rootless cục bộ (không bao giờ dùng trên máy khách Podman Machine từ xa):
podman unshare chown 1000:1000 ./data
# 3. Đặt gợi ý runtime, dựng image Compose cục bộ và khởi động
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Trên macOS hoặc Windows, Podman sử dụng Podman Machine từ xa: hãy bỏ qua `podman unshare` và
làm theo [hướng dẫn về thư mục dữ liệu dành riêng cho từng cấu trúc triển khai](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Hướng dẫn Podman](contrib/podman/README.md) — Các bản dựng Compose, Podman Machine và
thiết lập Quadlet Linux/systemd.
**⚡ Cài đặt nhanh hơn / gọn nhẹ hơn (bỏ qua bước dựng native)**
Công cụ SQLite native (`better-sqlite3`) là một dependency **tùy chọn**, vì vậy quá trình cài đặt
toàn cục không bao giờ bị chặn do phải biên dịch từ mã nguồn: hệ thống sử dụng binary dựng sẵn khi có
bản phù hợp với nền tảng/Node của bạn, nếu không sẽ tự động chuyển sang công cụ JavaScript thuần
(`node:sqlite` trên Node 22+, nếu không thì dùng `sql.js` WASM đi kèm) — không yêu cầu công cụ dựng.
Để bỏ qua hoàn toàn bước khởi động native sau khi cài đặt (CI, môi trường headless hoặc máy chậm):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 cũng bỏ qua bước này
```
Để cài đặt nhanh nhất, hãy ưu tiên **pnpm** (kho lưu trữ định địa chỉ theo nội dung + liên kết cứng — xem phần trên).
Để sử dụng runtime headless không có bảng điều khiển, hãy dùng profile Docker `base` (ở trên) hoặc
[hướng dẫn Termux](docs/guides/TERMUX_GUIDE.md). CLI và bảng điều khiển web được cung cấp bởi cùng một
tiến trình trên một cổng, vì vậy hiện chưa có package riêng chỉ dành cho CLI.
# 🎬 OmniRoute trong thực tế
## 📹 Hướng dẫn bằng video
Ảnh chụp bảng điều khiển vào 2026-08-24 · Danh mục thô: YT 809 | TT 137 | IG 124 · Độ mới (ngày): YT 1 | TT 21 | IG 22
**Bảng xếp hạng đầy đủ (các URL chuẩn đã được loại bỏ trùng lặp, `v > 0`, phạm vi tiếp cận cao nhất):**
| #1 | #2 | #3 | #4 | #5 |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **391,109** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** |
| #6 | #7 | #8 | #9 | #10 |
| ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** | [vaibhavsisinty — Instagram](https://www.instagram.com/reel/Dae05TSAK1l/) — **263,744** | [Nick Automates — YouTube Shorts](https://www.youtube.com/shorts/fZIBK_4fKq8) — **218,174** | [theroshankrishna — Instagram](https://www.instagram.com/reel/Dapjs58z0P0/) — **186,786** | [midudev — TikTok](https://www.tiktok.com/@midudev/video/7664636453544152342) — **177,800** |
Số liệu chuẩn vào 2026-08-24: **1.029 video duy nhất** · **11.132.922 lượt xem đã biết** (`v > 0`) · **639 kênh/hồ sơ trên các mạng**. Bảng điều khiển thô chứa 1.070 dòng; 41 mục trùng lặp trên Instagram đã được chuẩn hóa theo URL chuẩn, giữ lại số lượt xem cao nhất cho mỗi video.
> 🎬 **Bạn đã làm video về OmniRoute?** Hãy mở một [vấn đề](https://github.com/diegosouzapw/OmniRoute/issues/new) hoặc một [cuộc thảo luận](https://github.com/diegosouzapw/OmniRoute/discussions) kèm theo liên kết — chúng tôi sẽ giới thiệu video đó tại đây.
# 📧 Cộng đồng & Trợ giúp
> Mọi thứ ở cùng một nơi — theo dõi người bảo trì, trò chuyện với cộng đồng hoặc mở một vấn đề.
| Kênh | Ở đâu / bằng cách nào |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| 💼 **LinkedIn** — theo dõi người bảo trì | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
| 🐙 **GitHub** — theo dõi bản phát hành và mẹo | [@diegosouzapw](https://github.com/diegosouzapw) |
| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
| 🟢 **WhatsApp — 🌍 Toàn cầu** | [tham gia nhóm](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) |
| 🟢 **WhatsApp — 🇧🇷 Brasil** | [tham gia nhóm](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) |
| 🌍 **Trang web** | [omniroute.online](https://omniroute.online) |
| 🌍 **🌍Cộng đồng StHub OmniRoute (miễn phí)** | [cổng thông tin StHub](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) |
| 📦 **Mã nguồn** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
| 🐛 **Báo cáo lỗi** | [mở một issue](https://github.com/diegosouzapw/OmniRoute/issues) — đính kèm kết quả của `npm run system-info` |
| 🤝 **Đóng góp** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Mô hình phân nhánh và phát hành](docs/ops/BRANCHING_MODEL.md) · chọn một `good first issue` |
| 💚 **Hỗ trợ dự án** | [Các cách hỗ trợ ↑](#-support-omniroute) · [Nhà tài trợ GitHub](https://github.com/sponsors/diegosouzapw) |
OAuth 2.0 (PKCE) + JWT + API Keys + xác thực MCP theo phạm vi · AES-256-GCM khi lưu trữ · DOMPurify
Ẩn danh
wreq-js — giả lập dấu vân tay TLS JA3 / JA4, proxy 3 cấp
Khả năng phục hồi
Bộ ngắt mạch, thời gian chờ tăng theo cấp số nhân, chống hiệu ứng đám đông, tổ hợp tự phục hồi tự động
Ghi nhật ký
pino — nhật ký JSON có cấu trúc kèm ngữ cảnh yêu cầu
Kiểm thử
Trình chạy kiểm thử Node.js + Vitest — hơn 39.000 khai báo kiểm thử tĩnh trên hơn 5.100 tệp kiểm thử được theo dõi (đơn vị, tích hợp, E2E, bảo mật, hệ sinh thái)
Nền tảng
Máy tính để bàn (Electron) · Android (Termux) · PWA (mọi trình duyệt)
CI/CD
GitHub Actions — tự động xuất bản lên npm + Docker Hub khi phát hành
Chiến lược bao phủ kiểm thử cho hơn 39.000 khai báo kiểm thử tĩnh trong hơn 5.100 tệp kiểm thử được theo dõi
# ⭐ Những người đóng góp hàng đầu
> OmniRoute được định hình bởi một cộng đồng mã nguồn mở đầy nhiệt huyết. Những cá nhân này đã có những đóng góp xuất sắc, tác động trực tiếp đến chất lượng, độ ổn định và phạm vi tiếp cận của dự án. **Xin cảm ơn.**
### Những người đóng góp bên ngoài theo số pull request đã được hợp nhất
Được chốt tại đầu nhánh trực tiếp release/v3.8.50, commit dafb4ae808, với các lần hợp nhất đến 2026-08-24 05:26:03 UTC. Thống kê GitHub GraphQL được phân trang bao gồm 5.911 PR đã hợp nhất: 2.707 PR từ chủ sở hữu kho lưu trữ, 179 PR từ Dependabot và 3.025 PR bên ngoài từ 535 người đóng góp riêng biệt. “Dòng thay đổi” là tổng số dòng thêm và xóa theo GitHub, bao gồm các tệp được tạo tự động, tệp khóa, danh mục, bản dịch và tài liệu; đây là lượng biến động mã, không phải số dòng mã do tác giả viết. Các trường hợp đồng hạng tại ngưỡng giới hạn đều được giữ lại.
### Các commit được GitHub ghi nhận
Bob.Hou 🏅 51 commit được ghi nhận trên GitHub · đồng hạng #10
Xiangzhe 🏅 51 commit được ghi nhận trên GitHub · đồng hạng #10
Được kiểm tra lại vào 2026-08-24 06:14:31 UTC: các commit được ghi nhận trên GitHub do API Contributors của kho lưu trữ báo cáo cho nhánh mặc định release/v3.8.50. API trả về 525 danh tính (415 người dùng, 2 bot, 108 người dùng ẩn danh); bảng này loại trừ người bảo trì, bot và các danh tính ẩn danh, đồng thời giữ nguyên các trường hợp đồng hạng. Bảng này khác với cả bảng xếp hạng PR đã hợp nhất ở trên và thống kê 639 người dựa trên siêu dữ liệu Git ở dưới.
> 🙏 Các tính năng, bản sửa lỗi và cải tiến cơ sở hạ tầng của những người đóng góp này là một **phần cốt lõi** giúp OmniRoute trở nên đáng tin cậy và giàu tính năng. Mọi pull request, mọi trường hợp kiểm thử và mọi tệp bản dịch i18n đều quan trọng. Mã nguồn mở được xây dựng bởi những người như họ.
---
## 💖 Nhà tài trợ
Xin chân thành cảm ơn những người đã tự bỏ tiền túi tài trợ cho OmniRoute — mỗi đóng góp đều giúp dự án tiếp tục miễn phí, độc lập và phát triển.
… và những người khác muốn giữ danh tính riêng tư 💛Các nhà tài trợ công khai trên GitHub được xác minh lại vào 2026-08-24. Trạng thái activeOnly của GitHub xác định các nhãn đang hoạt động ở trên; những người ủng hộ công khai một lần đã được công bố trước đây vẫn được ghi nhận, còn các nhà tài trợ riêng tư vẫn được giữ ẩn danh.💖 Trở thành nhà tài trợ → — mỗi đô la đều giúp OmniRoute tiếp tục miễn phí và độc lập.
## 👥 Hơn 600 người đóng góp
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Được kiểm tra vào 2026-08-24 tại cơ sở cố định ac02c5b42f và kiểm tra lại tại đầu nhánh trực tiếp release/v3.8.50 với mã dafb4ae808: 639 danh tính Git của con người đã được chuẩn hóa — 407 xuất hiện với tư cách tác giả commit (bao gồm cả người bảo trì) và 232 chỉ xuất hiện trong các trailer Co-authored-by rõ ràng. Quá trình thống kê chuẩn hóa các handle noreply của GitHub, loại trừ 26 danh tính bot/tác nhân/dịch vụ/giữ chỗ và không hợp nhất các địa chỉ email thông thường chỉ vì tên hiển thị của chúng trùng nhau.
### Cách đóng góp
1. Fork kho lưu trữ
2. Tạo nhánh từ đầu nhánh **đang hoạt động** `release/vX.Y.Z` (không phải `main`) — xem [Mô hình phân nhánh và phát hành](docs/ops/BRANCHING_MODEL.md)
3. Tạo nhánh tính năng của bạn (`git checkout -b feat/amazing-feature`)
4. Commit các thay đổi của bạn (`git commit -m 'feat: add amazing feature'`)
5. Push lên nhánh (`git push origin feat/amazing-feature`)
6. Mở một Pull Request với **base = nhánh `release/vX.Y.Z` đó**
Xem [CONTRIBUTING.md](CONTRIBUTING.md) để biết hướng dẫn chi tiết.
### Phát hành phiên bản mới
```bash
# Tạo một bản phát hành — npm publish sẽ diễn ra tự động
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Sao
## 🌍 StarMapper
## 🙏 Lời cảm ơn
OmniRoute được xây dựng dựa trên thành quả của những người tiên phong. Dự án khởi đầu như một bản phân nhánh của **[9router](https://github.com/decolua/9router)** và một bản chuyển đổi sang TypeScript từ dự án Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — và từ đó, mỗi hệ thống con bên dưới đều được truyền cảm hứng bởi một dự án mã nguồn mở đã tiên phong trong lĩnh vực tương ứng. Mỗi dự án đều góp phần định hình một thành phần cụ thể của OmniRoute. Đây là lời cảm ơn của chúng tôi dành cho tất cả các dự án đó. 🙏
> ⭐ số sao được xác minh từ REST API của GitHub vào ngày 24 tháng 8 năm 2026 — hãy tặng sao cho các dự án này. Các con số là ảnh chụp nhanh chính xác tại thời điểm đó và đương nhiên sẽ thay đổi.
### 🧬 Nguồn gốc & cổng kết nối
Cổng AI có tập dữ liệu giá công khai cung cấp dữ liệu cho quy trình đồng bộ theo dõi chi phí của chúng tôi, đồng thời mô hình chuẩn hóa nhà cung cấp của dự án này đã định hình cơ chế định tuyến của chúng tôi.
Mã nguồn MIT được điều chỉnh để tích hợp vào cầu nối ChatGPT Web → Codex Responses đi kèm, bao gồm các bộ điều hợp phiên trình duyệt, đóng khung phản hồi, mức sử dụng và tìm kiếm web.
Các mẫu thiết kế được chuyển sang cơ chế khôi phục luồng, bí danh không suy luận, tìm kiếm web dự phòng, giới hạn cửa sổ trượt, ẩn dữ liệu nhạy cảm trong nhật ký và các luồng trình khởi chạy được gia cố.
Các giá trị mặc định chuyển đổi tương thích với Claude Code và hành vi tiêu đề thanh toán được tổng quát hóa thành cầu nối dựa trên cấu hình của OmniRoute.
Các ánh xạ mô hình Grok, trình tạo Statsig giả lập TypeError, giá trị mặc định cho yêu cầu và thiết bị, cùng bộ xử lý phản hồi NDJSON của dự án này đã được điều chỉnh đáng kể để tích hợp vào trình thực thi Grok Web của OmniRoute.
Nguồn mã bắc cầu chính đứng sau grok2api-merged; các bản triển khai mô hình, tiêu đề, tải trọng, Statsig và bộ xử lý của dự án này được bảo tồn trong dòng phát triển Grok Web.
Nguồn MIT nền tảng cho các giá trị mặc định của tải trọng và thiết bị Grok, trình tạo Statsig và bộ xử lý result.response được kế thừa qua TQZHR và grok2api-merged.
Một nguồn bắc cầu được grok2api-merged ghi nhận cho lớp nhóm proxy; OmniRoute bảo tồn thông báo về nguồn gốc đó nhưng không tuyên bố đã chuyển lớp nhóm proxy sang trình thực thi Grok Web có phạm vi giới hạn của mình.
Proxy Grok được xác thực bằng cookie và mẫu truyền phát trực tuyến result.response.token của dự án này đã định hình cơ chế truyền tải Grok Web của OmniRoute.
Bản triển khai Grok Web ban đầu đã tham khảo thiết kế đầu nguồn HTTP/trình duyệt của dự án này; đường dẫn HTTP trực tiếp của nó bắt nguồn từ GrokProxy, vì vậy không tuyên bố có hoạt động chuyển mã độc lập.
Các lược đồ ChatOptions và vỏ phản hồi bằng Rust của dự án này đã định hình các kiểu yêu cầu Grok và phản hồi truyền phát trực tuyến bằng TypeScript của OmniRoute.
Dự án lan truyền mạnh với triết lý "tại sao dùng nhiều token khi ít token vẫn làm được việc" — triết lý nói kiểu người tiền sử của dự án này là nền tảng cho chế độ nén tiêu chuẩn và hơn 30 quy tắc loại bỏ từ thừa/cô đọng của chúng tôi.
Nén đầu ra lệnh hiệu năng cao — truyền cảm hứng cho engine RTK, DSL bộ lọc JSON, khả năng khôi phục đầu ra thô và pipeline xếp tầng RTK → Caveman của chúng tôi.
Nghiên cứu nén prompt (LLMLingua / LLMLingua-2) — truyền cảm hứng cho engine llmlingua bất đồng bộ, an toàn với mã và tiếp tục hoạt động khi có lỗi của chúng tôi.
Nén token PT-BR — là nền tảng cho gói ngôn ngữ pt-BR của chúng tôi: giảm lối diễn đạt trùng ý và loại bỏ từ thừa, được tinh chỉnh cho ngữ pháp tiếng Bồ Đào Nha Brazil.
Kỹ năng lập trình YAGNI kiểu "lập trình viên cấp cao lười biếng" từng lan truyền mạnh — truyền cảm hứng cho Kiểu đầu ra less-code của chúng tôi: định hướng theo thay đổi nhỏ nhất vẫn hoạt động, giúp giảm lượng mã _được sinh ra_ (đối tác trên trục đầu ra của văn phong súc tích từ Caveman).
Phong cách phản hồi ưu tiên hành động, thân thiện với người mắc ADHD của dự án đã được điều chỉnh thành phong cách đầu ra súc tích của OmniRoute trên năm ngôn ngữ.
### 🧩 Định dạng nhỏ gọn, nghiên cứu token & công cụ nhận biết mã
Nén đầu ra theo từng loại tệp, có nhận biết nội dung và dừng đúng lúc khi có lỗi — xác nhận tính đúng đắn của cơ chế phân luồng theo loại và bỏ qua khi mức cải thiện chưa đạt ngưỡng tối thiểu của chúng tôi.
JSON dạng cột bằng Rust + truy xuất theo địa chỉ nội dung + loại bỏ trùng lặp giữa các thông điệp — xác nhận tính đúng đắn của thiết kế engine headroom/ccr/session-dedup và bất biến thân thiện với bộ nhớ đệm "dạng nén không phụ thuộc vào vị trí" của chúng tôi.
Bộ công cụ TypeScript Compiler API — truyền cảm hứng cho cơ chế xóa chú thích dựa trên trình phân tích cú pháp, đồng thời bảo toàn các literal chuỗi, template và biểu thức chính quy.
Việc chặn/phân tích MITM đối với lưu lượng giữa trợ lý lập trình ↔ LLM đã góp phần định hình các yêu cầu ban đầu của Trình kiểm tra Lưu lượng. Bốn mô-đun được phái sinh trước đây — hợp nhất SSE, chuẩn hóa hội thoại, che giấu bí mật và làm sạch tiêu đề — đã được thay thế bằng các bản triển khai phòng sạch độc lập dựa trên các tiêu chuẩn giao thức công khai. Hai bề mặt chuyển tiếp máy chủ (passthrough.ts và _internal/bypass.cjs) vẫn là các bản triển khai nội bộ của OmniRoute được phân loại độc lập; chúng không được viết lại trong quá trình thay thế đó.
Định tuyến proxy trong suốt theo từng tiến trình — truyền cảm hứng cho cơ chế gỡ bỏ MITM an toàn khi gặp sự cố, thời gian chờ khi socket không hoạt động, truy nguồn tiến trình qua /proc và bắt lưu lượng bằng TPROXY của chúng tôi.
### 📚 Dữ liệu mô hình, khả năng quan sát & giao diện người dùng
Khả năng trực quan hóa đồ thị quy trình làm việc trực tiếp của LangGraph Studio đã truyền cảm hứng cho chế độ xem chuỗi tầng theo thời gian thực trong các Studio của chúng tôi.
Danh sách tuyển chọn các thư viện bảo mật theo mặc định, định hướng cho những lựa chọn bảo mật của chúng tôi (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Truyền cảm hứng cho việc loại bỏ yêu cầu trùng lặp, phương án dự phòng khẩn cấp không tốn chi phí, các chiến lược Auto-Combo có thể cắm ghép và phân loại ý định đa ngôn ngữ.
Cơ chế ánh xạ lại mô hình có xét đến tài khoản, xác thực đường dẫn tệp thực thi và hành vi nhãn gói của dự án này đã góp phần định hình môi trường chạy Antigravity của OmniRoute.
Đã xác định bề mặt hạn ngạch Grok Build; sau đó OmniRoute tự xác minh và sửa định dạng truyền dẫn trực tiếp một cách độc lập.
## 📄 Giấy phép
Giấy phép MIT - xem [LICENSE](LICENSE) để biết chi tiết.
---
**[⬆ Quay lại đầu trang](#-omniroute)** · Được xây dựng với ❤️ dành cho cộng đồng AI mã nguồn mở.
OmniRoute v3.8.52 · Node ≥22.22.2 · Giấy phép MIT · omniroute.online