c5e665b0d5
CI / i18n Validation (all languages) (push) Has been cancelled
CI / PR Test Policy (push) Has been cancelled
Publish to Docker Hub / Resolve Docker release metadata (push) Has been cancelled
OpenSSF Scorecard / Scorecard analysis (push) Has been cancelled
semgrep / semgrep (push) Has been cancelled
Wiki Sync / Sync wiki with docs (push) Has been cancelled
Publish Fork Image to GHCR / Build and Push Fork Image (push) Has been cancelled
CI / Change Classification (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Quality Gates (Extended) (push) Has been cancelled
CI / Docs Sync (Strict) (push) Has been cancelled
CI / Docs Lint (prose — advisory) (push) Has been cancelled
CI / i18n UI Coverage (push) Has been cancelled
Publish to Docker Hub / Publish multi-arch manifests (push) Has been cancelled
CI / Quality Ratchet (push) Has been cancelled
CI / Unit Tests (1/8) (push) Has been cancelled
CI / E2E Tests (1/9) (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Package Artifact (push) Has been cancelled
CI / Electron Package Smoke (push) Has been cancelled
CI / Unit Tests (2/8) (push) Has been cancelled
CI / Unit Tests (3/8) (push) Has been cancelled
CI / Unit Tests (4/8) (push) Has been cancelled
CI / Unit Tests (5/8) (push) Has been cancelled
CI / Unit Tests (6/8) (push) Has been cancelled
CI / Unit Tests (7/8) (push) Has been cancelled
CI / Unit Tests (8/8) (push) Has been cancelled
CI / Vitest (MCP / autoCombo / UI components) (push) Has been cancelled
CI / Coverage (push) Has been cancelled
CI / SonarQube (push) Has been cancelled
CI / PR Coverage Comment (push) Has been cancelled
CI / E2E Tests (2/9) (push) Has been cancelled
CI / E2E Tests (3/9) (push) Has been cancelled
CI / E2E Tests (4/9) (push) Has been cancelled
CI / E2E Tests (5/9) (push) Has been cancelled
CI / E2E Tests (6/9) (push) Has been cancelled
Publish to Docker Hub / Build Docker (linux/amd64) (push) Has been cancelled
Publish to Docker Hub / Build Docker (linux/arm64) (push) Has been cancelled
CI / E2E Tests (7/9) (push) Has been cancelled
CI / E2E Tests (8/9) (push) Has been cancelled
CI / E2E Tests (9/9) (push) Has been cancelled
CI / Integration Tests (1/2) (push) Has been cancelled
CI / Integration Tests (2/2) (push) Has been cancelled
CI / Security Tests (push) Has been cancelled
CI / CI Dashboard (push) Has been cancelled
1283 lines
92 KiB
Markdown
1283 lines
92 KiB
Markdown
<!-- WEHUB_ZH_README -->
|
||
> [!NOTE]
|
||
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
|
||
> [English](./README.en.md) · [原始项目](https://github.com/diegosouzapw/OmniRoute) · [上游 README](https://github.com/diegosouzapw/OmniRoute/blob/HEAD/README.md)
|
||
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
|
||
|
||
<div align="center">
|
||
|
||
<img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="820"/>
|
||
|
||
<br/>
|
||
|
||
# 🚀 OmniRoute — 免费 AI 网关
|
||
|
||
### 永不停止编码。通过一个端点,将每个 AI 工具连接到 **237 个提供商** — **90+ 个免费**。
|
||
|
||
**将 Claude Code、Codex、Cursor、Cline、Copilot 和 Antigravity 接入免费的 Claude / GPT / Gemini。自动故障转移。**
|
||
<br/>
|
||
|
||
**RTK + Caveman 压缩可节省 15–95% 的 token。永不触及上限。**
|
||
|
||
<br/>
|
||
|
||
**每月约 1.6B 有文档记载的免费 token** — 配合注册赠送额度,首月最高可达 **约 2.1B** — 聚合各免费层额度,另有一群永久免费、无上限的提供商长尾,再加上前述压缩让每一份额度都走得更远。([统计方式 →](docs/reference/FREE_TIERS.md#tldr--how-much-free-inference-does-omniroute-actually-aggregate))
|
||
|
||
<br/>
|
||
|
||
<h3>
|
||
|
||
⭐ 如果 OMNIROUTE 帮你省了钱、让工作更轻松,请为仓库点 Star。 [](https://github.com/diegosouzapw/OmniRoute)
|
||
</h3>
|
||
|
||
<a href="https://trendshift.io/repositories/23589" target="_blank"><img src="https://trendshift.io/api/badge/repositories/23589" alt="diegosouzapw%2FOmniRoute | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||
|
||
[](#-237-ai-providers--90-free)
|
||
[](#-237-ai-providers--90-free)
|
||
[](docs/reference/FREE_TIERS.md)
|
||
[](#%EF%B8%8F-save-1595-tokens--automatically)
|
||
[](#-combos--the-flagship)
|
||
[](#-quick-start)
|
||
|
||
<br/>
|
||
|
||
### 💬 加入社区
|
||
|
||
[](https://discord.gg/EkzRkpzKYt)
|
||
[](https://t.me/omnirouteOficial)
|
||
[](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
||
[](https://chat.whatsapp.com/BTGJXIyjeNIIgExvTMGGhI)
|
||
[](https://omniroute.online)
|
||
|
||
**提问、提供商技巧、路线图与支持 → [Discord](https://discord.gg/EkzRkpzKYt) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 全球](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) / [🇧🇷 巴西](https://chat.whatsapp.com/BTGJXIyjeNIIgExvTMGGhI)**
|
||
|
||
<br/>
|
||
|
||
### 🧩 可用渠道
|
||
|
||
[](https://www.npmjs.com/package/omniroute)
|
||

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

|
||

|
||
|
||
[**🚀 快速开始**](#-quick-start) • [**🎯 组合方案(Combos)**](#-combos--the-flagship) • [**🌐 提供商**](#-237-ai-providers--90-free) • [**🔌 CLI & MCP**](#-full-cli--a2a--mcp) • [**🗜️ 压缩**](#%EF%B8%8F-save-1595-tokens--automatically) • [**🌍 官网**](https://omniroute.online))
|
||
|
||
[💥 承诺](#-the-promise) • [🤔 为何选择](#-why-omniroute) • [🏆 独特优势](#-what-sets-omniroute-apart) • [🤖 兼容的 CLI](#-compatible-clis--coding-agents) • [🖥️ 运行环境](#%EF%B8%8F-where-omniroute-runs--anywhere) • [🔒 隐私优先](#-private--local-first) • [🎬 实战演示](#-omniroute-in-action) • [📚 延伸阅读](#-explore-more) • [📧 支持与社区](#-support--community)
|
||
|
||
</div>
|
||
|
||
<div align="center">
|
||
<b>🌐 支持 42+ 种语言</b>
|
||
<table>
|
||
<tr>
|
||
<td align="center"><a href="README.md">🇺🇸</a></td>
|
||
<td align="center"><a href="docs/i18n/pt-BR/README.md">🇧🇷</a></td>
|
||
<td align="center"><a href="docs/i18n/pt/README.md">🇵🇹</a></td>
|
||
<td align="center"><a href="docs/i18n/es/README.md">🇪🇸</a></td>
|
||
<td align="center"><a href="docs/i18n/fr/README.md">🇫🇷</a></td>
|
||
<td align="center"><a href="docs/i18n/it/README.md">🇮🇹</a></td>
|
||
<td align="center"><a href="docs/i18n/de/README.md">🇩🇪</a></td>
|
||
<td align="center"><a href="docs/i18n/nl/README.md">🇳🇱</a></td>
|
||
<td align="center"><a href="docs/i18n/ru/README.md">🇷🇺</a></td>
|
||
<td align="center"><a href="docs/i18n/uk-UA/README.md">🇺🇦</a></td>
|
||
<td align="center"><a href="docs/i18n/pl/README.md">🇵🇱</a></td>
|
||
<td align="center"><a href="docs/i18n/cs/README.md">🇨🇿</a></td>
|
||
<td align="center"><a href="docs/i18n/sk/README.md">🇸🇰</a></td>
|
||
<td align="center"><a href="docs/i18n/ro/README.md">🇷🇴</a></td>
|
||
<td align="center"><a href="docs/i18n/hu/README.md">🇭🇺</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><a href="docs/i18n/bg/README.md">🇧🇬</a></td>
|
||
<td align="center"><a href="docs/i18n/da/README.md">🇩🇰</a></td>
|
||
<td align="center"><a href="docs/i18n/fi/README.md">🇫🇮</a></td>
|
||
<td align="center"><a href="docs/i18n/no/README.md">🇳🇴</a></td>
|
||
<td align="center"><a href="docs/i18n/sv/README.md">🇸🇪</a></td>
|
||
<td align="center"><a href="docs/i18n/zh-CN/README.md">🇨🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/zh-TW/README.md">🇹🇼</a></td>
|
||
<td align="center"><a href="docs/i18n/ja/README.md">🇯🇵</a></td>
|
||
<td align="center"><a href="docs/i18n/ko/README.md">🇰🇷</a></td>
|
||
<td align="center"><a href="docs/i18n/th/README.md">🇹🇭</a></td>
|
||
<td align="center"><a href="docs/i18n/vi/README.md">🇻🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/id/README.md">🇮🇩</a></td>
|
||
<td align="center"><a href="docs/i18n/ms/README.md">🇲🇾</a></td>
|
||
<td align="center"><a href="docs/i18n/phi/README.md">🇵🇭</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><a href="docs/i18n/in/README.md">🇮🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/hi/README.md">🇮🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/gu/README.md">🇮🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/mr/README.md">🇮🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/ta/README.md">🇮🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/te/README.md">🇮🇳</a></td>
|
||
<td align="center"><a href="docs/i18n/bn/README.md">🇧🇩</a></td>
|
||
<td align="center"><a href="docs/i18n/ur/README.md">🇵🇰</a></td>
|
||
<td align="center"><a href="docs/i18n/fa/README.md">🇮🇷</a></td>
|
||
<td align="center"><a href="docs/i18n/ar/README.md">🇸🇦</a></td>
|
||
<td align="center"><a href="docs/i18n/he/README.md">🇮🇱</a></td>
|
||
<td align="center"><a href="docs/i18n/tr/README.md">🇹🇷</a></td>
|
||
<td align="center"><a href="docs/i18n/az/README.md">🇦🇿</a></td>
|
||
<td align="center"><a href="docs/i18n/sw/README.md">🇹🇿</a></td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 💰 每月约 1.6B 免费 Token
|
||
|
||
</div>
|
||
|
||
> 手动堆叠免费层很痛苦 — 数十个 SDK、数十个速率限制,根本不知道自己到底有多少额度。OmniRoute 将 **40+ 个提供商池 / 500+ 个模型**的**有文档记载**的免费层聚合为一个真实数字,并在仪表板(`/dashboard/free-tiers`)上实时展示。
|
||
|
||
- **每月约 1.6B 免费 token**(稳定)— 配合注册赠送额度,**首月最高可达约 2.1B**。
|
||
- **按池去重、真实可信** — 每个共享免费池我们只**计一次**,因此标题数字不会因速率上限而被夸大,不像竞争对手动辄宣称数十亿。(若按每个速率限制 24/7 全算会达到约 10B;我们不发布那种数字。)
|
||
- **另有无法纳入统计的部分** — 永久免费、无 token 上限的提供商(SiliconFlow、Z.AI GLM-Flash、Kilo、OpenCode Zen…),以及 **$10 OpenRouter 充值**可解锁 **每月 +24M**,二者单独列出,绝不夸大标题数字。
|
||
- **按模型明细**、当月**实时已用 / 剩余**额度,以及每个提供商透明的**条款标记**。
|
||
|
||

|
||
|
||
> 预览线稿 — 待 `/dashboard/free-tiers` 页面验证后会换成真实截图。完整方法说明(池去重、额度档位、服务商条款):**[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**。
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 💥 承诺
|
||
|
||
</div>
|
||
|
||
> 一个端点。**237 家服务商。** 永不中断开发 — 让 OmniRoute 自动选到可用且最便宜的那一个。
|
||
|
||
<table>
|
||
<tr>
|
||
<td width="33%" valign="top"><b>🚫 永不撞限</b><br/><sub>跨 237 家服务商在毫秒级自动回退。配额用尽?下一家立刻接手 — 零停机。</sub></td>
|
||
<td width="33%" valign="top"><b>💸 最高省 95% token</b><br/><sub>RTK + Caveman 叠加压缩可砍掉 15–95% 的可压缩 token(工具密集会话约 89% 均值)。</sub></td>
|
||
<td width="33%" valign="top"><b>🆓 $0 起步</b><br/><sub>90+ 家服务商提供免费档,11 家永久免费(Kiro、Qoder、Pollinations、LongCat…)。无需绑卡。</sub></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="33%" valign="top"><b>🔌 所有工具都能用</b><br/><sub>24+ 编码代理 — Claude Code、Codex、Cursor、Cline、Copilot、Antigravity — 一份配置搞定。</sub></td>
|
||
<td width="33%" valign="top"><b>🧩 一个端点</b><br/><sub>OpenAI ↔ Claude ↔ Gemini ↔ Responses API 互译。任意工具指向 <code>/v1</code> 即可开箱即用。</sub></td>
|
||
<td width="33%" valign="top"><b>🛡️ 生产级</b><br/><sub>熔断器、TLS 隐身、MCP(95 个工具)、A2A、记忆、护栏、评测。21,000+ 测试。</sub></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<br/>
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🤔 为什么选 OmniRoute?
|
||
|
||
</div>
|
||
|
||
> 别再折腾 10 个控制台、失效的 API key 和突如其来的账单。
|
||
|
||
| ❌ 日常痛点 | ✅ OmniRoute 如何解决 |
|
||
| ------------------------------------------------------ | ----------------------------------------------------------------------------- |
|
||
| 📉 订阅配额每月白白过期 | **榨干订阅** — 跟踪配额,在重置前用尽每一个 token |
|
||
| 🛑 限流让你在编码中途卡住 | **四级自动回退** — Subscription → API → Cheap → Free,毫秒级完成 |
|
||
| 🔥 工具输出(`git diff`、`grep`、日志)烧掉 token | **RTK + Caveman 压缩** — 每次请求可省 15–95% 可压缩 token |
|
||
| 💸 昂贵 API(每家服务商 $20–50/月) | **成本优化路由** — 自动路由到可用且最便宜的模型 |
|
||
| 🧰 每个 AI 工具各有一套配置 | **一个端点、所有工具、一个控制台** |
|
||
| 🌍 所在国家/地区屏蔽 AI | **三级代理** + TLS 指纹隐身 — 随时随地使用 AI |
|
||
|
||
<div align="center">
|
||
|
||
```
|
||
┌──────────────────────────────────────────────────────────┐
|
||
│ Your IDE / CLI (Claude Code, Cursor, Cline…) │
|
||
└─────────────────────────┬──────────────────────────────────┘
|
||
│ http://localhost:20128/v1
|
||
▼
|
||
┌──────────────────────────────────────────────────────────┐
|
||
│ OmniRoute — Smart Router │
|
||
│ RTK + Caveman compression · 17 routing strategies │
|
||
│ Circuit breakers · TLS stealth · MCP · A2A · Guardrails │
|
||
└─────────────────────────┬──────────────────────────────────┘
|
||
┌─────────────┬────┴────────┬─────────────┐
|
||
▼ Tier 1 ▼ Tier 2 ▼ Tier 3 ▼ Tier 4
|
||
SUBSCRIPTION API KEY CHEAP FREE
|
||
Claude Code, DeepSeek, GLM $0.5, Kiro, Qoder,
|
||
Codex, Copilot Groq, xAI MiniMax $0.2 Pollinations
|
||
quota out? ───▶ budget hit? ─▶ budget hit? ─▶ always on
|
||
```
|
||
|
||
</div>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🎯 Combos — 旗舰能力
|
||
|
||
</div>
|
||
|
||
> **Combo(组合)** 是 OmniRoute **自动**跨模型路由的链路。配额用尽、服务商故障或成本飙升时,combo 会静默滑向下一个模型。**这正是 OmniRoute 坚不可摧的原因。** 🛡️
|
||
|
||
### ⚡ 零配置 — 直接使用 `auto`
|
||
|
||
无需创建 combo。将模型设为 `auto`(或其变体),OmniRoute 会根据你已连接的服务商实时打分,构建虚拟 combo:
|
||
|
||
| Model ID | 优化目标 |
|
||
| -------------- | -------------------------------------------------------------- |
|
||
| `auto` | 🎯 均衡默认(LKGP — 粘滞到你上次的成功服务商) |
|
||
| `auto/coding` | 🧑💻 代码生成优先的质量权重 |
|
||
| `auto/fast` | ⚡ 最低延迟优先 |
|
||
| `auto/cheap` | 💰 每 token 最便宜优先 |
|
||
| `auto/offline` | 🔋 配额 / 限流余量最大优先 |
|
||
| `auto/smart` | 🔭 质量优先 + 10% 探索,发现更好模型 |
|
||
|
||
##
|
||
|
||
### 🔀 或自建 — 17 种路由策略
|
||
|
||
全部 **17** 种策略 — 可在每个 combo 步骤中混搭:
|
||
|
||
| # | Strategy | 作用 |
|
||
| --- | ------------------- | ---------------------------------------------------------------- |
|
||
| 1 | `priority` | 按目标顺序列表 — 耗尽一个再进下一个 🥇 |
|
||
| 2 | `fill-first` | 填满每个目标的配额后再切换 |
|
||
| 3 | `weighted` | 按各目标权重做加权随机 |
|
||
| 4 | `round-robin` | 按顺序轮询目标 |
|
||
| 5 | `p2c` | 二选幂(Power-of-two-choices)随机负载均衡 |
|
||
| 6 | `least-used` | 选择当前负载最低的目标 |
|
||
| 7 | `random` | 均匀随机选取(去重) |
|
||
| 8 | `strict-random` | 随机选取且不去重 🎲 |
|
||
| 9 | `cost-optimized` | 按实时目录定价最小化每次请求 $ 💸 |
|
||
| 10 | `headroom` | 选择剩余配额最多的目标 |
|
||
| 11 | `reset-window` | 优先配额窗口即将重置的目标 |
|
||
| 12 | `reset-aware` | 按配额重置时间排序 — 短窗口优先 📊 |
|
||
| 13 | `context-relay` | 在目标间交接上下文,支撑长对话 🧠 |
|
||
| 14 | `context-optimized` | 按当前上下文大小选择最合适目标 |
|
||
| 15 | `lkgp` | Last-Known-Good Path — 粘滞到上次成功目标 |
|
||
| 16 | `auto` | 对每条连接做 9 因子实时打分 🤖 |
|
||
| 17 | `fusion` | 扇出到一组模型 + 裁判合成一个答案 🧬 |
|
||
|
||
<sub>Auto-Combo 引擎按 **9 个因子**(健康度、配额、成本、延迟、成功率、新鲜度…)为每个候选打分 — 详见 [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md)。</sub>
|
||
|
||
##
|
||
|
||
### ⚖️ Quota-Share — 把一份订阅分给团队 ✨ 新功能
|
||
|
||
> 多个 key 打向**同一上游账号**(一份 Codex Pro 计划、一把 Kimi key、一个 GLM Coding 席位)?某个 key 的突发流量可能烧掉整段 5 小时 / 每小时配额,把其他人锁在门外。**Quota-Share** 把服务商的基于时间的配额在池内各 key 间**公平**分配 — 且是 _work-conserving_(工作守恒)的:空闲成员的份额会被借出,而不是浪费。
|
||
|
||
| 旋钮 | 控制内容 |
|
||
| ------------------------ | ------------------------------------------------------------------------------- |
|
||
| ⚖️ **Allocation weight** | 每个 key 在池中的份额 — 例如 `50 / 30 / 20` |
|
||
| 📐 **Dimensions** | 跟踪 `%` · 请求 · token · `$`,按 **5h / 7d / per-model** 窗口 |
|
||
| 🚦 **Policy** | `hard`(超出份额则阻断) · `soft`(降优先级) · `burst`(使用空闲余量) |
|
||
| 🧱 **Cap** | 每个 key 的绝对上限,与模式无关 |
|
||
|
||
```
|
||
Pool "team-codex" · 1 Codex Pro account · 3 keys · 5-hour window
|
||
├─ alice weight 50 ██████████░░░░░░░░░░ ≤ 50% of the shared 5h quota
|
||
├─ bob weight 30 ██████░░░░░░░░░░░░░░ ≤ 30%
|
||
└─ ci-bot weight 20 ████░░░░░░░░░░░░░░░░ ≤ 20%
|
||
Generous mode (<50% pool used) → idle shares are lent out
|
||
Strict mode (≥50% pool used) → each key held to its fair share
|
||
```
|
||
|
||
<sub>在请求离开 OmniRoute 的热路径中**提前**强制执行,支持按 (key, model) 的上限 + 会话粘性(session stickiness)以保障 prompt-cache 完整性(现支持按 combo / 全局关闭开关)。📖 [配额共享引擎 (Quota Sharing Engine)](docs/routing/QUOTA_SHARE.md)</sub>
|
||
|
||
##
|
||
|
||
### 🧱 内置韧性(3 层独立机制)
|
||
|
||
| 层级 | 作用范围 | 作用说明 |
|
||
| -------------------------- | ----------------- | -------------------------------------------------------------------------- |
|
||
| 🔌 **熔断器 (Circuit breaker)** | 整个提供商 | 停止反复冲击上游已故障的提供商;自动探测以恢复 |
|
||
| 💤 **连接冷却 (Connection cooldown)** | 单个账号 / key | 跳过已触发限流的 key,同时其他 key 继续服务 |
|
||
| 🎯 **模型锁定 (Model lockout)** | 提供商 + 模型 | 仅隔离某一个配额受限的模型,而不是整条连接 |
|
||
|
||
```
|
||
Combo: "always-on" Strategy: priority
|
||
1. cc/claude-opus-4-7 ← subscription (use it fully)
|
||
2. cx/gpt-5.5 ← second subscription
|
||
3. glm/glm-5.1 ← cheap backup ($0.5/1M)
|
||
4. kr/claude-sonnet-4.5 ← FREE, unlimited (never fails)
|
||
Result: 4 layers of fallback = zero downtime
|
||
```
|
||
|
||
<sub>📖 [自动组合引擎 (Auto-Combo Engine)](docs/routing/AUTO-COMBO.md) · [韧性指南 (Resilience Guide)](docs/architecture/RESILIENCE_GUIDE.md)</sub>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🏆 OmniRoute 的独特之处
|
||
|
||
</div>
|
||
|
||
| 特性 | OmniRoute | 其他路由器 |
|
||
| -------------------------------------- | ------------------------------------------------------------------- | ------------- |
|
||
| 🌐 提供商 | **237** | 20–100 |
|
||
| 🆓 免费提供商 | **90+(11 个永久免费)** | 1–5 |
|
||
| 🔀 路由策略 | **17**(priority、weighted、cost-optimized、context-relay、fusion…) | 1–3 |
|
||
| 🗜️ Token 压缩 | **RTK + Caveman 叠加(15–95%)** | 无 / 20–40% |
|
||
| 🧰 内置 MCP 服务器 | **95 个工具、3 种传输、30 个作用域** | 少见 |
|
||
| 🤝 A2A agent 协议 | **6 个 skills、JSON-RPC 2.0** | 无 |
|
||
| 🧠 记忆(FTS5 + 向量) | **有** | 少见 |
|
||
| 🛡️ 护栏(PII、注入、视觉) | **有** | 少见 |
|
||
| ☁️ 云端 agents | **Codex、Cursor、Devin、Jules** | 无 |
|
||
| 🥷 TLS 指纹隐匿 | **经 wreq-js 的 JA3/JA4** | 无 |
|
||
| 🖥️ 多平台 | **Web · Desktop · Termux · PWA** | 仅 Web |
|
||
| 🌍 国际化 (i18n) | **42 种语言区域** | 0–4 |
|
||
|
||
<sub>📊 与 LiteLLM、OpenRouter 及 Portkey 的详细对比 → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)</sub>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# ✨ 最新动态
|
||
|
||
</div>
|
||
|
||
> **v3.8.20 → v3.8.45** 的近期亮点。完整历史见 [`CHANGELOG.md`](CHANGELOG.md)。
|
||
|
||
- **🗜️ 压缩加固** — 默认开启的 **膨胀防护 (inflation guard)**(一旦压缩会让 prompt _变长_,则丢弃叠加结果并发送原文)、完善的德语 / 法语 / 日语 **Caveman 规则包**(dedup + ultra),以及新的 **中文(文言 / wényán)输入包**(含 zh-vs-ja 自动检测),还有针对 Gradle 与 .NET(`dotnet`)构建输出的 **RTK 过滤器**。→ [压缩 (Compression)](docs/compression/COMPRESSION_ENGINES.md)
|
||
- **💸 诚实的包月成本** — 订阅 / coding-plan 类提供商(ChatGPT Web、grok-web、Minimax / Kimi / GLM / Alibaba Coding plans、Xiaomi MiMo…)在成本分析中现显示为 **$0**,而不再使用偏高的按 token 估算;预算 / 配额 / 路由的估算逻辑保持不变。→ [API 参考 (API Reference)](docs/reference/API_REFERENCE.md)
|
||
- **⚖️ 配额共享路由 (Quota-Share routing)** — 专用 combo 策略,按_可用配额_在账号间分摊负载:Deficit-Round-Robin 调度、带冷却等待队列的按连接 `max_concurrent`、多窗口用量桶(5h / 7d / 按模型)、按 (key, model) 上限、为保障 prompt-cache 完整性的会话粘性(现支持按 combo / 全局关闭开关),以及基于上游 token 用量响应头的主动饱和处理。→ [韧性指南 (Resilience Guide)](docs/architecture/RESILIENCE_GUIDE.md)
|
||
- **🤖 一键 CLI/agent 配置** — 专用 `setup-*` 命令可将各编程工具配置为经 OmniRoute 路由(Claude Code、Codex、Cline、Continue、Cursor、Roo Code、Kilo Code、Crush、Goose、Qwen Code、Aider、OpenCode);`omniroute launch` / `omniroute launch-codex` 为零配置启动器。→ [CLI 集成 (CLI Integrations)](docs/guides/CLI-INTEGRATIONS.md)
|
||
- **🛰️ 远程模式 (Remote mode)** — 可用作用域访问令牌(`omniroute connect` / `omniroute contexts` / `omniroute tokens`)从任意机器驱动远程 OmniRoute,并提供 `omniroute login antigravity` 助手:在本机完成 Google「native/desktop」OAuth,再将凭证 blob 粘贴到远程/VPS 安装(环回重定向不可达的场景)。→ [远程模式 (Remote Mode)](docs/guides/REMOTE-MODE.md)
|
||
- **🧭 更智能的自动路由** — OpenRouter 风格的 `auto/<category>:<tier>` combos(例如 `auto/coding:fast`、`auto/reasoning:pro`)、**Fusion** 策略(并行扇出到一组模型,再由 judge 合成)、**任务感知路由**(按任务类型选择最合适连接)、按请求的 `X-Route-Model` 覆盖、实时 Arena-ELO + models.dev 模型情报、按步骤的账号白名单、提供商通配符 combo 步骤、嵌套 combo-ref 执行、粘性加权选择、感知 `web_search` 的路由,以及 **按请求的 Auto-Combo 控制**(`X-OmniRoute-Mode` 模式预设覆盖 + `X-OmniRoute-Budget` 硬性 USD 成本上限,作用域为单次请求)。→ [Auto-Combo](docs/routing/AUTO-COMBO.md)
|
||
- **🗜️ 可插拔压缩** — 由 **10 个可组合引擎**构成的异步管线,含 Compression Studios、LLMLingua-2 ONNX 引擎与启发式/SLM 双层 **Ultra**、RTK、委托式 Anthropic Context Editing、**Output Styles**(输出轴引导:terse-prose / less-code / terse-CJK)、**自适应上下文预算旋钮**(仅在装入上下文窗口所需范围内逐步升级)、按请求的 `x-omniroute-compression` 控制、可选离线评估工具、从仪表盘一键管理 **Headroom** 代理生命周期(支持 Docker sidecar)、合成 **压缩 playground**(Play lanes + 带 USD 上限保真裁决的 A/B Compare)、可选 **按步骤保真门控**(在有损引擎劣化 prompt 前拒绝)、**best-of-N 候选编码器**(GCF vs TOON — 保留更短者,并在 studio 中提供 A/B 字节/token 表)、**CCR ranged/grep/stats 检索**(拉取已存块的精确字节/行切片或摘要,而无需重新展开)、带命名配置与活动配置选择器的统一面板、可选 **按引擎管线熔断器**、可选 **LLM-tier 引擎**(模型 pass,用于更高比率语义压缩)、会折叠被覆盖文件读取的 **read-lifecycle 引擎**、**usage-observed prefix freeze**、分级的 **CCR retrieval-feedback ramp**、`preserveSystemPrompt` 模式枚举,以及 studio 中的 **拖拽重排管线编辑器**。→ [压缩 (Compression)](docs/compression/COMPRESSION_ENGINES.md)
|
||
- **🕵️ 透明 MITM 解密 (TPROXY)** — 捕获并转换忽略代理环境变量的 CLI 流量,支持按 SNI 的证书颁发机构与信任库安装器。→ [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
|
||
- **💸 无处不在的成本遥测** — 每个端点(含媒体)上的 `X-OmniRoute-*` 成本/用量响应头、非 token 成本引擎、缓存命中 `X-OmniRoute-Cost-Saved` 响应头,以及按 key 的 USD 花费配额。→ [API 参考 (API Reference)](docs/reference/API_REFERENCE.md)
|
||
- **🧠 由你掌控的记忆** — 可选 int8 向量量化(Qdrant + sqlite-vec)、可选 **类型化记忆衰减**(低价值旧记忆按类型计划淡出)、记忆默认关闭,以及按请求的 `x-omniroute-no-memory` 响应头。→ [记忆 (Memory)](docs/frameworks/MEMORY.md)
|
||
- **🛡️ 安全** — 覆盖每条 LLM 路由的提示注入防护(由红队套件支撑),以及作为最后手段的免费 DuckDuckGo 网页搜索。→ [护栏 (Guardrails)](docs/security/GUARDRAILS.md)
|
||
- **🖼️ 新端点** — `/v1/ocr`(Mistral OCR)与 `/v1/audio/translations`(Whisper 风格音频翻译)补全媒体 API 面。→ [API 参考 (API Reference)](docs/reference/API_REFERENCE.md)
|
||
- **🌍 部署与运维** — 反向代理 `basePath` 部署(`OMNIROUTE_BASE_PATH`,例如在 `/omniroute/` 下提供 OmniRoute)、首次访问时按浏览器语言自动检测、按 API key 的设备/连接跟踪(IP+UA 指纹,脱敏,仅内存)、面向用户命名空间容器的无 root MITM 证书信任(`OMNIROUTE_NO_SUDO`),以及 Free Provider Rankings 页面上的服务端“仅已配置 / 仅可用”过滤器。→ [环境变量 (Environment)](docs/reference/ENVIRONMENT.md)
|
||
- **🤝 更多提供商与 agents** — Cursor Cloud Agent(第 4 个云端 agent)、CodeBuddy CN(`copilot.tencent.com`)、Google Flow 视频生成提供商、新网关 **DGrid** 与 **Pioneer AI**(Fastino Labs)、入站 **xAI Grok** 转换器以及带 OAuth 导入令牌流程的 **Grok Build (xAI)**、GitHub Copilot 提供商上的 GPT-4 / GPT-4o-mini、多模型 **Factory Droid**、**ZenMux Free**(session-cookie 免费档)、**Alibaba DashScope** 文生视频(`wan2.7-t2v`)、刷新后的 237 提供商目录(OrcaRouter、Wafer AI、OpenAdapter、dit.ai、TokenRouter…)、Vertex AI 媒体生成(语音/转写/音乐/视频)、一等公民 **Ollama** 本地提供商卡片、**SenseNova** 免费 Token Plan(chat + 文生图)、从 CLIProxyAPI 一键导入账号(`~/.cli-proxy-api/`)、端到端接入 **Claude Sonnet 5**、新一波提供商(**Kenari**、**SumoPod**、**X5Lab**、**Charm Hyper**、**Nube.sh**、**b.ai**、**Qiniu**、**ModelScope**、**Augment/Auggie CLI**、**ClinePass**、NVIDIA NIM 图像生成)、从原始 ChatGPT access token 导入 Codex 账号、**Requesty** 网关(BYOK,约 200 次免费请求/天)、作为 cookie-session 提供商的 **Yuanbao (web)**(DeepSeek V3/R1 + Hunyuan)、**Zed** 托管 LLM 聚合器(OAuth)、Claude Web 提供商上的 **Claude 5 Sonnet**、Kiro 的 **adaptive-thinking reasoning** 以 `reasoning_content` 暴露,以及 **Cloudflare Workers AI 的批量 API-key 添加**。→ [提供商 (Providers)](docs/reference/PROVIDER_REFERENCE.md)
|
||
- **⚡ 本地性能与基础设施** — 一键本地 Redis 启动器(`omniroute redis up`,以及仪表盘 Redis 面板)、接入代理池的一键 **Cloudflare Workers** 与 **Deno Deploy** relay 部署器、relay 后端选择器(`OMNIROUTE_RELAY_BACKEND=ts|bifrost|auto`),使 `/v1/relay` 保持稳定对外表面、内部选择最快后端,**Bifrost**(Go AI 网关)与 **Mux**(agent 编排守护进程)提升为与 9Router/CLIProxyAPI 并列的一等嵌入式/受管服务,以及在免费代理提供商框架中新增付费第四源 **Webshare**。→ [嵌入式服务 (Embedded Services)](docs/frameworks/EMBEDDED-SERVICES.md)
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🤖 兼容 CLI 与编程智能体(Coding Agents)
|
||
|
||
> 一份配置 — `http://localhost:20128/v1` — **所有** AI IDE 或 CLI 即可使用免费与低成本模型运行。
|
||
|
||
<div align="center">
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="120"><a href="https://github.com/anthropics/claude-code"><img src="./public/providers/claude.svg" width="52" alt="Claude Code"/><br/><b>Claude Code</b></a></td>
|
||
<td align="center" width="120"><a href="https://github.com/openai/codex"><img src="./public/providers/codex.svg" width="52" alt="Codex CLI"/><br/><b>Codex CLI</b></a></td>
|
||
<td align="center" width="120"><img src="./public/providers/cursor.png" width="52" alt="Cursor"/><br/><b>Cursor</b></td>
|
||
<td align="center" width="120"><img src="./public/providers/copilot.png" width="52" alt="Copilot"/><br/><b>Copilot</b></td>
|
||
<td align="center" width="120"><img src="./public/providers/continue.png" width="52" alt="Continue"/><br/><b>Continue</b></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center" width="120"><a href="https://github.com/anomalyco/opencode"><img src="./public/providers/opencode.svg" width="52" alt="OpenCode"/><br/><b>OpenCode</b></a></td>
|
||
<td align="center" width="120"><a href="https://github.com/Kilo-Org/kilocode"><img src="./public/providers/kilocode.svg" width="52" alt="Kilo Code"/><br/><b>Kilo Code</b></a></td>
|
||
<td align="center" width="120"><img src="./public/providers/droid.svg" width="52" alt="Droid"/><br/><b>Droid</b></td>
|
||
<td align="center" width="120"><img src="./public/providers/openclaw.png" width="52" alt="OpenClaw"/><br/><b>OpenClaw</b></td>
|
||
<td align="center" width="120"><img src="./public/providers/kiro.svg" width="52" alt="Kiro"/><br/><b>Kiro</b></td>
|
||
<td align="center" width="120"><img src="./public/providers/command-code.svg" width="52" alt="Command Code"/><br/><b>Command</b></td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div align="center">
|
||
<b>+ 还兼容</b> · Cline · Antigravity · Windsurf · AMP · Hermes · Qwen CLI · Roo · Continue · <b>任意 OpenAI 兼容工具</b>
|
||
</div>
|
||
|
||
<sub>📖 24+ 款工具的逐项配置 → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode 插件 → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)</sub>
|
||
|
||
</div>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🌐 237 家 AI 提供商 — 90+ 免费
|
||
|
||
</div>
|
||
|
||
> 开源路由器中最完整的目录:**237 家提供商**、**90+ 提供免费套餐**、**11 家永久免费**。
|
||
|
||
<div align="center">
|
||
|
||
### 🏢 各家主流实验室 — 通过一个端点
|
||
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="92"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.91.0/dark/openai.png"/><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/openai.svg" width="40" alt="OpenAI"/></picture><br/><sub>OpenAI</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/claude-color.svg" width="40" alt="Anthropic"/><br/><sub>Anthropic</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/gemini-color.svg" width="40" alt="Gemini"/><br/><sub>Gemini</sub></td>
|
||
<td align="center" width="92"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.91.0/dark/grok.png"/><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/grok.svg" width="40" alt="xAI Grok"/></picture><br/><sub>xAI Grok</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/deepseek-color.svg" width="40" alt="DeepSeek"/><br/><sub>DeepSeek</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/mistral-color.svg" width="40" alt="Mistral"/><br/><sub>Mistral</sub></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/qwen-color.svg" width="40" alt="Qwen"/><br/><sub>Qwen</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/meta-color.svg" width="40" alt="Meta Llama"/><br/><sub>Meta Llama</sub></td>
|
||
<td align="center" width="92"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.91.0/dark/groq.png"/><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/groq.svg" width="40" alt="Groq"/></picture><br/><sub>Groq</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/nvidia-color.svg" width="40" alt="NVIDIA"/><br/><sub>NVIDIA</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/minimax-color.svg" width="40" alt="MiniMax"/><br/><sub>MiniMax</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/cohere-color.svg" width="40" alt="Cohere"/><br/><sub>Cohere</sub></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/perplexity-color.svg" width="40" alt="Perplexity"/><br/><sub>Perplexity</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/huggingface-color.svg" width="40" alt="Hugging Face"/><br/><sub>HuggingFace</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/together-color.svg" width="40" alt="Together"/><br/><sub>Together</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/fireworks-color.svg" width="40" alt="Fireworks"/><br/><sub>Fireworks</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/cloudflare-color.svg" width="40" alt="Cloudflare"/><br/><sub>Cloudflare</sub></td>
|
||
<td align="center" width="92"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/baidu-color.svg" width="40" alt="Baidu"/><br/><sub>Baidu</sub></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<sub>…以及另外 220+ 家 — 每个图标均从仪表板的提供商目录实时解析。📖 [提供商参考](docs/reference/PROVIDER_REFERENCE.md)</sub>
|
||
|
||
<br/>
|
||
|
||
### 🆓 永久免费 — $0,无需绑卡
|
||
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="150"><img src="./public/providers/agentrouter.png" width="44" alt="AgentRouter"/><br/><b>AgentRouter</b><br/><sub>GPT-5, Claude, Gemini<br/>$100 免费额度</sub></td>
|
||
<td align="center" width="150"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/qoder-color.svg" width="44" alt="Qoder AI"/><br/><b>Qoder AI</b><br/><sub>Kimi-K2, DeepSeek-R1<br/>Unlimited FREE</sub></td>
|
||
<td align="center" width="150"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.91.0/dark/pollinations.png"/><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/pollinations.svg" width="44" alt="Pollinations"/></picture><br/><b>Pollinations</b><br/><sub>GPT-5, Claude, Llama 4<br/>无需 API Key</sub></td>
|
||
<td align="center" width="150"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/longcat-color.svg" width="44" alt="LongCat"/><br/><b>LongCat</b><br/><sub>LongCat-2.0<br/>一次性 10M tokens(KYC)🔑</sub></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center" width="150"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/cloudflare-color.svg" width="44" alt="Cloudflare AI"/><br/><b>Cloudflare AI</b><br/><sub>50+ models<br/>10K neurons/day</sub></td>
|
||
<td align="center" width="150"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/nvidia-color.svg" width="44" alt="NVIDIA NIM"/><br/><b>NVIDIA NIM</b><br/><sub>129 models<br/>~40 RPM free</sub></td>
|
||
<td align="center" width="150"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/cerebras-color.svg" width="44" alt="Cerebras"/><br/><b>Cerebras</b><br/><sub>Qwen3 235B<br/>1M tokens/day</sub></td>
|
||
</tr>
|
||
</table>
|
||
|
||
📖 完整机器可读目录 → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
|
||
|
||
<br/>
|
||
</div>
|
||
|
||
<div align="center">
|
||
|
||
# 🖥️ OmniRoute 可在任何地方运行
|
||
|
||
</div>
|
||
|
||
> 同一款应用,你的机器,你的规则。从全局 npm 安装到通过 Termux 在 **你的手机** 上运行。
|
||
|
||
| 平台 | 安装 | 亮点 |
|
||
| ------------------------- | ---------------------------------------- | --------------------------------------------------------- |
|
||
| 📦 **npm(全局)** | `npm install -g omniroute` | 一条命令,任意操作系统 |
|
||
| 🐳 **Docker** | `docker run … diegosouzapw/omniroute` | 多架构 **AMD64 + ARM64** |
|
||
| 🖥️ **桌面(Electron)** | `npm run electron:build` | 原生窗口 + 系统托盘 — **Windows / macOS / Linux** |
|
||
| 💪 **ARM** | native `arm64` | 树莓派、ARM 服务器、Apple Silicon |
|
||
| 📱 **Android(Termux)** | `pkg install nodejs && npx -y omniroute` | 在 **你的手机** 上运行,全天候,无需 root |
|
||
| 📲 **PWA** | "Add to Home Screen" | 全屏、离线、可从浏览器安装 |
|
||
| 🧩 **OpenCode 插件** | `@omniroute/opencode-provider` | 原生 OpenCode 集成 |
|
||
| 🛠️ **从源码构建** | `npm install && npm run dev` | 动手改造,参与贡献 |
|
||
|
||
<sub>📖 [Docker 指南](docs/guides/DOCKER_GUIDE.md) · [桌面版](electron/README.md) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)</sub>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🔒 私有且本地优先
|
||
|
||
</div>
|
||
|
||
> 你的密钥,你的机器,你的数据。OmniRoute 是一款 **本地代理(local proxy)** —— 从不回传数据。
|
||
|
||
- 🏠 **100% 在你的硬件上运行** —— npm、Docker、桌面端或你的手机。请求路径中没有 OmniRoute 云端。
|
||
- 🔐 **凭据静态加密** —— API 密钥与 OAuth 令牌使用 **AES-256-GCM** 密封存储。
|
||
- 🚫 **默认零遥测** —— 你的提示词仅发往 _你_ 选择的提供商,别无他处。
|
||
- 🛡️ **加固网关** —— API 密钥作用域、IP 过滤、速率限制、提示词注入防护、仅限回环地址的进程路由。
|
||
- 📜 **MIT 许可且完全开源** —— 审计每一行代码,永久自托管。
|
||
|
||
<sub>📖 [授权](docs/architecture/AUTHZ_GUIDE.md) · [防护栏](docs/security/GUARDRAILS.md) · [合规](docs/security/COMPLIANCE.md)</sub>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🔌 完整 CLI + A2A 与 MCP
|
||
|
||
</div>
|
||
|
||
> OmniRoute 不仅是服务器 —— 它还是带 **80+ 条命令** 的 **完整命令行驾驶舱(cockpit)**,并开放智能体协议,让 AI 智能体能够 **自主驱动** OmniRoute。
|
||
|
||
### ⌨️ 真正的 CLI(不只是 `start`)
|
||
|
||
```bash
|
||
omniroute # serve gateway + dashboard (port 20128)
|
||
omniroute chat # interactive TUI chat client (slash: /model /combo /skill /memory)
|
||
omniroute setup # guided first-run wizard
|
||
omniroute doctor # diagnose providers, ports, native deps
|
||
```
|
||
|
||
### 🛰️ 远程模式 —— 在此运行 CLI,OmniRoute 在 VPS 上
|
||
|
||
OmniRoute 在服务器上?用 **同一套 CLI** 从笔记本远程操控。使用作用域访问令牌登录一次;此后每条命令都指向远程实例。
|
||
|
||
```bash
|
||
omniroute connect 192.168.0.15 # password → scoped token, saved as a context
|
||
omniroute models list # ← runs against the REMOTE server
|
||
omniroute configure codex # ← picks a remote model, writes a local Codex profile
|
||
omniroute tokens create --name ci --scope read # mint narrower tokens for other machines
|
||
omniroute contexts use default # ← switch back to the local server
|
||
```
|
||
|
||
令牌按作用域划分:`read` / `write` / `admin`;会派生进程的路由仅限回环地址。
|
||
<sub>📖 [远程模式](docs/guides/REMOTE-MODE.md)</sub>
|
||
|
||
<div align="center">
|
||
|
||
`providers` · `oauth` · `keys` · `combo` · `nodes` · `models` · `cache` · `compression` · `cost` · `usage` · `quota` · `health` · `resilience` · `telemetry` · `logs` · `audit` · `mcp` · `a2a` · `cloud` · `memory` · `skills` · `eval` · `tunnel` · `backup` · `sync` · `webhooks` · `policy` · `pricing` · `translator` · `simulate` …
|
||
|
||
</div>
|
||
|
||
### 🤝 连接智能体 —— 由它自主控制 OmniRoute
|
||
|
||
通过 **MCP** 或 **A2A** 暴露 OmniRoute,任何有能力的智能体都能自主掌控整个网关 —— 路由、提供商、组合、缓存、压缩、记忆。
|
||
|
||
| 协议 | 端点 | 适用场景 |
|
||
| ------------------ | ----------------------------------------------- | ------------------------------------------------------ |
|
||
| 🧰 **MCP (stdio)** | `omniroute --mcp` | 接入 Claude Desktop、Cursor 及任意 MCP 客户端 |
|
||
| 🌊 **MCP (HTTP)** | `http://localhost:20128/api/mcp/stream` | 远程 MCP —— **95 个工具**、30 个作用域、完整审计追踪 |
|
||
| 📡 **MCP (SSE)** | `http://localhost:20128/api/mcp/sse` | 流式 MCP 传输 |
|
||
| 🤝 **A2A** | `http://localhost:20128/.well-known/agent.json` | 智能体间通信,**JSON-RPC 2.0** + SSE,6 项技能 |
|
||
|
||
```bash
|
||
# Give Claude Code the full OmniRoute toolset over MCP:
|
||
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
|
||
```
|
||
|
||
<sub>📖 [MCP 服务器](docs/frameworks/MCP-SERVER.md) · [A2A 服务器](docs/frameworks/A2A-SERVER.md) · [智能体协议](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)</sub>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🗜️ 自动节省 15–95% Token
|
||
|
||
</div>
|
||
|
||
> **何必多用 Token,少用就能搞定?** 每个请求都会 **透明地** 经过 OmniRoute 的压缩流水线 —— 无需修改客户端。它现已发展为 **10 个可组合引擎** 的栈,按顺序运行,并可根据路由组合灵活混搭 —— 借鉴了 [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 78K+)、[LLMLingua-2](https://github.com/microsoft/LLMLingua), 和 [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR) 的思路。
|
||
|
||
### 🧱 10 引擎栈
|
||
|
||
引擎按流水线顺序运行;每个引擎均可独立开关,并按组合单独配置:
|
||
|
||
| # | 引擎 | 作用 |
|
||
| --- | ----------------- | ------------------------------------------------------------------- |
|
||
| 1 | **Session-Dedup** | 剔除跨轮次重复内容(按内容寻址,跨轮次) |
|
||
| 2 | **CCR** | 将大块内容归档至检索标记之后,按需获取 |
|
||
| 3 | **RTK** | 智能工具结果过滤、去重与截断(感知命令) |
|
||
| 4 | **Headroom** | 对同质 JSON 数组进行无损表格式压缩(约 30%+) |
|
||
| 5 | **Relevance** | 针对最近一次用户查询进行抽取式句子评分 |
|
||
| 6 | **Caveman** | 基于规则的散文压缩(输出约 65–75%) |
|
||
| 7 | **LLMLingua-2** | 通过 MobileBERT ONNX 进行 ML 语义剪枝 —— 代码安全、异步 |
|
||
| 8 | **Lite** | 空白符与图片 URL 裁剪(低延迟基线) |
|
||
| 9 | **Aggressive** | 摘要化 + 旧轮次渐进式老化 |
|
||
| 10 | **Ultra** | 启发式 Token 剪枝,可选小模型(SLM)层级 |
|
||
|
||
代码块、URL 与结构化数据 **始终按字节级精确保留**。**一键预设** 可组合这些引擎:
|
||
|
||
| 模式 | 节省幅度 | 最适合 |
|
||
| ------------------------------ | ---------- | --------------------------- |
|
||
| 🪶 **Lite** | ~15% | 始终开启的安全默认 |
|
||
| 🪨 **Standard (Caveman)** | ~30% | 日常编码 |
|
||
| ⚡ **Aggressive** | ~50% | 长时、工具密集型会话 |
|
||
| 🔥 **Ultra** | ~75% | 最大节省 |
|
||
| 🧰 **RTK** | 60–90% | Shell/测试/构建/Git 输出 |
|
||
| 🔗 **Stacked (RTK → Caveman)** | **78–95%** | 混合提示词 + 工具日志 |
|
||
|
||
**真实示例 — 标准模式(Standard mode):**
|
||
|
||
> **压缩前(69 tokens):** _"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I would recommend using useMemo to memoize the object."_
|
||
>
|
||
> **压缩后(19 tokens):** _"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."_
|
||
>
|
||
> **答案相同。Token 减少 72%。零精度损失。** ✅
|
||
|
||
**PT-BR 示例 — [Troglodita](https://github.com/leninejunior/troglodita) 模式:**
|
||
|
||
> **Antes (42 tokens):** _"O problema é que o componente está re-renderizando porque uma nova referência de objeto está sendo criada em cada ciclo de renderização. Eu recomendaria usar useMemo."_
|
||
>
|
||
> **Depois (12 tokens):** _"Re-render: ref nova cada ciclo (objeto inline recriado). Usar `useMemo`."_
|
||
>
|
||
> **Mesma resposta. ~70% menos tokens. Precisão técnica intacta.** ✅
|
||
|
||
<br/>
|
||
|
||
### 📖 工作原理 — 流水线、架构与节省计算
|
||
|
||
```
|
||
Client (10,000 tok) ──▶ OmniRoute Compression (10 engines) ──▶ Provider (~1,080 tok, up to 95% saved)
|
||
```
|
||
|
||
默认堆叠组合会运行 `RTK → Caveman`。当两者作用于同一工具/上下文载荷时,节省效果会叠加:
|
||
|
||
```txt
|
||
combined = 1 − (1 − RTK) × (1 − Caveman_input)
|
||
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
|
||
range = 78.4 – 94.6%
|
||
```
|
||
|
||
代码块、URL、JSON 与结构化数据**始终**由保留引擎(preservation engine)保护。
|
||
|
||
### 🎚️ 超越引擎 — 输出风格、自适应拨盘与按请求控制
|
||
|
||
上述 10 个引擎压缩的是**输入**。另外三层决定**如何**、**何时**以及**输出什么**:
|
||
|
||
- **🪄 输出风格(Output Styles)** _(输出轴引导)_ — 注入确定性、可缓存的响应塑形指令;可组合,各自强度为 `lite` / `full` / `ultra`。添加一种风格只需一行注册表项:
|
||
- **简洁散文(Terse prose)** — 去掉废话/冠词/含糊其辞;技术实质保持精确。
|
||
- **更少代码(Less code)** — “懒惰资深开发者” YAGNI:最小可用改动,不搭未请求的脚手架。
|
||
- **简洁文言(Terse CJK / 文言)** — 文言文极简风格(按区域限制为 `zh`)。
|
||
- **🎯 自适应上下文预算(Adaptive context-budget)** _(拨盘)_ — 不再用单一开/关 token 阈值,而是按需逐级启用最便宜、损失最小的引擎,直至**适配模型的上下文窗口**。策略:`reserve-output`(默认,模型感知)· `percentage` · `absolute`。模式:`floor`(保证适配)· `replace-autotrigger`(你的显式选择优先)· `off`(旧版阈值)。
|
||
- **🎛️ 压缩决策位置** _(优先级,高 → 低)_ — 按请求 `x-omniroute-compression` 请求头 › 路由组合覆盖 › 当前命名配置 › 自适应/自动触发 › 面板默认 › 关闭。应用方案会在 `X-OmniRoute-Compression: <mode>; source=<source>` 响应头中回显。
|
||
|
||
按 token 阈值自动触发、拨动自适应拨盘、固定命名配置、设置一次性按请求选项,或为路由组合分配流水线 — 任选适合工作负载的方式。可选的离线**评估工具(eval harness)**(`npm run eval:compression`)会在你推广变更前,对固定语料库评估保真度与节省效果。
|
||
|
||
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# ⚡ 快速开始
|
||
|
||
</div>
|
||
|
||
**1) 安装并运行**
|
||
|
||
```bash
|
||
npm install -g omniroute
|
||
omniroute
|
||
```
|
||
|
||
仪表板:`http://localhost:20128` · API:`http://localhost:20128/v1`。
|
||
|
||
**2) 连接免费提供商(无需注册)**
|
||
|
||
仪表板 → **Providers** → 连接 **Kiro AI**(免费 Claude,每账户约 50 积分/月)或 **OpenCode Free**(无需认证)→ 完成。
|
||
|
||
**3) 指向你的编码工具**
|
||
|
||
```txt
|
||
Base URL: http://localhost:20128/v1
|
||
API Key: [copy from Dashboard → Endpoints]
|
||
Model: auto (zero-config smart routing — or any provider/model)
|
||
```
|
||
|
||
**4) 验证是否生效**
|
||
|
||
```bash
|
||
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
|
||
```
|
||
|
||
你应能看到已连接的模型列表。🎉 就这样 — 开始编码,OmniRoute 会为你自动路由与回退。
|
||
|
||
若客户端无法发送自定义请求头,OmniRoute 也提供带 token 的兼容别名:
|
||
|
||
```txt
|
||
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
|
||
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
|
||
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
|
||
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
|
||
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
|
||
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
|
||
```
|
||
|
||
仅当客户端无法附加 `Authorization: Bearer ...` 时使用这些别名。请求头认证仍是首选方式。
|
||
|
||
<br/>
|
||
|
||
## 📦 更多安装方式 — Docker、源码、pnpm、Arch
|
||
|
||
**🐳 Docker**
|
||
|
||
```bash
|
||
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
|
||
-p 20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
|
||
```
|
||
|
||
**🛠️ 从源码安装**
|
||
|
||
```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
|
||
# Using Nix flakes
|
||
nix develop
|
||
npm run dev
|
||
|
||
# Or using devbox
|
||
devbox run npm run dev
|
||
```
|
||
|
||
📖 [Docker Guide](docs/guides/DOCKER_GUIDE.md) — Compose 配置、Caddy HTTPS、Cloudflare 隧道。
|
||
|
||
**🦭 Podman**
|
||
|
||
```bash
|
||
# 1. Build the image
|
||
podman build --target runner-base -t omniroute:base .
|
||
|
||
# 2. Fix data directory permissions for rootless Podman
|
||
mkdir -p data && podman unshare chown 1000:1000 ./data
|
||
|
||
# 3. Set runtime in .env, then run (see contrib/podman/ for Quadlet)
|
||
echo "CONTAINER_HOST=podman" >> .env
|
||
podman compose --profile base up -d
|
||
```
|
||
|
||
📖 [Podman Guide](contrib/podman/README.md) — Quadlet 设置、podman-compose、Quadlet。
|
||
|
||
**⚡ 更快/更精简的安装(跳过原生构建)**
|
||
|
||
原生 SQLite 引擎(`better-sqlite3`)是**可选**依赖,因此全局安装不会因从源码编译而阻塞:当你的平台/Node 有匹配项时使用预编译二进制,否则透明回退到纯 JS 引擎(Node 22+ 为 `node:sqlite`,否则为捆绑的 `sql.js` WASM)— 无需构建工具。
|
||
|
||
若要完全跳过安装后原生预热(CI、无头环境或慢机器):
|
||
|
||
```bash
|
||
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 also skips it
|
||
```
|
||
|
||
最快安装请优先使用 **pnpm**(内容寻址存储 + 硬链接 — 见上文)。
|
||
若要无仪表板的无头运行时,请使用 Docker `base` 配置(上文)或
|
||
[Termux guide](docs/guides/TERMUX_GUIDE.md)。CLI 与 Web 仪表板由同一进程在同一端口提供,因此目前没有单独的仅 CLI 包。
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 🎬 OmniRoute 实战
|
||
|
||
</div>
|
||
|
||
<div align="center">
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="280">
|
||
<a href="https://www.youtube.com/watch?v=Rxdc36yUyOQ"><img src="https://img.youtube.com/vi/Rxdc36yUyOQ/maxresdefault.jpg" alt="Guia em Português" width="260"/></a><br/>
|
||
<b>🇧🇷 Português</b><br/><sub>Guia completo</sub>
|
||
</td>
|
||
<td align="center" width="280">
|
||
<a href="https://www.youtube.com/watch?v=CMzyOiUyEVc"><img src="https://img.youtube.com/vi/CMzyOiUyEVc/maxresdefault.jpg" alt="English Guide" width="260"/></a><br/>
|
||
<b>🇺🇸 English</b><br/><sub>Complete walkthrough</sub>
|
||
</td>
|
||
<td align="center" width="280">
|
||
<a href="https://www.youtube.com/watch?v=il_5Ii6v4-Y"><img src="https://img.youtube.com/vi/il_5Ii6v4-Y/maxresdefault.jpg" alt="Руководство" width="260"/></a><br/>
|
||
<b>🇷🇺 Русский</b><br/><sub>Полное руководство</sub>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div align="center">
|
||
|
||
> 🎬 **制作了 OmniRoute 相关视频?** 提交 [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) 或 [discussion](https://github.com/diegosouzapw/OmniRoute/discussions) 并附上链接 — 我们会在此展示。
|
||
|
||
</div>
|
||
|
||
<br/>
|
||
</div>
|
||
|
||
<div align="center">
|
||
|
||
# 📚 探索更多
|
||
|
||
</div>
|
||
|
||
<details>
|
||
<summary><b>💰 定价一览与 $0 免费技术栈(11 家提供商)</b></summary>
|
||
|
||
<br/>
|
||
|
||
| 层级 | 示例 | 费用 |
|
||
| --------------------------- | ---------------------------------------- | ---------- |
|
||
| 💳 **订阅** | Claude Code Pro / Codex / Copilot | $10–200/mo |
|
||
| 🔑 **API Key(免费层级)** | NVIDIA NIM, Cerebras, Groq | **FREE** |
|
||
| 💰 **低价** | GLM-5 $0.5/1M · MiniMax M2.5 $0.3/1M | pennies |
|
||
| 🆓 **永久免费** | Kiro, Qoder, Qwen, Pollinations, LongCat | **$0** |
|
||
|
||
**$0 免费技术栈 — 组合成牢不可破的一体化方案:**
|
||
|
||
| 提供商 | 前缀 | 免费模型 | 配额 |
|
||
| ----------------- | ----------- | ----------------------------------------------- | ------------------ |
|
||
| **Kiro** | `kr/` | Claude Sonnet 4.5, Haiku 4.5, Opus 4.6 | 50 credits/mo |
|
||
| **Qoder** | `if/` | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 | ♾️ Unlimited |
|
||
| **Qwen** | `qw/` | qwen3-coder-plus/flash/next | ♾️ Unlimited |
|
||
| **Pollinations** | `pol/` | GPT-5, Claude, Gemini, DeepSeek, Llama 4 | No key needed |
|
||
| **LongCat** | `lc/` | LongCat-2.0 | 10M one-time (KYC) |
|
||
| **Cloudflare AI** | `cf/` | 50+ models | 10K neurons/day |
|
||
| **NVIDIA NIM** | `nvidia/` | 129 models | ~40 RPM |
|
||
| **Cerebras** | `cerebras/` | Qwen3 235B, GPT-OSS 120B | 1M tok/day |
|
||
|
||
> 💡 仪表板中的「cost」是**节省追踪器**,而非账单 — OmniRoute 从不向你收费。使用免费模型时显示的「$290 total cost」意味着**节省了 $290**。
|
||
|
||
📖 完整免费目录 → [`docs/reference/FREE_TIERS.md`](docs/reference/FREE_TIERS.md) — 25+ 家提供商、配额、base URL。
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>🎯 使用场景 — 现成组合方案手册</b></summary>
|
||
|
||
<br/>
|
||
|
||
**永久 $0:**
|
||
|
||
```
|
||
1. kr/claude-sonnet-4.5 (Kiro — ~50 credits/mo per acct)
|
||
2. if/kimi-k2-thinking (Qoder — unlimited)
|
||
3. pol/gpt-5 (Pollinations — no key)
|
||
4. lc/LongCat-2.0 (10M one-time backup, KYC)
|
||
Compression: aggressive (~50%) → double your free quota · Cost: $0/mo
|
||
```
|
||
|
||
**7×24 不间断:** 串联 2 个订阅 → 低价 → 免费,形成 5 层回退。
|
||
**受限地区:** 免费提供商 + 全局/按提供商代理 → 从任何国家访问 AI。
|
||
**最大节省:** 订阅 + 低价备份 + `ultra` 压缩(约 75%)→ 重度用户每月可节省约 $150–300。
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>🌍 绕过地理封锁 — 三级代理 + 隐匿</b></summary>
|
||
|
||
<br/>
|
||
|
||
🇷🇺 🇨🇳 🇮🇷 🇨🇺 🇹🇷 身处受限地区?OmniRoute 的**三级代理**(全局 / 按提供商 / 按连接)可代理 API 请求、OAuth 流程、连接测试、token 刷新与模型同步。
|
||
|
||
- **协议:** HTTP/HTTPS、SOCKS5、带认证的代理
|
||
- **🆓 1proxy 市场** — 数百个免费已验证代理、质量评分、自动轮换
|
||
- **反检测** — TLS 指纹伪装(`wreq-js`)、CLI 指纹匹配、代理 IP 保留
|
||
|
||
📖 [`docs/ops/PROXY_GUIDE.md`](docs/ops/PROXY_GUIDE.md)
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>✨ 完整功能列表 — 30+ 项能力(memory、evals、observability)</b></summary>
|
||
|
||
<br/>
|
||
|
||
**路由:** 17 种策略 · 任务感知智能路由 · thinking budget 控制 · 通配符路由 · system prompt 注入。
|
||
**兼容性:** OpenAI ↔ Claude ↔ Gemini ↔ Responses API · 自动 OAuth 刷新(PKCE,8 家提供商)· 多账号轮询 · Batch + Files API · 实时 OpenAPI 3.0。
|
||
**协议:** MCP(95 个工具,3 种传输,30 个 scope)· A2A(JSON-RPC 2.0、SSE、6 项 skill)· ACP · 云端 agent(Codex、Cursor、Devin、Jules)。
|
||
**插件:** 自定义插件市场(系统配置的 registry URL,带 SSRF 防护的 fetch)· 安装 / 启用 / 禁用 · Notion + Obsidian 知识库集成(WebDAV 文件服务器、vault 搜索、笔记 CRUD)。
|
||
**嵌入式服务:** 一键安装与本地 sidecar 服务(CLIProxy、NineRouter)的生命周期管理。
|
||
**质量与运维:** 内置 **Evals**(golden-set:exact/contains/regex/custom)· guardrails(PII、注入、vision)· 健康仪表板 · p50/p95/p99 遥测 · webhooks · 合规审计。
|
||
**AI Agent Skills:** 即插即用的 Markdown manifest — 将任意 agent 指向 `skills/*/SKILL.md` manifest。43 项 skill 可用。
|
||
|
||
📖 [MCP Server](open-sse/mcp-server/README.md) · [A2A Server](src/lib/a2a/README.md) · [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md) · [Features Gallery](docs/guides/FEATURES.md)
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>📖 安装、环境变量与常见问题</b></summary>
|
||
|
||
<br/>
|
||
|
||
| 环境变量 | 默认值 | 用途 |
|
||
| ----------------- | -------------- | -------------------------------- |
|
||
| `PORT` | `20128` | API 与仪表板端口 |
|
||
| `REQUIRE_API_KEY` | `false` | 要求所有请求携带 API key |
|
||
| `DATA_DIR` | `~/.omniroute` | 数据库与配置存储 |
|
||
|
||
**OmniRoute 会向我收费吗?** 不会 — 它是运行在你本机上的免费开源软件。你只需直接向付费提供商付款。OmniRoute 没有计费系统。
|
||
**免费提供商真的无限吗?** 大体如此 — Qoder、Pollinations、LongCat 和 Cloudflare 免费且无单账号 credit 上限。Kiro 也免费,但每个账号约 50 credits/月上限。在组合中堆叠多个免费提供商,自动回退可让你以 $0 持续服务。
|
||
**压缩会降低质量吗?** 不会 — 它仅压缩**输入**;代码、URL、JSON 始终受保护。
|
||
**在 AI 受限地区能用吗?** 可以 — 三级代理 + 1proxy 市场可覆盖全部 237 家提供商。
|
||
|
||
📖 [User Guide](docs/guides/USER_GUIDE.md) · [API Reference](docs/reference/API_REFERENCE.md) · [Environment Config](docs/reference/ENVIRONMENT.md)
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>🐛 故障排查</b></summary>
|
||
|
||
<br/>
|
||
|
||
| 问题 | 快速修复 |
|
||
| ----------------------------------------- | ------------------------------------------------------------- |
|
||
| "Language model did not provide messages" | 提供商配额耗尽 → 使用组合回退 |
|
||
| Rate limiting (429) | 添加回退:`cc/claude → glm/glm-4.7 → if/kimi-k2-thinking` |
|
||
| OAuth token expired | 自动刷新;若卡住,在 Providers 中删除并重新认证 |
|
||
| `unsupported_country_region_territory` | 在 Settings → Proxy 中配置代理 |
|
||
| Docker SQLite locks | 使用 `--stop-timeout 40` 进行干净的 WAL checkpoint |
|
||
| Node runtime errors | 使用 Node `>=22.0.0 <23` 或 `>=24.0.0 <27` |
|
||
|
||
🐛 **报告 bug?** 运行 `npm run system-info` 并附上 `system-info.txt`。📖 [`docs/guides/TROUBLESHOOTING.md`](docs/guides/TROUBLESHOOTING.md)
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>📸 仪表板截图</b></summary>
|
||
|
||
<br/>
|
||
|
||
| 页面 | 截图 | 页面 | 截图 |
|
||
| ---------- | ------------------------------------------------- | ---------- | --------------------------------------------- |
|
||
| Providers |  | Combos |  |
|
||
| Analytics |  | Health |  |
|
||
| Translator |  | Settings |  |
|
||
| CLI Tools |  | Usage Logs |  |
|
||
|
||
</details>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# 📧 支持与社区
|
||
|
||
> 💬 **与社区交流** — Discord、Telegram 和 WhatsApp(🌍 / 🇧🇷)链接见 [本 README 顶部](#-join-the-community)。
|
||
|
||
- 🌍 **网站**: [omniroute.online](https://omniroute.online)
|
||
- 🐙 **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
||
- 🐛 **Issues**: [报告 Bug](https://github.com/diegosouzapw/OmniRoute/issues)(请附上 `npm run system-info` 输出)
|
||
- 🤝 **参与贡献**: 参见 [CONTRIBUTING.md](CONTRIBUTING.md),或选择一个 `good first issue`
|
||
|
||
</div>
|
||
|
||
---
|
||
|
||
<br/>
|
||
<div align="center">
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
</div>
|
||
|
||
- **Runtime(运行时)**: Node.js 22.x 或 24.x LTS(推荐 24 LTS)— `>=22.0.0 <23 || >=24.0.0 <27`
|
||
- **Language(语言)**: TypeScript 6.0 — 在 `src/` 与 `open-sse/` 中实现 **100% TypeScript**(自 v2.0 起,核心模块中 `any` 为零)
|
||
- **Framework(框架)**: Next.js 16 + React 19 + Tailwind CSS 4
|
||
- **Database(数据库)**: better-sqlite3 (SQLite) + LowDB (JSON legacy) — 领域状态、代理日志、MCP 审计、路由决策、记忆、技能
|
||
- **Schemas(模式)**: Zod(MCP 工具 I/O 校验、API 契约)
|
||
- **Protocols(协议)**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
|
||
- **Streaming(流式传输)**: Server-Sent Events (SSE) + WebSocket bridge(`/v1/ws`)
|
||
- **Auth(认证)**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization
|
||
- **Testing(测试)**: Node.js test runner + Vitest(跨 2,586 个文件共 **21,000+ 测试用例** — 单元、集成、E2E、安全、生态)
|
||
- **Platforms(平台)**: Desktop (Electron)、Android (Termux)、PWA(任意浏览器)
|
||
- **CI/CD**: GitHub Actions(发布时自动 npm publish + Docker Hub)
|
||
- **Website(网站)**: [omniroute.online](https://omniroute.online)
|
||
- **Package(包)**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
|
||
- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
|
||
- **Resilience(韧性)**: Circuit breaker、指数退避、防惊群(anti-thundering herd)、TLS spoofing、auto-combo 自愈
|
||
|
||
<div align="center">
|
||
|
||
<br/>
|
||
|
||
## 📖 文档
|
||
|
||
</div>
|
||
|
||
### 📘 入门指南
|
||
|
||
| Document | Description |
|
||
| -------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
||
| [User Guide](docs/guides/USER_GUIDE.md) | 提供商、组合(combo)、CLI 集成、部署 |
|
||
| [Setup Guide](docs/guides/SETUP_GUIDE.md) | 完整安装方式、CLI 工具配置、协议设置、超时调优 |
|
||
| [CLI Tools Guide](docs/reference/CLI-TOOLS.md) | Claude Code、Codex、Cursor、Cline、OpenClaw、Kilo、Copilot 各工具配置 |
|
||
| [Remote Mode](docs/guides/REMOTE-MODE.md) | 通过作用域访问令牌,从笔记本 CLI 远程驱动 OmniRoute(VPS) |
|
||
| [Claude Code Config](docs/guides/CLAUDE-CODE-CONFIGURATION.md) | 将 Claude Code 指向 OmniRoute(本地/远程),配合 `launch` 及按模型配置 |
|
||
| [Quick Start](README.md#-quick-start) | 3 步:安装 → 连接 → 配置 |
|
||
|
||
### 🔧 运维与部署
|
||
|
||
| Document | Description |
|
||
| -------------------------------------------------------- | -------------------------------------------------------------- |
|
||
| [Docker Guide](docs/guides/DOCKER_GUIDE.md) | Docker run、Compose profiles、Caddy HTTPS、tunnels、镜像标签 |
|
||
| [Podman Guide](contrib/podman/README.md) | Quadlet systemd 集成、podman-compose、SELinux |
|
||
| [VM Deployment](docs/ops/VM_DEPLOYMENT_GUIDE.md) | 完整指南:VM + nginx + Cloudflare 配置 |
|
||
| [Fly.io Deployment](docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) | 部署到 Fly.io 并配置持久化存储 |
|
||
| [Termux Guide](docs/guides/TERMUX_GUIDE.md) | 通过 Termux 在 Android 上运行 OmniRoute |
|
||
| [PWA Guide](docs/guides/PWA_GUIDE.md) | 渐进式 Web 应用安装、缓存、架构 |
|
||
| [Uninstall Guide](docs/guides/UNINSTALL.md) | 各安装方式的彻底卸载 |
|
||
| [Environment Config](docs/reference/ENVIRONMENT.md) | 完整的 `.env` 变量与参考说明 |
|
||
|
||
### 🧠 功能与架构
|
||
|
||
| Document | Description |
|
||
| ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
||
| [Architecture](docs/architecture/ARCHITECTURE.md) | 系统架构、数据流与内部实现 |
|
||
| [Compression Guide](docs/compression/COMPRESSION_GUIDE.md) | 7 档流水线:off / lite / standard / aggressive / ultra / RTK / stacked |
|
||
| [RTK Compression](docs/compression/RTK_COMPRESSION.md) | 命令输出压缩、过滤器、信任、校验、原始输出恢复 |
|
||
| [Compression Engines](docs/compression/COMPRESSION_ENGINES.md) | Caveman、RTK、stacked 流水线,以及 dashboard/API/MCP 界面 |
|
||
| [Compression Rules Format](docs/compression/COMPRESSION_RULES_FORMAT.md) | Caveman 与 RTK 过滤器的 JSON 规则包模式 |
|
||
| [Compression Language Packs](docs/compression/COMPRESSION_LANGUAGE_PACKS.md) | 语言检测与 Caveman 规则包编写 |
|
||
| [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md) | 熔断器、冷却、队列、防惊群、TLS spoofing |
|
||
| [Auto-Combo Engine](docs/routing/AUTO-COMBO.md) | 9 因子评分、模式包、自愈 |
|
||
| [Proxy Guide](docs/ops/PROXY_GUIDE.md) | 三级代理系统、1proxy 市场、registry CRUD |
|
||
| [Free Tiers](docs/reference/FREE_TIERS.md) | 25+ 免费 API 提供商汇总目录 |
|
||
| [Features Gallery](docs/guides/FEATURES.md) | 带截图的可视化仪表盘导览 |
|
||
| [Codebase Documentation](docs/architecture/CODEBASE_DOCUMENTATION.md) | 面向新手的代码库导读 |
|
||
|
||
### 🤖 协议与 API
|
||
|
||
| Document | Description |
|
||
| ------------------------------------------------- | --------------------------------------------------- |
|
||
| [API Reference](docs/reference/API_REFERENCE.md) | 全部端点及示例 |
|
||
| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 规范 |
|
||
| [MCP Server](open-sse/mcp-server/README.md) | 95 个 MCP 工具、IDE 配置、Python/TS/Go 客户端 |
|
||
| [MCP Server Guide](docs/frameworks/MCP-SERVER.md) | MCP 安装、传输方式与工具参考 |
|
||
| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 协议、技能、流式传输、任务管理 |
|
||
| [A2A Server Guide](docs/frameworks/A2A-SERVER.md) | A2A agent card、任务、技能与流式传输 |
|
||
|
||
### 📋 项目与质量
|
||
|
||
| Document | Description |
|
||
| -------------------------------------------------- | ----------------------------------------------- |
|
||
| [Contributing](CONTRIBUTING.md) | 开发环境与贡献指南 |
|
||
| [Changelog](CHANGELOG.md) | 各版本完整发布历史 |
|
||
| [Security Policy](SECURITY.md) | 漏洞报告与安全实践 |
|
||
| [i18n Guide](docs/guides/I18N.md) | 40+ 语言支持、翻译工作流、RTL |
|
||
| [Release Checklist](docs/ops/RELEASE_CHECKLIST.md) | 发布前验证步骤 |
|
||
| [Coverage Plan](docs/ops/COVERAGE_PLAN.md) | 测试覆盖策略与 21,000+ 测试套件 |
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
# ⭐ 顶级贡献者
|
||
|
||
> OmniRoute 由充满热情的开源社区共同塑造。这些成员做出了卓越贡献,直接影响了项目的质量、稳定性和影响力。**感谢他们。**
|
||
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="160">
|
||
<a href="https://github.com/oyi77">
|
||
<img src="https://github.com/oyi77.png" width="40" style="border-radius:50%" alt="oyi77"/><br/>
|
||
<b>oyi77</b>
|
||
</a><br/>
|
||
<sub>🥇 189 commits • +155K lines</sub><br/>
|
||
<sub>分析引擎、SQL 聚合、<br/>代理市场、测试覆盖率</sub>
|
||
</td>
|
||
<td align="center" width="160">
|
||
<a href="https://github.com/christopher-s">
|
||
<img src="https://github.com/christopher-s.png" width="40" style="border-radius:50%" alt="Chris Staley"/><br/>
|
||
<b>Chris Staley</b>
|
||
</a><br/>
|
||
<sub>🥈 70 commits • +5.7K lines</sub><br/>
|
||
<sub>SSE 流加固、Responses API、<br/>Gemini 分页、测试回归修复</sub>
|
||
</td>
|
||
<td align="center" width="160">
|
||
<a href="https://github.com/zenobit">
|
||
<img src="https://github.com/zenobit.png" width="40" style="border-radius:50%" alt="zenobit"/><br/>
|
||
<b>zenobit</b>
|
||
</a><br/>
|
||
<sub>🥉 62 commits • +24K lines</sub><br/>
|
||
<sub>CI/CD 流水线、33 种语言 i18n、<br/>Void Linux 包、平台修复</sub>
|
||
</td>
|
||
<td align="center" width="160">
|
||
<a href="https://github.com/rdself">
|
||
<img src="https://github.com/rdself.png" width="40" style="border-radius:50%" alt="R.D. & Randi"/><br/>
|
||
<b>R.D. & Randi</b>
|
||
</a><br/>
|
||
<sub>🏅 108 commits • +30K lines</sub><br/>
|
||
<sub>Endpoints 页面、隧道集成、<br/>Docker 工作流、A2A 状态、压缩 UI</sub>
|
||
</td>
|
||
<td align="center" width="160">
|
||
<a href="https://github.com/benzntech">
|
||
<img src="https://github.com/benzntech.png" width="40" style="border-radius:50%" alt="benzntech"/><br/>
|
||
<b>benzntech</b>
|
||
</a><br/>
|
||
<sub>🏅 22 commits • +7.5K lines</sub><br/>
|
||
<sub>Electron 桌面应用、自动更新、<br/>发布构建工作流、跨平台 CI</sub>
|
||
</td>
|
||
<td align="center" width="160">
|
||
<a href="https://github.com/herjarsa">
|
||
<img src="https://github.com/herjarsa.png" width="40" style="border-radius:50%" alt="herjarsa"/><br/>
|
||
<b>herjarsa</b>
|
||
</a><br/>
|
||
<sub>🏅 21 commits • +6K lines</sub><br/>
|
||
<sub>零延迟组合、vision-bridge 自动路由、<br/>catalog 上下文长度、弹性 429 提示</sub>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
> 🙏 这些贡献者的功能、缺陷修复和基础设施改进,是 OmniRoute 可靠且功能丰富的重要组成部分。每一次 Pull Request、每一个测试用例、每一份 i18n 翻译文件都至关重要。开源是由像他们这样的人共同构建的。
|
||
|
||
</div>
|
||
|
||
---
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
## 👥 280+ 贡献者
|
||
|
||
</div>
|
||
|
||
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
|
||
|
||
### 如何贡献
|
||
|
||
1. Fork 仓库
|
||
2. 创建功能分支(`git checkout -b feature/amazing-feature`)
|
||
3. 提交更改(`git commit -m 'Add amazing feature'`)
|
||
4. 推送到分支(`git push origin feature/amazing-feature`)
|
||
5. 发起 Pull Request
|
||
|
||
详细指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
|
||
|
||
### 发布新版本
|
||
|
||
```bash
|
||
# Create a release — npm publish happens automatically
|
||
gh release create v3.8.2 --title "v3.8.2" --generate-notes
|
||
```
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
## 📊 Star 数
|
||
|
||
<a href="https://www.star-history.com/?repos=diegosouzapw%2Fomniroute&type=date&legend=top-left">
|
||
<picture>
|
||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=diegosouzapw/omniroute&type=date&theme=dark&legend=top-left" />
|
||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=diegosouzapw/omniroute&type=date&legend=top-left" />
|
||
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=diegosouzapw/omniroute&type=date&legend=top-left" />
|
||
</picture>
|
||
</a>
|
||
</div>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
## 🌍 StarMapper
|
||
|
||
<a href="https://starmapper.bruniaux.com/diegosouzapw/omniroute">
|
||
<picture>
|
||
<source media="(prefers-color-scheme: dark)" srcset="https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute?theme=dark" />
|
||
<source media="(prefers-color-scheme: light)" srcset="https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute?theme=light" />
|
||
<img alt="StarMapper" src="https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute" />
|
||
</picture>
|
||
</a>
|
||
</div>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
|
||
## 🙏 致谢
|
||
|
||
</div>
|
||
|
||
OmniRoute 站在巨人的肩膀上。它最初是 **[9router](https://github.com/decolua/9router)** 的一个 fork,也是 Go 项目 **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** 的 TypeScript 移植版——此后,下方每个子系统都受到了先行开源项目的启发。它们各自塑造了 OmniRoute 的一个具体组成部分。谨以此向它们致以谢意。🙏
|
||
|
||
> ⭐ Star 数截至 2026 年 6 月 — 请为这些项目点 Star。
|
||
|
||
### 🧬 渊源与网关
|
||
|
||
| 项目 | ⭐ | 对 OmniRoute 的启发 |
|
||
| ------------------------------------------------------------------------------- | ----: | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **[9router](https://github.com/decolua/9router)** · decolua | 19.0k | 本 fork 所基于的原始项目——在此扩展了多模态 API,并完成了完整的 TypeScript 重写。 |
|
||
| **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** · router-for-me | 38.8k | 启发本次 JavaScript / TypeScript 移植的 Go 实现。 |
|
||
| **[LiteLLM](https://github.com/BerriAI/litellm)** · BerriAI | 52.1k | 其公开定价数据集为我们的成本追踪同步提供数据,其提供商标准化模型也为我们的路由设计提供了参考。 |
|
||
|
||
### 🗜️ 上下文与 Token 压缩 — 引擎
|
||
|
||
| 项目 | ⭐ | 对 OmniRoute 的启发 |
|
||
| ----------------------------------------------------------------------------- | ----: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **[Caveman](https://github.com/JuliusBrussee/caveman)** · JuliusBrussee | 78.2k | 病毒式传播的「why use many token when few token do trick」项目——其 caveman-speak 理念驱动了我们的标准压缩模式及 30+ 条填充/凝练规则。 |
|
||
| **[RTK – Rust Token Killer](https://github.com/rtk-ai/rtk)** · rtk-ai | 67.3k | 高性能命令输出压缩——启发了我们的 RTK 引擎、JSON 过滤 DSL、原始输出恢复,以及 RTK → Caveman 堆叠流水线。 |
|
||
| **[headroom](https://github.com/headroomlabs-ai/headroom)** · headroomlabs-ai | 54.5k | 可逆上下文压缩(SmartCrusher)——启发了我们的 `headroom` 引擎及 `ccr` 检索标记模式。 |
|
||
| **[LLMLingua](https://github.com/microsoft/LLMLingua)** · Microsoft | 6.4k | 提示压缩研究(LLMLingua / LLMLingua-2)——启发了我们异步、代码安全、fail-open 的 `llmlingua` 引擎。 |
|
||
| **[llmlingua-2-js](https://github.com/atjsh/llmlingua-2-js)** · atjsh | 28 | JS/ONNX 移植版(MobileBERT / XLM-RoBERTa),用作我们 LLMLingua 引擎的 worker-thread 后端。 |
|
||
| **[Troglodita](https://github.com/leninejunior/troglodita)** · Lenine Júnior | 16 | PT-BR Token 压缩——驱动我们的 pt-BR 语言包:针对巴西葡萄牙语语法的赘语削减与填充词移除。 |
|
||
| **[ponytail](https://github.com/DietrichGebert/ponytail)** · DietrichGebert | 68.8k | 病毒式传播的「懒惰资深开发者」YAGNI-coder 技能——启发了我们的 **less-code** Output Style:以最小可行变更引导,削减_生成_代码(与 Caveman 简洁文风相对应的输出轴姊妹方案)。 |
|
||
|
||
### 🧩 紧凑格式、Token 研究与代码感知工具
|
||
|
||
| Project | ⭐ | How it inspired OmniRoute |
|
||
| ---------------------------------------------------------------------------------------------- | ----: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **[TOON](https://github.com/toon-format/toon)** · toon-format | 24.7k | Token 导向对象表示法(Token-Oriented Object Notation)——其列式、表头加行的模型塑造了我们的表格压缩阶段。 |
|
||
| **[GCF – Graph Compact Format](https://github.com/blackwell-systems/gcf)** · Blackwell Systems | 14 | 面向 Schema 的「面向 LLM 的 JSON」表示法——与 `[N rows]` 标记共同启发了我们的无损同质数组压缩。 |
|
||
| **[token-optimizer-mcp](https://github.com/ooples/token-optimizer-mcp)** · ooples | 421 | Brotli/SQLite 缓存 + 每会话上下文增量——启发了我们的 `session-dedup` 引擎。 |
|
||
| **[token-savior](https://github.com/Mibayy/token-savior)** · Mibayy | 1.0k | Bash 输出压缩 + MCP 配置文件——启发了我们的压缩退出(bail-out)机制与 MCP 工具清单精简。 |
|
||
| **[token-saver](https://github.com/ppgranger/token-saver)** · ppgranger | 110 | 内容感知、按文件类型的输出压缩,带失败感知的退出策略——验证了我们的按类型分发与最小收益跳过逻辑。 |
|
||
| **[token-optimizer](https://github.com/alexgreensh/token-optimizer)** · alexgreensh | 1.5k | 「找出幽灵 Token」(Find the ghost tokens)——其卸载 + 可恢复句柄模式影响了我们的 CCR(Context Control & Recovery)卸载思路。 |
|
||
| **[TokenMizer](https://github.com/Shweta-Mishra-ai/tokenmizer)** · Shweta-Mishra-ai | 2 | 会话图 + 跨轮次行级去重蓝图——为我们的会话去重设计提供了参考。 |
|
||
| **[OmniCompress](https://github.com/jessefreitas/OmniCompress)** · jessefreitas | 2 | Rust 列式 JSON + 内容寻址检索 + 跨消息去重——验证了我们的 `headroom`/`ccr`/`session-dedup` 引擎设计,以及缓存稳定的「压缩形式与位置无关」不变量。 |
|
||
| **[mcp-compressor](https://github.com/atlassian-labs/mcp-compressor)** · Atlassian Labs | 89 | MCP 工具 schema/描述压缩——为我们的 MCP 工具清单基数缩减提供了参考。 |
|
||
| **[RepoMapper](https://github.com/pdavis68/RepoMapper)** · pdavis68 | 181 | Aider 风格的仓库映射排序——为我们的 repo-map / 检索排序探索提供了参考。 |
|
||
| **[quiet-shell-mcp](https://github.com/mrsimpson/quiet-shell-mcp)** · mrsimpson | 4 | 基于 MCP 的声明式 Shell 输出缩减——验证了我们的声明式 Bash 输出压缩。 |
|
||
| **[ts-morph](https://github.com/dsherret/ts-morph)** · David Sherret | 6.1k | TypeScript 编译器 API 工具包——启发了我们基于解析器的注释移除,同时保留字符串、模板和正则字面量。 |
|
||
|
||
### 🧠 记忆与 RAG
|
||
|
||
| Project | ⭐ | How it inspired OmniRoute |
|
||
| ------------------------------------------------------------------ | ----: | ------------------------------------------------------------------------------------------------------------------- |
|
||
| **[Mem0](https://github.com/mem0ai/mem0)** · mem0ai | 59.8k | 通用记忆层——其以代理作为读/写边界的模型塑造了我们的记忆架构。 |
|
||
| **[Letta (MemGPT)](https://github.com/letta-ai/letta)** · letta-ai | 23.6k | 带分层记忆的有状态智能体——启发了我们的上下文控制与恢复(Context Control & Recovery,CCR)分层模型。 |
|
||
| **[WFGY](https://github.com/onestardao/WFGY)** · onestardao | 1.8k | 涵盖 16 种常见 RAG/LLM 故障模式的 ProblemMap 分类法——是我们故障排查指南中的共用词汇。 |
|
||
|
||
### 🛰️ 流量检查、MITM 与透明代理
|
||
|
||
| Project | ⭐ | How it inspired OmniRoute |
|
||
| --------------------------------------------------------------------------------- | ---: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **[llm-interceptor](https://github.com/chouzz/llm-interceptor)** · chouzz | 48 | 对编程助手 ↔ LLM 流量的 MITM 拦截/分析——我们的 Traffic Inspector 移植了其 SSE 合并、会话归一化、主机透传与密钥掩码(MIT)。 |
|
||
| **[ProxyBridge](https://github.com/InterceptSuite/ProxyBridge)** · InterceptSuite | 5.3k | 透明的逐进程代理路由——启发了我们崩溃安全的 MITM 拆卸、Socket 空闲超时、`/proc` 进程归因与 TPROXY 捕获。 |
|
||
|
||
### 📚 模型数据、可观测性与 UI
|
||
|
||
| Project | ⭐ | How it inspired OmniRoute |
|
||
| -------------------------------------------------------------------------- | ----: | -------------------------------------------------------------------------------------------------------------------------- |
|
||
| **[models.dev](https://github.com/anomalyco/models.dev)** · SST / OpenCode | 5.6k | AI 模型规格、定价与能力的开放数据库——已原生同步至我们的模型目录。 |
|
||
| **[React Flow / xyflow](https://github.com/xyflow/xyflow)** · xyflow | 37.4k | 基于节点的图库——驱动我们实时的 Compression Studio 与 Combo/Routing Studio。 |
|
||
| **[LangGraph](https://github.com/langchain-ai/langgraph)** · LangChain | 36.1k | LangGraph Studio 的实时工作流图可视化——启发了我们 Studios 的实时级联视图。 |
|
||
| **[Langfuse](https://github.com/langfuse/langfuse)** · Langfuse | 30.1k | 其 trace → span → generation 可观测性模型——塑造了 Compression Studio 的瀑布图。 |
|
||
| **[Kiali](https://github.com/kiali/kiali)** · Kiali | 3.6k | Istio 服务网格可观测性——启发了 Routing/Combo Studio 中的熔断器徽章与错误边可视化。 |
|
||
| **[lobe-icons](https://github.com/lobehub/lobe-icons)** · LobeHub | 2.2k | AI/LLM 品牌 Logo——在我们的仪表盘各处渲染服务商图标。 |
|
||
|
||
### 🛡️ 安全(Security)
|
||
|
||
| 项目 | ⭐ | 对 OmniRoute 的启发 |
|
||
| ------------------------------------------------------------------------------------------- | --: | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||
| **[awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults)** · tldrsec | 708 | 一份精心整理的默认安全(secure-by-default)库清单,指导我们的安全选型(Helmet.js、DOMPurify、ssrf-req-filter、safe-regex、Google Tink)。 |
|
||
|
||
## ❤️ 支持
|
||
|
||
OmniRoute 免费且开源,在公开环境中构建与维护。若它为您节省了时间或金钱,欢迎考虑支持开发:
|
||
|
||
- ⭐ **为仓库点 Star** — 这确实有助于提升可见度
|
||
- 💖 **[GitHub Sponsors](https://github.com/sponsors/diegosouzapw)** — 资助持续维护与新供应商接入
|
||
- 🐛 **报告 Bug 并分享反馈**,欢迎在 [Discussions](https://github.com/diegosouzapw/OmniRoute/discussions)
|
||
|
||
## 📄 许可证
|
||
|
||
MIT License — 详见 [LICENSE](LICENSE)。
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
|
||
**[⬆ 返回顶部](#-omniroute)** · 为开源 AI 社区倾力打造 ❤️
|
||
|
||
<sub>OmniRoute v3.8.43 · Node ≥22.0.0 · MIT License · <a href="https://omniroute.online">omniroute.online</a></sub>
|
||
|
||
</div>
|
||
<!-- 已启用 GitHub Discussions,供社区问答使用 -->
|