{
  "format": "agent-article-v0",
  "article_id": "EA-164",
  "canonical_url": "/tools/ea-164-litellm",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EVD-EA-164-URL-DAB892839DF4",
    "EVD-EA-164-URL-7A6936DA981A",
    "EA-164-R11-RESEARCH",
    "EA-164-R11-WEB-READBACK"
  ],
  "unknown_ids": [
    "EA-164-UNKNOWN-01",
    "EA-164-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-EA0164",
    "SRC-EA-164-URL-DAB892839DF4",
    "SRC-EA-164-URL-7A6936DA981A",
    "WEBBODY-EA0164-R8-D83E1BE3"
  ],
  "article_sources": [
    {
      "id": "EVD-EA-164-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-164-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-164-URL-7A6936DA981A",
      "evidence_class": "RESEARCH",
      "title": "Getting Started / Proxy | AUTHOR_ORG: LiteLLM project | CANONICAL_URL:",
      "href": "https://docs.litellm.ai/docs/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-164-URL-7A6936DA981A"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "- Getting Started / Proxy | AUTHOR_ORG: LiteLLM project | CANONICAL_URL: https://docs.litellm.ai/docs/"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EA-164-R11-RESEARCH",
      "evidence_class": "RESEARCH",
      "title": "EA-164 監査済みresearch / canonical revision binding",
      "supports": [
        "1. ESTABLISHED [S1+S2 support]: LiteLLM presents two boundaries: a Python SDK for direct application integration and a Proxy Server described as a central LLM gateway. The repository says both expose a unified interface across multiple LLMs.\n2. ESTABLISHED [S1 support]: The repository documents gateway features including authentication/authorization hooks, multi-tenant spend tracking, logging, guardrails, caching, virtual keys, and a Router with retry/fallback across deployments.\n3. ESTABLISHED [S1+S3 limit]: Provider/model support is a mutable implementation matrix. A checked cell is not proof that every endpoint, parameter, modality, tool schema, error, streaming mode, or release behaves identically.\n4. INFERENCE [S1+S2]: LiteLLM can serve as a policy/normalization control plane, but the normalization boundary may hide provider-specific semantics and does not itself make model output, tool calls, data handling, or fallback outcomes equivalent."
      ],
      "limit": "canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "COMM-048-EA0164"
      ],
      "supporting_locators": [
        "COMM-048-EA0164",
        "EA-164-R5-LEGACY-MIGRATION-20261008-R1",
        "content/staging/EA-164.md"
      ],
      "scope": "監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。",
      "provenance_status": "AUDIT_PASS_CANONICAL_BINDING"
    },
    {
      "id": "EA-164-R11-WEB-READBACK",
      "evidence_class": "IMPL",
      "title": "EA-164 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-EA0164-R8-D83E1BE3"
      ],
      "supporting_locators": [
        "WEBBODY-EA0164-R8-D83E1BE3",
        "content/staging/EA-164.md",
        "EA-164-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": "LiteLLM is a candidate self-hosted or managed gateway layer for normalizing multiple provider APIs, routing, fallback, spend, and policy. The update needs release-pinned implementation evidence and must not convert its compatibility table or marketing count into a universal guarantee."
    },
    {
      "heading": "SCOPE_ROUTING",
      "text": "provider mapping / gateway / implementation / operability / cost / governance / security"
    },
    {
      "heading": "CLAIM_OR_RESEARCH_QUESTION",
      "text": "What does the author-maintained LiteLLM documentation/repository state about the SDK/proxy boundary, multi-provider normalization, routing/fallback, and gateway controls, and what remains unverified?"
    },
    {
      "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: repository accessed 2026-09-14 00:16 JST | VERSION_RELEASE_TAG: default branch; not pinned; repository advertises stable Docker tag separately | SUPPORTING_LOCATOR: repository getting-started lines 540-549 for Proxy Server versus Python SDK, unified interface, gateway features, Router retry/fallback, and stable-tag note; About lines 750-754 for gateway description | EVIDENCE_LABEL: OSS_PRACTICE + PRODUCT_VOLATILE | RELATION: support for documented implementation surface; limit for mutable branch and provider parity.\n[S2] SOURCE_CLASS: official_project_docs | EXACT_TITLE: LiteLLM Documentation - Getting Started / Proxy | AUTHOR_ORG: LiteLLM project | CANONICAL_URL: https://docs.litellm.ai/docs/ | PUBLICATION_UPDATE_ACCESS: current documentation accessed 2026-09-14 00:16 JST | VERSION_RELEASE_TAG: current docs; page exposes provider/model examples and config paths but no immutable release pin in this capture | SUPPORTING_LOCATOR: documentation index and proxy guidance for OpenAI-compatible gateway, provider translation, authentication, logging, cost tracking, rate limiting, and guardrails | EVIDENCE_LABEL: VERIFIED_SPEC + PRODUCT_VOLATILE | RELATION: support/context; limit because documented option is not proof of configured deployment.\n[S3] SOURCE_CLASS: author_maintained_repo | EXACT_TITLE: LiteLLM provider support matrix | AUTHOR_ORG: BerriAI/LiteLLM maintainers | CANONICAL_URL: https://github.com/BerriAI/litellm | PUBLICATION_UPDATE_ACCESS: matrix in repository accessed 2026-09-14 00:16 JST | VERSION_RELEASE_TAG: default branch; support cells are mutable | SUPPORTING_LOCATOR: provider/model capability matrix around repository lines 519-536; treat cells as implementation claims requiring version/provider recheck | EVIDENCE_LABEL: PRODUCT_VOLATILE + OSS_PRACTICE | RELATION: support for existence of a maintained mapping surface; limit/counterevidence to universal compatibility."
    },
    {
      "heading": "FINDINGS",
      "text": "1. ESTABLISHED [S1+S2 support]: LiteLLM presents two boundaries: a Python SDK for direct application integration and a Proxy Server described as a central LLM gateway. The repository says both expose a unified interface across multiple LLMs.\n2. ESTABLISHED [S1 support]: The repository documents gateway features including authentication/authorization hooks, multi-tenant spend tracking, logging, guardrails, caching, virtual keys, and a Router with retry/fallback across deployments.\n3. ESTABLISHED [S1+S3 limit]: Provider/model support is a mutable implementation matrix. A checked cell is not proof that every endpoint, parameter, modality, tool schema, error, streaming mode, or release behaves identically.\n4. INFERENCE [S1+S2]: LiteLLM can serve as a policy/normalization control plane, but the normalization boundary may hide provider-specific semantics and does not itself make model output, tool calls, data handling, or fallback outcomes equivalent."
    },
    {
      "heading": "LIMITS / COUNTEREVIDENCE / FAILURE ENVELOPE",
      "text": "The repository's 100+ provider/API count and feature descriptions are project claims, not independent benchmark evidence. Default branch, stable tags, provider adapters, and upstream APIs change. Retry/fallback can duplicate or alter requests and may change model semantics; compatible request shape does not prove compatible safety, cost, context, tool, or response behavior. No release tag, deployment, or provider API was executed in this packet."
    },
    {
      "heading": "AVAILABILITY_GATES",
      "text": "LiteLLM release/tag/container image; Proxy versus SDK; provider adapter/version; model ID and API revision; endpoint/streaming/tool/structured-output support; credentials and secret store; auth/RBAC/virtual-key configuration; routing/fallback/retry policy; spend/rate limits; logging/guardrails/caching; data retention/residency; network egress; license/support/managed contract; audit export."
    },
    {
      "heading": "IMPLEMENTATION_STATE",
      "text": "Evidence-only desk research. No LiteLLM process, proxy, model provider, key, request, or callback was run."
    },
    {
      "heading": "BENCHMARK_OR_EVAL",
      "text": "No cross-provider compatibility matrix was independently reproduced; no latency, cost, fallback-duplication, tool-call, schema, or safety benchmark was run."
    },
    {
      "heading": "SECURITY / PRIVACY / AUDIT / COST / OPERABILITY",
      "text": "Treat gateway logs, prompts, outputs, API keys, virtual keys, and provider metadata as sensitive. Audit should retain model/provider selected, all attempts, policy/rate decisions, request correlation, redaction status, token/cost source, and downstream result. Calculate cost at accepted outcome level, not only gateway token estimate. Test timeouts, retry idempotency, provider outage, partial stream, and cache leakage; not measured."
    },
    {
      "heading": "SAFE_WORDING_FOR_FUTURE_BOOK",
      "text": "「LiteLLMは、Python SDKとProxy Serverを通じて複数LLM providerを共通インターフェースへ寄せ、routing／retry／fallback、認証、ログ、guardrail、spend管理等を提供すると公式リポジトリで説明している。provider互換性、品質、価格、データ処理、fallback安全性はrelease・model・設定単位で再確認する。」"
    },
    {
      "heading": "UPDATE_WORK_HANDOFF",
      "text": "Future update Work should select one pinned LiteLLM release and two providers, then run a safe read-only TEST_PROFILE for request/response, streaming, tool/schema, timeout/retry, fallback duplication, rate limit, cost attribution, redaction, audit, and provider data policy. Preserve provider-specific failure records rather than collapsing them into the gateway claim."
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "current stable release/commit; adapter parity; provider-specific parameter loss; tool/structured-output semantics; retry/fallback duplicate side effects; cache isolation; RBAC/audit/data-residency gates; cost calculation accuracy; public incidents; managed versus OSS feature difference."
    },
    {
      "heading": "STOP_CONDITION",
      "text": "Do not use LiteLLM's provider count as interoperability proof. Do not state that OpenAI-compatible input/output means equal model behavior, safety, tools, pricing, or SLA across providers.\nUNIT_CLOSE_STATUS: INDIVIDUAL_BOUNDED_CLOSE / EVIDENCE_RECORDED / UNKNOWN_PRESERVED"
    },
    {
      "heading": "EVIDENCE PACKET",
      "text": "---"
    }
  ],
  "human_url": "/tools/ea-164-litellm",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-164-litellm",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-164-litellm"
}