{
  "format": "agent-article-v0",
  "article_id": "EA-166",
  "canonical_url": "/tools/ea-166-ai-gateway",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EVD-EA-166-URL-DAB892839DF4",
    "EVD-EA-166-URL-62E5A2D5FE3E",
    "EVD-EA-166-URL-C1CC13E818A2",
    "EVD-EA-166-URL-EC8B42E94341",
    "EVD-EA-166-URL-89526D1B8A91",
    "EA-166-R11-RESEARCH",
    "EA-166-R11-WEB-READBACK"
  ],
  "unknown_ids": [
    "EA-166-UNKNOWN-01",
    "EA-166-UNKNOWN-CURRENTNESS"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "UNKNOWN",
  "observation_status": "SPEC_ONLY",
  "freshness": "UNKNOWN",
  "last_verified": null,
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "COMM-048-EA0166",
    "SRC-EA-166-URL-DAB892839DF4",
    "SRC-EA-166-URL-62E5A2D5FE3E",
    "SRC-EA-166-URL-C1CC13E818A2",
    "SRC-EA-166-URL-EC8B42E94341",
    "SRC-EA-166-URL-89526D1B8A91",
    "WEBBODY-EA0166-R8-5484DBF6"
  ],
  "article_sources": [
    {
      "id": "EVD-EA-166-URL-DAB892839DF4",
      "evidence_class": "RESEARCH",
      "title": "LiteLLM repository | AUTHOR_ORG: BerriAI / LiteLLM maintainers | CANONICAL_URL:",
      "href": "https://github.com/BerriAI/litellm",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-166-URL-DAB892839DF4"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "- LiteLLM repository | AUTHOR_ORG: BerriAI / LiteLLM maintainers | CANONICAL_URL: https://github.com/BerriAI/litellm"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-166-URL-62E5A2D5FE3E",
      "evidence_class": "RESEARCH",
      "title": "[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: OpenRouter API Reference / Auto Router | AUTHOR_ORG: OpenRouter | CANONICAL_URL:",
      "href": "https://openrouter.ai/docs/api_reference/overview",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-166-URL-62E5A2D5FE3E"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "S2",
        "[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: OpenRouter API Reference / Auto Router | AUTHOR_ORG: OpenRouter | CANONICAL_URL: https://openrouter.ai/docs/api_reference/overview"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-166-URL-C1CC13E818A2",
      "evidence_class": "RESEARCH",
      "title": "[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: OpenRouter API Reference / Auto Router | AUTHOR_ORG: OpenRouter | CANONICAL_URL: https://openrouter.ai/docs/api_reference/o",
      "href": "https://openrouter.ai/docs/guides/routing/routers/auto-router",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-166-URL-C1CC13E818A2"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "S2",
        "[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: OpenRouter API Reference / Auto Router | AUTHOR_ORG: OpenRouter | CANONICAL_URL: https://openrouter.ai/docs/api_reference/overview and https://openrouter.ai/docs/guides/routing/routers/auto-router"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-166-URL-EC8B42E94341",
      "evidence_class": "RESEARCH",
      "title": "[S3] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Vercel AI Gateway: Models, Routing, and Observability | AUTHOR_ORG: Vercel | CANONICAL_URL:",
      "href": "https://vercel.com/docs/ai-gateway",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-166-URL-EC8B42E94341"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "S3",
        "[S3] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Vercel AI Gateway: Models, Routing, and Observability | AUTHOR_ORG: Vercel | CANONICAL_URL: https://vercel.com/docs/ai-gateway"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-166-URL-89526D1B8A91",
      "evidence_class": "RESEARCH",
      "title": "[S4] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Cloudflare AI Gateway | AUTHOR_ORG: Cloudflare | CANONICAL_URL:",
      "href": "https://developers.cloudflare.com/ai-gateway/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-166-URL-89526D1B8A91"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "S4",
        "[S4] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Cloudflare AI Gateway | AUTHOR_ORG: Cloudflare | CANONICAL_URL: https://developers.cloudflare.com/ai-gateway/"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EA-166-R11-RESEARCH",
      "evidence_class": "RESEARCH",
      "title": "EA-166 監査済みresearch / canonical revision binding",
      "supports": [
        "1. ESTABLISHED [S1-S4 support]: The category consistently exposes a control-plane pattern—provider/model selection, request routing, and some combination of auth, logging, cost, limits, caching, fallback, or policy—but each product defines a different boundary.\n2. ESTABLISHED [S1 support]: LiteLLM documents self-hostable SDK/Proxy distinctions and multi-tenant spend/auth/logging/guardrail/cache/router features.\n3. ESTABLISHED [S2 support]: OpenRouter documents a managed normalized API with provider-dependent tool transformation and model allow/exclude/cost-tier routing.\n4. ESTABLISHED [S3 support]: Vercel documents managed credentials, provider/fallback routing, logs with provider attempts/latency/tokens/cost, budgets, access/data policies, BYOK, and OIDC for Vercel deployments; the same page says provider terms apply.\n5. ESTABLISHED [S4 support]: Cloudflare documents analytics/logging, caching, rate limiting, request retry, model fallback, and multiple provider integrations; its page records a current plan statement, which is still a product/plan gate.\n6. INFERENCE [S1-S4]: A gateway can centralize policy and observability, but a cross-product claim such as “gateway guarantees reliability, privacy, cost control, or provider equivalence” is not established by these feature lists. The gateway becomes an additional trust, transformation, outage, and audit boundary."
      ],
      "limit": "canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "COMM-048-EA0166"
      ],
      "supporting_locators": [
        "COMM-048-EA0166",
        "EA-166-R5-LEGACY-MIGRATION-20261008-R1",
        "content/staging/EA-166.md"
      ],
      "scope": "監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。",
      "provenance_status": "AUDIT_PASS_CANONICAL_BINDING"
    },
    {
      "id": "EA-166-R11-WEB-READBACK",
      "evidence_class": "IMPL",
      "title": "EA-166 Web body identity / canonical readback",
      "supports": [
        "canonical staging bodyのSHA-256一致とR9 canonical ledger readbackをProduction projectionの入力として検証する。"
      ],
      "limit": "body identity/readbackは本文claim自体の真偽や外部ソースの最新性を追加保証しない。",
      "checked_at": null,
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "WEBBODY-EA0166-R8-5484DBF6"
      ],
      "supporting_locators": [
        "WEBBODY-EA0166-R8-5484DBF6",
        "content/staging/EA-166.md",
        "EA-166-R5-LEGACY-MIGRATION-20261008-R1"
      ],
      "scope": "R9/R10 canonical readback後のProduction生成時body identity。",
      "provenance_status": "CANONICAL_READBACK_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "WHY_THIS_MATTERS_TO_UPDATE",
      "text": "Enterprise AI gateway is a control-plane category rather than one universal product. A useful update must compare concrete gateway claims while keeping self-hosted OSS, managed routing, provider transformation, logging, budget, cache, and data-policy surfaces separate."
    },
    {
      "heading": "SCOPE_ROUTING",
      "text": "Enterprise AI Core / provider mapping / gateway / governance / cost / observability / security / implementation"
    },
    {
      "heading": "CLAIM_OR_RESEARCH_QUESTION",
      "text": "Across LiteLLM, OpenRouter, Vercel AI Gateway, and Cloudflare AI Gateway, which gateway capabilities are directly documented, and which cross-product conclusions remain unproven?"
    },
    {
      "heading": "EVIDENCE_TABLE",
      "text": "[S1] SOURCE_CLASS: author_maintained_repo | EXACT_TITLE: BerriAI/litellm - LiteLLM repository | AUTHOR_ORG: BerriAI / LiteLLM maintainers | CANONICAL_URL: https://github.com/BerriAI/litellm | PUBLICATION_UPDATE_ACCESS: accessed 2026-09-14 00:16 JST | VERSION_RELEASE_TAG: default branch; unpinned | SUPPORTING_LOCATOR: lines 542-549 for Proxy/SDK, centralized auth, multi-tenant spend, logging/guardrails/caching, Router retry/fallback, stable-tag note | EVIDENCE_LABEL: OSS_PRACTICE + PRODUCT_VOLATILE | RELATION: support for LiteLLM's documented gateway surface; limit for release/provider parity.\n[S2] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: OpenRouter API Reference / Auto Router | AUTHOR_ORG: OpenRouter | CANONICAL_URL: https://openrouter.ai/docs/api_reference/overview and https://openrouter.ai/docs/guides/routing/routers/auto-router | PUBLICATION_UPDATE_ACCESS: accessed 2026-09-14 00:16 JST | VERSION_RELEASE_TAG: current docs; unpinned | SUPPORTING_LOCATOR: API normalization/tool transformation lines 25-36 and 75-81; model allow/exclude and cost-tier lines 450-487 | EVIDENCE_LABEL: PRODUCT_VOLATILE + VERIFIED_SPEC | RELATION: support for managed API/routing claims; limit for cross-provider equivalence.\n[S3] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Vercel AI Gateway: Models, Routing, and Observability | AUTHOR_ORG: Vercel | CANONICAL_URL: https://vercel.com/docs/ai-gateway | PUBLICATION_UPDATE_ACCESS: current page accessed 2026-09-14 00:16 JST | VERSION_RELEASE_TAG: current docs; product/plan availability volatile | SUPPORTING_LOCATOR: lines 386-423 for managed gateway, provider/fallback routing, logs, latency/token/cost, budgets/access/data policies/BYOK; lines 426-433 for API key/OIDC and logging/budget controls | EVIDENCE_LABEL: VERIFIED_SPEC + PRODUCT_VOLATILE | RELATION: support for Vercel-specific control surface; limit for plan/terms/provider behavior.\n[S4] SOURCE_CLASS: official_provider_docs | EXACT_TITLE: Cloudflare AI Gateway | AUTHOR_ORG: Cloudflare | CANONICAL_URL: https://developers.cloudflare.com/ai-gateway/ | PUBLICATION_UPDATE_ACCESS: last updated 2026-04-20; accessed 2026-09-14 00:16 JST | VERSION_RELEASE_TAG: current docs; page says available on all plans, subject to current product terms | SUPPORTING_LOCATOR: lines 138-147 for visibility/control; lines 157-182 for analytics, logging, caching, rate limiting, retry/fallback; lines 186-188 for provider examples | EVIDENCE_LABEL: VERIFIED_SPEC + PRODUCT_VOLATILE | RELATION: support for Cloudflare-specific controls; limit for actual configuration and provider parity."
    },
    {
      "heading": "FINDINGS",
      "text": "1. ESTABLISHED [S1-S4 support]: The category consistently exposes a control-plane pattern—provider/model selection, request routing, and some combination of auth, logging, cost, limits, caching, fallback, or policy—but each product defines a different boundary.\n2. ESTABLISHED [S1 support]: LiteLLM documents self-hostable SDK/Proxy distinctions and multi-tenant spend/auth/logging/guardrail/cache/router features.\n3. ESTABLISHED [S2 support]: OpenRouter documents a managed normalized API with provider-dependent tool transformation and model allow/exclude/cost-tier routing.\n4. ESTABLISHED [S3 support]: Vercel documents managed credentials, provider/fallback routing, logs with provider attempts/latency/tokens/cost, budgets, access/data policies, BYOK, and OIDC for Vercel deployments; the same page says provider terms apply.\n5. ESTABLISHED [S4 support]: Cloudflare documents analytics/logging, caching, rate limiting, request retry, model fallback, and multiple provider integrations; its page records a current plan statement, which is still a product/plan gate.\n6. INFERENCE [S1-S4]: A gateway can centralize policy and observability, but a cross-product claim such as “gateway guarantees reliability, privacy, cost control, or provider equivalence” is not established by these feature lists. The gateway becomes an additional trust, transformation, outage, and audit boundary."
    },
    {
      "heading": "LIMITS / COUNTEREVIDENCE / FAILURE ENVELOPE",
      "text": "Feature-list overlap is not functional equivalence. Managed versus OSS deployment, release, plan, region, BYOK, provider contract, log retention, cache scope, route algorithm, retry semantics, transformed tool schemas, and audit export differ. Vendor pages do not prove independent latency, quality, privacy, or SLO. Fallback/retry may duplicate or alter requests. No cross-gateway benchmark or live call was run."
    },
    {
      "heading": "AVAILABILITY_GATES",
      "text": "product and release/commit; self-hosted versus managed; plan/region; provider/model catalog; API transformation; credentials/BYOK/OIDC; routing/fallback/retry; budgets/rate limits; caching; logs/traces/audit export; retention/data residency; admin/RBAC; outage behavior; pricing/markup; contract/SLO."
    },
    {
      "heading": "IMPLEMENTATION_STATE",
      "text": "Evidence-only desk research. No gateway was configured, authenticated, called, or compared with a live provider."
    },
    {
      "heading": "BENCHMARK_OR_EVAL",
      "text": "No cross-gateway conformance, latency, cost, fallback-duplication, transformation, privacy, or outage-recovery evaluation was run."
    },
    {
      "heading": "SECURITY / PRIVACY / AUDIT / COST / OPERABILITY",
      "text": "A gateway centralizes high-value secrets and high-sensitivity telemetry. Require route/provider attribution, request transformation record, policy decision, token/cost source, retry attempts, cache hit, redaction, retention, and downstream result. Treat gateway outage and misrouting as distinct failure modes from provider outage. Cost must include gateway, provider, retries, cache/storage, and operational review; not measured."
    },
    {
      "heading": "SAFE_WORDING_FOR_FUTURE_BOOK",
      "text": "「AI Gateway群は、複数providerへの接続を集約し、routing／fallback、認証、rate limit、logging、cost、cache、policy等を実装するcontrol-plane群である。LiteLLM、OpenRouter、Vercel、Cloudflareの公式資料は機能境界が異なるため、共通機能と製品固有の実装・契約・版・地域・設定を分離して評価する。」"
    },
    {
      "heading": "UPDATE_WORK_HANDOFF",
      "text": "Future update Work should build a four-product comparison matrix with pinned release/page dates and a safe read-only TEST_PROFILE: direct versus gateway output, provider attribution, schema/tool transformation, retry/fallback, rate/budget, cache isolation, logging/redaction, data policy, outage, and audit readback. No external side-effect tool should be enabled."
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "neutral gateway semantics; cross-product interoperability; route determinism; tool/result transformation; cache privacy; budget enforcement; data residency; provider contract; markup; audit completeness; outage/fallback behavior; independent benchmark/SLO."
    },
    {
      "heading": "STOP_CONDITION",
      "text": "Do not merge LiteLLM OSS, OpenRouter managed API, Vercel managed gateway, and Cloudflare gateway into one product or one guarantee. Do not state that the presence of logs, budgets, fallback, or cache equals effective enforcement without configuration and negative testing.\nUNIT_CLOSE_STATUS: INDIVIDUAL_BOUNDED_CLOSE / EVIDENCE_RECORDED / UNKNOWN_PRESERVED"
    },
    {
      "heading": "EVIDENCE PACKET",
      "text": "---"
    }
  ],
  "human_url": "/tools/ea-166-ai-gateway",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-166-ai-gateway",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-166-ai-gateway"
}