Re Reference AI

インフラ

OmniRouteとは

多数のLLMプロバイダを単一のOpenAI互換エンドポイントにまとめ、自動フォールバックやルーティングを行うオープンソースのAIゲートウェイ

APIインフラ

最終更新:

概要

OmniRouteは、OpenAI・Anthropic・Google・DeepSeekなど多数のLLMプロバイダを、ローカルまたは自前サーバー上で動く1つのエンドポイントに集約するセルフホスト型のAIゲートウェイ。MITライセンスのオープンソースとしてGitHubで公開されている。 起動するとデフォルトで `http://localhost:20128/v1` にOpenAI互換APIが立ち上がり、Claude Code・Codex・Cursor・Cline・OpenCodeなどのコーディングエージェントやOpenAI SDKのbase_urlをここに向ける。これだけで背後のモデルを切り替えて利用できる。OpenAI形式に加え、ClaudeやGemini、Responses API形式のリクエストも受け付ける。 複数のプロバイダやモデルを「コンボ」としてまとめ、クォータ切れやエラーが起きた際に別の接続先へ自動でフォールバックする。無料枠を持つプロバイダやサブスクリプション型のコーディングプランも接続先として登録でき、`auto` モデルを指定すると利用可能な接続先をOmniRouteが選ぶ。 このほか、プロンプトのトークンを削減する圧縮機能、Webダッシュボードでの使用量・コストの可視化、MCPサーバーやA2Aサーバーとしての機能、CLIからの設定機能などを備える。 ホスティング型のOpenRouterと異なり、APIキーやリクエストを自分の環境内で管理できる点が特徴。

歴史

OmniRouteは、diegosouzapwがGitHub上に公開したプロジェクト。オープンソースのLLMルーター「9router」のフォークとして始まった。GoのプロジェクトであるCLIProxyAPIをTypeScriptへ移植する形で機能を取り込み、その後TypeScriptで全面的に書き直されている。

アーキテクチャ

Node.js上で動作するNext.jsアプリケーションとして実装され、APIサーバーと管理用Webダッシュボードを1つのプロセスで提供する。設定や使用履歴はSQLiteに保存される。 クライアントからのリクエストは `/v1` 配下のエンドポイントで受け取り、指定されたモデル名やコンボ設定に従って送信先のプロバイダを選び、各プロバイダのAPI形式に変換して転送する。送信先が失敗した場合は、コンボ内の次の候補に切り替えてリクエストを再送する。

コード例

npmでインストールして起動する

npm i -g omniroute
omniroute
# ダッシュボード: http://localhost:20128

OpenAI互換APIとして呼び出す

curl http://localhost:20128/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'

利点

  • セルフホストで動くため、APIキーやリクエストを自分の環境内で管理できる
  • 複数プロバイダをコンボにまとめ、クォータ切れや障害時に自動でフォールバックできる
  • OpenAI互換のエンドポイントを提供するため、既存のコーディングエージェントやSDKから設定変更のみで利用できる

欠点

  • サーバーの運用やアップデートを利用者自身で行う必要がある
  • 無料枠やサブスクリプションの利用可否は各プロバイダの規約や提供状況に左右される

比較

  • OpenRouter — OpenRouterはクレジット課金のホスティング型サービスで、OmniRouteは自前の環境で動かし、各プロバイダのAPIキーやアカウントを登録して使うセルフホスト型のゲートウェイ
  • LLM Gateway — LLM Gatewayは複数モデルへのアクセスを仲介する仕組みの総称で、OmniRouteはその実装の1つ

関連する用語

OpenRouterLLM GatewayModel RouterMCPA2AコーディングエージェントClaude CodeBedrockソブリンAIマイクロサービスOllama Cloudストリーミング

参考文献