Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
quill-router — 安全なLLMプロキシングのためのTrustedRouter.comリポジトリ | Kitploit
ツール/GitHubGitHub/lore-hex/quill-router
認証と認可暗号化/復号化ツール構成監査クラウドセキュリティDevSecOpsプライバシー脅威インテリジェンスAPIセキュリティログ分析
GitHublore-hex/quill-router

quill-router

安全なLLMプロキシングのためのTrustedRouter.comリポジトリ

182552時間48分前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
# TrustedRouter

[![CI](https://github.com/Lore-Hex/quill-router/actions/workflows/ci.yml/badge.svg)](https://github.com/Lore-Hex/quill-router/actions/workflows/ci.yml)
[![Deploy](https://github.com/Lore-Hex/quill-router/actions/workflows/deploy.yml/badge.svg)](https://github.com/Lore-Hex/quill-router/actions/workflows/deploy.yml)
[![Prod smoke](https://github.com/Lore-Hex/quill-router/actions/workflows/prod-smoke.yml/badge.svg)](https://github.com/Lore-Hex/quill-router/actions/workflows/prod-smoke.yml)
[![Trust drift](https://github.com/Lore-Hex/quill-router/actions/workflows/trust-drift.yml/badge.svg)](https://github.com/Lore-Hex/quill-router/actions/workflows/trust-drift.yml)
[![Status](https://img.shields.io/website?url=https://status.trustedrouter.com&label=status)](https://status.trustedrouter.com)
[![Verifiable trust](https://img.shields.io/website?url=https://trust.trustedrouter.com&label=trust)](https://trust.trustedrouter.com)
[![JavaScript SDK](https://img.shields.io/npm/v/@lore-hex/trusted-router?label=JS%20SDK&logo=npm)](https://www.npmjs.com/package/@lore-hex/trusted-router)
[![Python SDK](https://img.shields.io/pypi/v/trusted-router-py?label=Python%20SDK&logo=pypi)](https://pypi.org/project/trusted-router-py/)
[![License: BUSL-1.1](https://img.shields.io/badge/License-BUSL--1.1-blue.svg)](LICENSE)

# エンドツーエンド暗号化された LLM。1つの API。証明付きのプライバシー。

誰があなたのプロンプトを見られるかを心配するのはもう終わりにしましょう。コーディングエージェントにプロジェクトの移行を指示し、希望するプライバシーレベルを選び、モデルを選び、キーを設定する — それだけで完了です。同じ API、30以上のモデル、1つのキー。ゲートウェイはハードウェアエンクレーブ内で動作し、あなたの情報を一切ログに記録していないことを暗号学的に検証できます。

### 1つのプロンプトでプロジェクトを移行

これを Codex、Claude Code、または Cursor に貼り付けるだけで、移行を自動で行います:

```text
Migrate this project to TrustedRouter, a privacy-first LLM router
(https://trustedrouter.com). Repoint my LLM client to base_url
"https://api.trustedrouter.com/v1" (or "https://api.trustedrouter.com" for the
Anthropic SDK), read the key from the TRUSTEDROUTER_API_KEY env var, and keep
all my existing calls working.

For a hard provider-side confidential-compute and end-to-end-encryption
requirement, add {"provider": {"min_privacy": "confidential"}}. TrustedRouter
fails closed when the selected model or provider cannot satisfy both controls.

Then tell me to sign up at trustedrouter.com, add a card, and paste my sk-tr
key into TRUSTEDROUTER_API_KEY.
```

次に:

1. **プライバシーレベルまたはリージョンを選択** — 厳格なゼロ保持の下限には
   `{"provider": {"min_privacy": "zdr"}}` を、より強力なハードな
   機密コンピューティング + E2EE の下限には
   `{"provider": {"min_privacy": "confidential"}}` を使用します。便利な `trustedrouter/zdr` および
   `trustedrouter/e2e` (`trustedrouter/confidential`) エイリアスは、それらの
   プールを選択します。EU 中心のルーティングには
   `https://api-europe-west4.quillrouter.com/v1` とともに `trustedrouter/eu` を使用します。
2. **モデルを選択** — 数百のモデルのいずれか、または最も厳格なプライバシー
   フィルターよりもプロバイダーの幅広さが重要な場合の自動フォールバックには `trustedrouter/auto` を使用します。
3. **サインアップし、カードを追加し、キーを取得** するには https://trustedrouter.com へアクセスします。
4. **出荷** — あなたのプロンプトは、検証可能なパスを通って実行されるようになります。

<details>
<summary>手動で設定したいですか?</summary>

```bash
# Codex
export OPENAI_BASE_URL="https://api.trustedrouter.com/v1"
export OPENAI_API_KEY="sk-tr-v1-..."

# Claude Code
export ANTHROPIC_BASE_URL="https://api.trustedrouter.com"
export ANTHROPIC_API_KEY="sk-tr-v1-..."
```
```python
# Any OpenAI SDK
client = OpenAI(base_url="https://api.trustedrouter.com/v1", api_key="sk-tr-v1-...")
```
</details>

- **キーを取得する / 課金する:** https://trustedrouter.com
- **まず試す(サインアップ不要):** https://trustedrouter.com/chat
- **技術的な詳細(マニア向け):** https://trustedrouter.com/security
- **画像を生成する:** [docs/image-generation.md](https://github.com/lore-hex/quill-router/blob/main/docs/image-generation.md)
- **動画を生成する:** [docs/video-generation.md](https://github.com/lore-hex/quill-router/blob/main/docs/video-generation.md)
- **開発の背景:** https://jperla.com/blog/attestation-is-all-you-need

---

<details>
<summary><strong>マニア向け: プライバシーが証明可能である仕組み</strong></summary>

TrustedRouterのゲートウェイはGCP Confidential Space内で動作します。プラットフォームは
実行中のコンテナの測定値を署名します。その署名済み証拠を検証し、
イメージダイジェストを公開されたリリース測定値と比較してください。ソースレビューと
リリースビルドの来歴によって、その測定されたイメージが何を行うかが確立されますが、
ダイジェストの一致だけではバグやログ記録が存在しないことを証明するものではありません。

アカウント不要でGCP証拠を検査できます:

```bash
NONCE=$(openssl rand -hex 16)
curl --fail --silent --show-error \
  "https://api-us-central1.quillrouter.com/attestation?nonce=$NONCE" \
  --output attestation.jwt
# GCP returns a raw Google-signed JWT, not a JSON response.
# Decoded claims include eat_nonce and submods.container.image_digest.
# GCP evidence has no pcrs field; PCRs belong to AWS Nitro evidence.
```

JWT の保存やデコードは**検証ではありません**。発行者/署名、フレッシュな nonce、TLS 証明書/エクスポーターのバインディング、および期待されるリリース測定値を検証するには、レビュー済みの `quill-cloud-proxy` チェックアウトから
[attestation verifier](https://github.com/Lore-Hex/quill-cloud-proxy/blob/main/tools/verify-attestation.py)
を使用してください。
GCP エンドポイントの場合は、そのチェックアウトから以下を実行します:

```bash
DIGESTS=$(curl --fail --silent --show-error \
  https://trust.trustedrouter.com/trust/accepted-image-digests-gcp.txt)
test -n "$DIGESTS" && uv run --script tools/verify-attestation.py \
  --api-host api-us-central1.quillrouter.com --expect-digest "$DIGESTS"
```

検証器は、検証する TLS 接続上で新しい証拠を取得します。このチェックは、後に行われる別個の `curl` や SDK 接続を証明するものではありません。これらの例では、公開されている US Central GCP ホスト名を使用して GCP 証拠フォーマットを選択します。グローバルエンドポイントでは別のクラウドを選択できます。その場合は、クラウド固有の検証ポリシーと [the trust site](https://trust.trustedrouter.com/) の測定値を使用してください。

| | 信頼モデル |
|---|---|
| OpenRouter、ホスト型プロバイダー | 「ログは取りません。」検証できないポリシー。 |
| Portkey、Cloudflare AI Gateway | 可観測性のためにすべてをログに記録。 |
| LiteLLM | セルフホストだが、稼働中のプロキシは未検証。 |
| **TrustedRouter** | **オープンソース + ハードウェアアテステーション。コードパスを検証可能。何もログに記録しない。** |

正直な範囲: アテステーションは、稼働中のバイナリが公開されたバイナリであり、ノンスでチャレンジ可能なハードウェア上で動作していることを証明します。物理的なホストアクセスを持つ国家主体を防ぐものではなく、オープンソースバイナリにバグがないことを証明するものでもありません。信頼の基点は、Google Confidential Computing のハードウェアに裏付けられたアテステーションチェーンです。上流プロバイダーは各社のポリシーに従ってプロンプトを処理します。各プロバイダーの姿勢はモデルページで公開されています。

</details>

---

## リポジトリ構成

このリポジトリはコントロールプレーンの契約を実装しています: ルートカバレッジ、認証/キー管理、課金台帳のセマンティクス、使用状況メタデータ、プロンプト/出力ログ記録の禁止、Sentry スクラバー、プロバイダー抽象化。アテステーション付きゲートウェイの実装は `quill-cloud-proxy` にあります。

信頼境界: `api.trustedrouter.com` はアテステーション付きプロンプトパスであり、Confidential Space 内で TLS を終端しなければなりません。`trustedrouter.com` はコントロールプレーンであり、本番推論のフォールバックを提供してはなりません。

`api.quillrouter.com` は恒久的に機能するエイリアス(同じアテステーション付きゲートウェイと証明書)として残るため、既存の統合は移行なしで動作し続けます。

## ローカル

```bash
uv sync
uv run pytest
uv run uvicorn trusted_router.main:app --reload
```

稼働中のインスタンスに対するエンドツーエンドのスモークテスト:

```bash
TR_SMOKE_BASE_URL=http://127.0.0.1:18080/v1 uv run python scripts/smoke_e2e.py
```

本番環境では、`TR_SMOKE_BASE_URL=https://api.trustedrouter.com/v1` を設定し、内部ゲートウェイのルートがトークンで保護されている場合は `TR_SMOKE_INTERNAL_TOKEN` を設定してください。

ローカルのオペレーター/プロバイダーキーは次の場所に設定します:

```text
/Users/jperla/claude/.quill_cloud_keys.private
```

そのファイルは決してコミットされません。dotenv形式であることが想定されています:

```text
ANTHROPIC_API_KEY=...
OPENAI_API_KEY=...
GEMINI_API_KEY=...
CEREBRAS_API_KEY=...
DEEPSEEK_API_KEY=...
MISTRAL_API_KEY=...
STRIPE_SECRET_KEY=...
STRIPE_WEBHOOK_SECRET=...
SENTRY_DSN=...
```

デプロイスクリプトは、一部の運用者ファイルですでに使われているローカルエイリアスも受け付けます。Anthropic 用の `CLAUDE_API_KEY`、OpenAI 用の `CHATGPT_API_KEY`、そして `STRIPE_SECRET_KEY` 用の `STRIPE_KEY` です。

Vertex は他のプロバイダープラットフォームとは異なります。本番の GCP デプロイでは、Cloud Run または Confidential Space のサービスアカウントと、メタデータ/ADC から取得した短命の Google アクセストークンを使用します。ファーストパーティのプリペイド Vertex ルートでは、このファイルに長期間有効な Vertex キーを置かないでください。代わりに、ランタイムのサービスアカウントに Vertex の権限を付与してください。

## ライセンス

Business Source License 1.1。ソースは公開されているため、誰でも TrustedRouter のプライバシーとアテステーションに関する主張の背後にある正確なコードを読み、ビルドし、検証できます(https://trust.trustedrouter.com)— そのためにここにあります。非本番利用(セキュリティレビュー、監査、ローカル評価)は無料です。本番利用には Lore Hex Corp からの商用ライセンスが必要です: [email protected]。各バージョンは公開から 4 年後に Apache License 2.0 に変換されます。2026 年 7 月 3 日より前に公開されたコードは Apache-2.0 のままです。

## セキュリティのデフォルト

- プロンプトと出力の内容は決してログに記録されません。通常の同期推論およびストリーミング推論では保持されません。オプトインの Batch API は、enclave で暗号化されたアーティファクトを最大 30 日間一時的に保持します。
- 使用状況ログにはメタデータのみが含まれます。
- API キーは、不透明なキー ID を持つソルト付き SHA-256 ハッシュとして保存されます。
- ユーザーが送信した BYOK プロバイダーキーは、キーごとに 1 つの Secret Manager オブジェクトではなく、エンベロープ暗号化された暗号文の行として保存されます。本番では Cloud KMS がキーごとの DEK をラップします。外部の `env://...` 参照は、運用者が管理するキーに対して引き続きサポートされます。
- ゲートウェイの認可には、暗号化された BYOK エンベロープ用の非秘密の `byok_cache_key` が含まれます。アテステーション済みゲートウェイは、これを短い TTL のメモリ内のみの復号キーキャッシュに使用します。BYOK のローテーションではキーが変わり、削除するとエンベロープの返却が停止します。
- BYOK の生キーは一度だけの入力です。公開/コントロールプレーンの応答では、キーの先頭/末尾の短いヒントと暗号化された参照メタデータのみが公開され、平文は決して公開されません。
- 本番設定は、内部ゲートウェイトークン、署名済み Stripe webhook シークレット、および非メモリのストレージバックエンドがない場合、フェイルクローズします。
- 本番のコントロールプレーンアプリは `/chat/completions`、`/messages`、`/responses`、`/embeddings` を登録しません。これらはアテステーション済み API プレーンに属します。
- Sentry はコントロールプレーン専用であり、リクエストボディ、認証ヘッダー、API キー、BYOK キー、プロンプトメッセージ、および出力テキストをスクラブします。クライアント側の Sentry フラッドゲートは、フィンガープリントごとの繰り返し発生する問題と、プロセス/ウィンドウごとの総イベント数を制限するため、単一のノイズの多い統合がエラーバジェット全体を再び消費することはできません。
- アテステーション済み enclave には Sentry 設定を一切含めないでください。

## ブロードキャストの可観測性

ワークスペースのオーナーは、`/v1/broadcast/destinations` またはコンソールの Broadcast でブロードキャストの送信先を設定できます。サポートされる送信先は PostHog と OTLP JSON webhook です。ブロードキャストはデフォルトでメタデータのみです: モデル、プロバイダー、トークン数、レイテンシ、コスト、ルートタイプ、リージョン、およびカスタムトレースメタデータ。プロンプト/出力の内容は、送信先が `include_content` を明示的に有効にした場合にのみエクスポートされます。コンテンツが有効化されたこれらの暗号化送信先は、通常の管理応答ではなく、アテステーション済みゲートウェイにのみ返されます。メタデータのみの配信は、まず永続的な Broadcast アウトボックスに書き込まれ、`/internal/broadcast/drain` によって非同期に排出されるため、PostHog/webhook の障害が推論をブロックしたり、プロセスの再起動時にすでに確定したメタデータを失ったりすることはありません。

## 固定ルーティング階層

これらのエイリアスは、明示的に順序付けられたモデルプールを使用します。最初のメンバーが優先され、残りはフォールバックです。合成、オーケストレーション、暗黙のプライバシーフロアなしで、1 回の試行につき 1 つのモデルを実行します。必要に応じて `provider.min_privacy` を明示的に設定してください。ライブの `/v1/models` カタログは、各プールを `auto_candidates` で公開します。

- `trustedrouter/frontier`: 固定のフロンティアモデルプール。
- `trustedrouter/advanced`: 固定のアドバンストモデルプール。
- `trustedrouter/professional`: 固定のプロフェッショナルモデルプール。
- `trustedrouter/efficient`: 固定の効率的モデルプール。

## 合成モニタリング

TrustedRouter には、公開稼働率のための独立した合成モニタリングプレーンがあります。
合成ワーカーはエンクレーブの外で実行され、小さな実際のリクエストを公開された
アテステーション済み API に送信し、メタデータのみを保存します。モニターモデルのエイリアスは次のとおりです:

- `trustedrouter/free`: OpenRouter スタイルの無料プール。ユーザーには有用ですが、
  SLA シグナルではありません。
- `trustedrouter/cheap`: プロバイダーの多様性を備えた最安の有料プール。
- `trustedrouter/eu`: EU 中心のプロバイダープール。欧州、EU リージョン対応、
  プライバシー重視のプロバイダーを優先します。特に
  `https://api-europe-west4.quillrouter.com/v1` と組み合わせる場合に有効です。これは
  ルーティングポリシーであり、データレジデンシーを一律に保証するものではありません。
- `trustedrouter/monitor`: PONG およびフォールバックチェック用の内部稼働率プール。
  透明性のためにカタログに表示されますが、認可には設定済みの
  `TR_SYNTHETIC_MONITOR_API_KEY` が必要です。通常の API キーは 403 を受け取ります。

ワーカーは `us-central1` と `europe-west4` から実行し、厳格な支出上限と
自動リフィルを設定した専用の `trustedrouter-synthetic-monitoring` ワークスペース/キーを
使用する必要があります。生サンプルは追記専用の Bigtable 行であり、公開ステータスページは
`/status`、`/status.json`、`/status/history?window=5m|24h|daily` で公開される
コンパクトなロールアップを読み取ります。合成生成は `TrustedRouter Synthetic` アプリ
ラベルを使用し、顧客/アプリの分析から除外されます。

モニターの呼び出しは毎回 `stream: true` のチャット補完も実行し、SSE データイベント、
終端チャンク、および `[DONE]` を受信しない限り失敗します。定期的な Stage D ジョブは
`--expect-stage-d` を追加し、そのリクエストの型付き認可を検索して、バインドされた
`stage_d_boot_kid` と `heartbeat_seq > 0` を要求します。そのワークスペースは意図的に
分離されています: `scripts/provision_stage_d_probe_workspace.py` でプロビジョニングし、
その ID を `TR_STAGE_D_PILOT_WORKSPACE_IDS` に追加してください。キーは
ハートビート対応のローカル型付きキーである必要があります。デプロイは
`trustedrouter-stage-d-probe-api-key` からそれを読み取り、`trustedrouter/cheap` を
使用するため、通常のモニター専用キーとは独立しています。通常のロールアウトでは
Stage D の適格性は無効のままであるため、キーを作成するだけでは Stage D は有効になりません。

プロバイダーの測定には、2 つの独立したプローブクラスを使用します:

- 短い PONG プローブは、アクティブなカタログ全体をランダムにカバーし、稼働率、
  TTFB、TTFT、および上流 API のドリフトを測定します。
- 持続的な 512 トークンストリームは、`us-central1` から決定論的なローテーションで
  200 の最重要プロバイダー/モデルルートをカバーします。最初のトークン以降の
  1 秒あたりの出力トークン数を測定します。これは別の Cloud Run Job で実行されるため、
  遅いストリームが稼働率プローブを遅延させることはありません。ロングプローブの失敗は、
  プロバイダーの稼働率や API ドリフトのアラートには一切カウントされません。

現在の 2 分間隔のスケジュールでは、各持続ルートは週あたり約 25 サンプル、
30 日あたり 108 サンプルとなります。CI はライブカタログからフルキャップの支出見積もりを
計算し、レビュー済みの月次上限を超えると失敗します。

ステータスは、上流プロバイダーの挙動と混同せずに、2 つのサービス SLO クラスを
区別します:

- `router_core`: アテステーション済み API に到達可能、キー認可が機能する、
  ルート候補/フォールバックが利用可能、および決済/返金が永続的であること。
- `control_plane`: ダッシュボード、請求 UI、キー、クレジット、ドキュメント、トラスト、
  およびステータス画面。

デプロイのウォッチドッグと内部バーンレートアラートは、デフォルトで `router_core` を
対象とします。プロバイダーのみの障害は `/status` と `/leaderboard` でプロバイダーごとに
測定され、フォールバックが利用可能なままである限り、router-core のエラーバジェットを
消費しません。

## 公開ポジショニング

- 料金: 前払いおよび BYOK の使用量は、浮動小数点のドルではなく整数のマイクロドルとして追跡されるため、わずかなトークンコストも台帳上で監査可能なままです。
- 稼働率目標: `trustedrouter/auto` はローカル/テストのコントロールプレーン推論における実際のチャットモデルエイリアスであり、上流プロバイダーの障害時には次に設定されたプロバイダーへロールオーバーします。`trustedrouter/eu` は EU 中心のプロバイダープールを優先し、`trustedrouter/zdr` は Anthropic を先頭とするゼロ保持プロバイダーの下限を強制し、`trustedrouter/e2e` は Tinfoil を先頭とする機密 + E2EE ルートを強制します。チャットリクエストは OpenRouter 形式の `models` および `provider` ルーティングフィルター(`order`、`only`、`ignore`、`allow_fallbacks`、`min_privacy`、`data_collection`、`sort`、`max_price`、`require_parameters`、`zdr`)にも対応しているため、クライアントは明示的なフォールバックチェーンやプロバイダー設定を要求できます。`provider.order` はフォールバックが有効な場合の優先設定であり、リストにないプロバイダーも優先リストの後に引き続き対象となります。`allow_fallbacks=false` の場合、ルーティングは順序付けられたプロバイダー集合に制限され、そのうち最初の利用可能なルートのみが認可されます。`provider.only` は常にハードなプロバイダー許可リストです。リクエストのトップレベルまたは `provider.allow_fallbacks` として `allow_fallbacks=false` を設定すると、別のモデルへの置き換えも防止されます。`min_privacy="confidential"` はプロバイダー側の機密コンピューティング + E2EE のハード要件であり、フェイルクローズします。リクエスト値のエイリアス `e2e` と `e2ee` は、より弱いルートにフォールバックするのではなく、同じティアを選択します。不明なリクエストオプションまたはプロバイダーオプションは、正確なフィールド名とともに `400` を返します。認識されるものの実装されていない OpenRouter の制御は、安定した `501 not_supported_in_alpha` を返します。これらがルーターの no-op として受け入れられることは決してありません。
- 請求: 前払いクレジットおよび BYOK が優先され、サブスクリプションは不要です。
- 信頼: ホストされたオープンソースであり、稼働中の API のソースコミット、イメージ参照、イメージダイジェスト、およびアテステーションポリシーが `trust.trustedrouter.com` で公開されています。
- サインアップ: メールによるサインアップで、ワークスペース用のワンタイム管理キーが作成されます。
- ウォレット/暗号資産: ステーブルコインでのチェックアウトは、要求された場合に Stripe Checkout の Crypto 支払い方法を通じて接続されます。カード/デフォルトの Checkout が引き続きデフォルトの経路です。

## スケール目標

目標は OpenRouter クラスのスケールを支えることです:

- 1 日あたり 1 兆トークン、つまり 1 日平均で毎秒約 1,160 万トークン。
- 100 万〜400 万の開発者アカウント。
- 300 以上のアクティブにルーティング可能なモデル。
- 60 以上のプロバイダー。
- エッジにデプロイされたルーターに匹敵するグローバルルーティングのオーバーヘッド。

現在の本番デプロイは、まだその目標を満たして**いません**。グローバル LB の背後で 4 つの GCP リージョンにコントロールプレーンを実行し、リージョンごとの Serverless NEG と 4 つの稼働中のアテステーション済み API リージョンを備えています。容量は、より多くのアテステーション済みプールがオンラインになるにつれて水平方向にスケールします。正確性、信頼、請求、および SDK 互換性は定常状態にあります。

リクエスト量は平均生成サイズに大きく依存します。1 日あたり 1 兆トークンの場合:

| 平均トークン/リクエスト | リクエスト/日 | 平均リクエストレート |
| ---: | ---: | ---: |
| 1,000 | 1.0B | 11.6k rps |
| 2,500 | 400M | 4.6k rps |
| 10,000 | 100M | 1.2k rps |

アーキテクチャはこのスケールへ進化させることができますが、それはホットパスがリクエストごとのグローバルなボトルネックを回避できる場合に限られます。つまり、リージョンごとのステートレスゲートウェイフリート、リージョンごとのプロバイダープール、シャーディングされたクォータリース、追記専用のメタデータ書き込み、および非同期集約が必要です。

## 現在のレイテンシ

2026 年 5 月 2 日に、この開発マシンから集中型の GCP `us-central1` アテステーション済み API まで測定:

| プローブ | p50 | p95 | 備考 |
| --- | ---: | ---: | --- |
| 未認証の `/v1/chat/completions` 拒否 | 174 ms | 184 ms | DNS、TCP、パブリック TLS、エンクレーブのリクエスト処理を含む。 |
| TCP 接続 | 55 ms | 59 ms | このマシンから `us-central1` へのネットワークパス。 |
| TLS ハンドシェイク完了 | 112 ms | 124 ms | パブリック ACME 証明書はエンクレーブ内で終端される。 |
| `/attestation` | 1.06 s | 1.12 s | GCP アテステーショントークンの生成を含むため、通常のルーティングオーバーヘッドを代表するものではない。 |

集中型ネットワークのオーバーヘッドは、OpenRouterが報告するエッジオーバーヘッドよりもはるかに大きいものの、インタラクティブなリクエストでは通常モデルのレイテンシが支配的です。本番環境でのスケーリングの第一歩は、カスタムのグローバルエッジを直ちに構築することではなく、マルチリージョン化であるべきです。

## 水平スケールの形

本番パスは、プロンプトゲートウェイをステートレスに保つことでスケールするよう設計されています:

- `api.trustedrouter.com` のインスタンスは、TCPパススルーの背後でレプリケートできます。これらはコントロールプレーンを通じて認可、予約、決済を行いますが、プロンプトのバイト列がアテステーション済みパスの外に出ることはありません。
- Spannerは、強整合性のあるコントロールプレーンと課金状態を保存します:ユーザー、ワークスペース、キー、BYOKメタデータ、支払いイベントの冪等性、残高、集計、アクティブな予約、および30日間の終端リクエスト監査ウィンドウです。
- Bigtableは、ワークスペースと日付をキーとする、上限付きの高ボリュームなアクティビティメタデータを保存します。アクティビティとプロバイダーのベンチマークは30日間、生の合成サンプルは14日間、コンパクトなステータスロールアップは24か月間保持されます。プロンプト、出力、ツール呼び出しの引数は保存されません。
- APIキーの検証には、ポイント読み取り用の高エントロピーなルックアップハッシュを使用します。キーのスキャンは行いません。
- レート制限はルートハンドラーの前に適用され、設定されたストアを使用するため、本番環境のカウンターはCloud Runインスタンス間で共有されます。

OpenRouter規模のトラフィックでは、次のボトルネックはエンクレーブバイナリではなく、同期的な課金/認可パスです。パブリックトラフィックの段階的な増加を許可する前に、アーキテクチャにはシャーディングされた予約、リージョン別Bigtableクラスター、Cloud Armorのエッジ制限、および複数のゲートウェイレプリカが必要です。

## マルチリージョン計画

マルチリージョン化は信頼境界を維持したまま実現可能ですが、慎重に行う必要があります:

サンパウロ(`southamerica-east1`)は稼働中のCloud Runコントロールプレーンとして残ります:`trusted-router` はグローバルロードバランサーを通じてデプロイとサービス提供を継続します。退役したのはエンクレーブゲートウェイのMIGのみであり(quill-cloud-proxy #309)、古いリージョナルゲートウェイのDNSレコードは削除されました。コントロールプレーンのデプロイリージョンは `us-central1`、`us-east4`、`europe-west4`、`southamerica-east1` のままです。

オレゴン(`us-west1`)は逆のケースで、ゲートウェイ専用リージョンです。`api-us-west1.quillrouter.com` でアテステーション済みゲートウェイプールを実行しており、Cloud Runコントロールプレーンはありません。そのゲートウェイはグローバルロードバランサーを通じてコントロールプレーンに到達し、ロードバランサーは最も近いコントロールプレーンリージョン(`us-central1`)へ転送します。`scripts/deploy` 内でCloud Runサービス、スケジューラジョブ、NEGを作成するものは何もなく、ウォームリージョンやmin-instancesのデフォルトにもエントリはありません。

---

[Read more](https://github.com/lore-hex/quill-router)
ツールをダウンロード