このプロジェクトについて

# Weave Router **1つのエンドポイント。すべてのモデル。常に最適な1つ。** Weave Routerは、Anthropic、OpenAI、Gemini向けのドロップイン型プロキシで、リクエストごとに最適なモデルを自動選択します。雰囲気ベースのプロンプトではなく、[Avengers-Pro](https://arxiv.org/abs/2508.12631) の研究論文に基づくクラスタースコアラーと、小型のオンボックス埋め込みモデルを使用して、有効化されたプロバイダーから各リクエストを適切なモデルにルーティングします。 ## 主な機能 - **アクションごとにルーティング** — クラスタースコアラーが上流APIリクエストごとに最適なモデルを選択し、ターン単位ではなくアクション単位でルーティングします。 - **あらゆるAPIに対応** — Anthropic Messages、OpenAI Chat Completions、GeminiネイティブAPI(ストリーミング、ツール、ビジョン対応)をサポート。 - **OSSモデルにも対応** — OpenRouterまたはOpenAI互換エンドポイント経由で、DeepSeek、Kimi、GLM、Qwen、Llama、Mistralをサポート。 - **BYOKがデフォルト** — プロバイダーキーは自環境に保持され、保存時に暗号化されます。 - **可観測性** — OTLPトレースを標準装備。WeaveダッシュボードまたはHoneycomb、Datadog、GrafanaなどのOTLP互換コレクターで表示可能。 ## クイックスタート 最も速い開始方法は、ホスト型Weave Routerを使用することです: ```bash npx @weave-os/router ``` インストーラーが使用ツール(Claude Code、Codex、opencode、pi)を尋ね、スコープ(ユーザー vs プロジェクト)を案内し、ルーターキーを取得して、適切な設定ファイルを配線します。他のオプション: ```bash npx @weave-os/router --claude # ピッカーをスキップ、Claude Code用 npx @weave-os/router --codex # ピッカーをスキップ、OpenAI Codex CLI用 npx @weave-os/router --opencode # ピッカーをスキップ、opencode用 npx @weave-os/router --pi # ピッカーをスキップ、pi + Loom UI用 npx @weave-os/router --scope project # リポジトリ単位、settings.jsonをコミット npx @weave-os/router --local # セルフホスト localhost:8080 npx @weave-os/router --base-url https://router.acme.internal npx @weave-os/router@0.1.0 # バージョンを固定 ``` Node ≥ 18が必要です。全フラグのリファレンスは [install/npm/README.md](install/npm/README.md) にあります。 ## セルフホスティング 自環境でルーターとダッシュボードを実行する場合: ```bash # 1. プロバイダーキーを設定。OpenRouterが推奨ベースライン。 echo "OPENROUTER_API_KEY=sk-or-v1-..." >> .env.local # 2. ダッシュボードのパスワードを設定。 echo "ROUTER_ADMIN_PASSWORD=replace-with-a-strong-password" >> .env.local # 3. Postgres + ルーターを :8080 で起動し、rk_ キーをシード。 make full-setup ``` ルーターは http://localhost:8080、ダッシュボードは http://localhost:8080/ui/ で利用可能。`rk_...` キーはログに出力されます。 ### API呼び出しの例 ```bash # Anthropicとして呼び出す curl -sS http://localhost:8080/v1/messages \ -H "Authorization: Bearer rk_..." \ -d '{"model":"claude-sonnet-4-5","max_tokens":256, "messages":[{"role":"user","content":"hi"}]}' # ...またはOpenAIとして curl -sS http://localhost:8080/v1/chat/completions \ -H "Authorization: Bearer rk_..." \ -d '{"model":"gpt-4o-mini", "messages":[{"role":"user","content":"hi"}]}' # プロキシせずにルーティング決定を確認 curl -sS http://localhost:8080/v1/route -H "Authorization: Bearer rk_..." -d '...' ``` ## アーキテクチャ グレーのボックスのみが自環境外にあります。ルーター、スコアラー、Postgres、プロバイダーキーはすべてローカルに保持され、プロンプトはルーターから設定済みプロバイダーへ直接送信され、Weaveには一切送信されません。 ```mermaid flowchart LR client["Claude Code, Codex, opencode,<br/>pi, Cursor, your own app"] router["Router :8080<br/>/v1/messages · /v1/chat/completions<br/>/v1beta/models · /v1/route"] scorer["Cluster scorer<br/>in-process ONNX embedder"] hmm["HMM policy sidecar :8093<br/>optional, make up-hmm"] pg[("Postgres<br/>installations, rk_ keys,<br/>encrypted BYOK keys, usage")] ui["Dashboard /ui<br/>selfhosted mode only"] providers["Anthropic · OpenAI · Gemini<br/>OpenRouter and any<br/>OpenAI-compatible endpoint"] otel["Your OTLP collector<br/>Honeycomb, Datadog, Grafana"] client -->|"rk_… bearer token,<br/>streamed response back"| router router -->|"embed and score the action"| scorer router -.->|"ROUTER_DEFAULT_STRATEGY=hmm"| hmm router -->|"auth, config, usage"| pg pg --> ui router -->|"provider key from env or BYOK"| providers router -.->|"spans and usage logs"| otel ``` マルチレプリカ展開では、キャッシュ無効化にPub/Sub(`PUBSUB_*`)も必要です。`docker compose` がエミュレーターを自動起動します。 ## オプション: HMMポリシーサイドカー デフォルトスタックはインプロセスクラスタースコアラーを使用します。固定HMMポリシーをコンパニオンコンテナとして実行するには、Google APIキーを追加し、オプトインターゲットを使用します: ```bash echo 'GOOGLE_API_KEY=...' >> .env.local make up-hmm ``` これによりデフォルト戦略は変更されません。アーティファクト検証、埋め込み互換性、明示的なHMM選択については [sidecars/hmm/README.md](sidecars/hmm/README.md) を参照してください。 ## ツール統合 **Claude Code。** `make install-cc` を実行して、ローカルセルフホストルーターにClaude Codeを配線します(`make full-setup` の最後に自動的に呼び出されます)。ホスト型ルーターの場合は、上記の `npx @weave-os/router` を使用します。 **Codex**(OpenAI CLI)。`npx @weave-os/router --codex` は、管理された `[model_providers.weave]` ブロックで `~/.codex/config.toml`(`--scope project` の場合は `<repo>/.codex/config.toml`)をパッチし、`model_provider = "weave"` を設定します。このプロバイダーはCodexの既存のChatGPT OAuthログインを維持し、ルーターキーは `X-Weave-Router-Key` HTTPヘッダーで送信されます。 ## ライセンス Elastic License v2 (ELv2) の下でライセンスされています。 --- *[Weave](https://www.workweave.ai) によって構築: Robinhood、PostHog、Reducto、その他数百社に愛用されるNo.1エンジニアリングインテリジェンスプラットフォーム。*