
安全なLLMプロキシングのためのTrustedRouter.comリポジトリ
誰があなたのプロンプトを見られるかを心配するのはやめましょう。コーディングエージェントにプロジェクトの移行を指示し、どの程度プライベートにしたいかを選び、モデルを選び、キーを入力するだけ — 完了です。同じ API、30 以上のモデル、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 中心のルーティングには `trustedrouter/eu` を
`https://api-europe-west4.quillrouter.com/v1` と共に使用します。
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-..."
# Any OpenAI SDK
client = OpenAI(base_url="https://api.trustedrouter.com/v1", api_key="sk-tr-v1-...")
TrustedRouterのゲートウェイはGCP Confidential Space内で動作します。プラットフォームは 実行中のバイナリの測定値を署名します。あなたは そのハッシュをこのリポジトリと比較します。一致すれば、あなたのプロンプトを処理するコードが ここで読めるコードであること、そしてプロンプトをディスクに書き込まないことを 仮定ではなく、確信できます。
アカウント不要で、60秒で自分で検証できます:```bash NONCE=$(openssl rand -hex 16) curl -s "https://api.trustedrouter.com/attestation?nonce=$NONCE" | jq .
| | 信頼モデル |
|---|---|
| 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 は、エンクレーブで暗号化されたアーティファクトを最大 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 フラッドゲートは、フィンガープリントごとの繰り返し問題と、プロセス/ウィンドウごとの総イベント数を制限するため、単一のノイズの多い統合がエラーバジェット全体を再び消費することはできません。
- アテステーションされたエンクレーブには Sentry 設定を置くべきではありません。
## ブロードキャスト可観測性