不必再担心谁能看到你的提示词。让你的编码智能体帮你迁移项目,选择你想要的隐私级别,挑选一个模型,填入密钥——搞定。同一个 API,30+ 个模型,一个密钥。网关运行在硬件安全飞地中,你可以通过密码学方式验证它从不记录你的数据。
把下面这段粘贴到 Codex、Claude Code 或 Cursor 中——它会替你完成迁移:
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.
然后:
{"provider": {"min_privacy": "zdr"}} 设定硬性零保留下限,或
使用 {"provider": {"min_privacy": "confidential"}} 设定更严格的硬性
机密计算 + E2EE 下限。便捷的 trustedrouter/zdr 和
trustedrouter/e2e(trustedrouter/confidential)别名会选择这些
池。使用 trustedrouter/eu 搭配
https://api-europe-west4.quillrouter.com/v1 可实现以欧盟为中心的路由。trustedrouter/auto 在提供商覆盖范围比最严格的隐私
过滤器更重要时自动回退。# 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 内。该平台会对运行中的容器进行度量并签名。请验证该签名证据,并将其镜像摘要与已发布的版本度量值进行比对。源代码审查与发布构建来源可确立该被度量镜像的行为;仅凭摘要匹配并不能证明不存在缺陷或日志记录。
无需账户即可检查 GCP 证据:
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 并不等于验证。请使用来自经过审查的 quill-cloud-proxy 检出目录中的
attestation verifier
来验证签发者/签名、新鲜 nonce、TLS 证书/exporter 绑定以及预期的发布度量值。
对于 GCP 端点,请从该检出目录运行:
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 连接。这些示例使用已发布的美国中部 GCP 主机名来选择 GCP 证据格式。全局端点可以选择其他云;请使用其云特定的验证策略以及来自信任站点的测量值。
| 信任模型 | |
|---|---|
| OpenRouter、托管提供商 | “我们不记录日志。”一条你无法核查的策略。 |
| Portkey、Cloudflare AI Gateway | 为可观测性记录一切。 |
| LiteLLM | 自托管,但运行中的代理未经验证。 |
| TrustedRouter | 开源 + 硬件证明。验证代码路径;它不记录任何日志。 |
诚实的范围说明:证明只能证明运行中的二进制文件是已发布的二进制文件,且运行在你可以用 nonce 挑战的硬件上。它无法抵御拥有物理主机访问权限的国家级攻击者,也无法证明开源二进制文件没有缺陷。信任锚点是 Google Confidential Computing 的硬件支持证明链。上游提供商按其自身策略处理提示词——每个提供商的立场都发布在模型页面上。
本仓库实现控制平面契约:路由覆盖、认证/密钥管理、计费账本语义、用量元数据、提示词/输出日志记录禁令、Sentry 清理器以及提供商抽象。经证明的网关实现位于 quill-cloud-proxy。
信任边界:api.trustedrouter.com 是经证明的提示词路径,必须在 Confidential Space 内终止 TLS。trustedrouter.com 是控制平面,绝不能提供生产推理回退。
api.quillrouter.com 仍然是永久可用的别名(相同的经证明网关和证书),因此现有集成无需迁移即可继续工作。
uv sync
uv run pytest
uv run uvicorn trusted_router.main:app --reload
针对运行中实例的端到端冒烟测试:
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。
在以下位置设置本地操作员/提供商密钥:
/Users/jperla/claude/.quill_cloud_keys.private
该文件永远不会被提交。它应当是 dotenv 风格的:
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 服务账号,以及来自 metadata/ADC 的短期 Google 访问令牌。对于第一方预付费 Vertex 路由,不要在此文件中放置长期有效的 Vertex 密钥;而应授予运行时服务账号 Vertex 权限。
Business Source License 1.1。源代码公开,任何人都可以阅读、构建并验证 TrustedRouter 隐私与证明声明背后的确切代码(https://trust.trustedrouter.com)——这正是它存在的目的。非生产用途(安全审查、审计、本地评估)免费。生产用途需要获得 Lore Hex Corp 的商业许可:[email protected]。每个版本在发布四年后转换为 Apache License 2.0。2026 年 7 月 3 日之前发布的代码仍保持 Apache-2.0。
env://... 引用仍支持用于运维人员管理的密钥。byok_cache_key。经证明的网关使用它进行短 TTL、仅内存的解密密钥缓存;BYOK 轮换会更改密钥,删除操作会停止返回该信封。/chat/completions、/messages、/responses 或 /embeddings;这些属于经证明的 API 平面。工作区所有者可以在 /v1/broadcast/destinations 或控制台的 Broadcast 下配置广播目标。支持的目标是 PostHog 和 OTLP JSON webhook。广播默认仅包含元数据:模型、提供商、token 计数、延迟、成本、路由类型、区域和自定义追踪元数据。仅当目标显式启用 include_content 时才导出提示词/输出内容;这些启用了内容导出的加密目标仅返回给经证明的网关,而不会出现在普通管理响应中。仅元数据的投递会先写入持久化广播发件箱,然后由 /internal/broadcast/drain 异步排空,因此 PostHog/webhook 故障不会阻塞推理,也不会在进程重启时丢失已结算的元数据。
这些别名使用显式排序的模型池:首选第一个成员,其余为回退。它们每次尝试运行一个模型,不进行合成、编排或隐式隐私下限。需要时请显式设置 provider.min_privacy。实时 /v1/models 目录会在 auto_candidates 中发布每个模型池。