版本:v1.0 · 2026-09-14 · 评审稿 作者:Claude Code(樊国柱会话)
定位:《对标选型方案》(07)的专题附录,回答两个问题:LiteLLM 哪些功能需要企业许可;这些边界对公司需求(05 公司版方案、顾磊与翟保延需求)的影响是什么。结论不改变 07 的选型,但把"LiteLLM 作为条件备选"的前提说清楚。
证据:源码取证——BerriAI/litellm 主分支浅克隆(提交 30f33a9,2026-09-12),litellm/proxy 内 premium_user 出现 219 处、not_premium_user 37 处,逐条读上下文;文档取证——docs.litellm.ai 各功能页的"Enterprise feature"标注、litellm.ai/features 与 /enterprise 页、enterprise/LICENSE.md。两种口径冲突时以源码为准并注明。
0. 一页结论
- 许可结构:主体 MIT,
enterprise/目录适用 BerriAI Enterprise License——生产使用必须订阅并按用户席位持有许可,开发与测试可免费使用,禁止分发;运行时以LITELLM_LICENSE密钥开启企业功能,离线许可数据含max_users、max_teams、allowed_features(源码)。定价"按用量、联系报价",有试用期;SSO 五人以内免费。 - 免费边界对我们最重要的几项都在:OpenAI 兼容网关与 100 多家厂商、路由回退与重试、虚拟 Key(预算、速率、模型白名单、元数据、过期)、按 Key / 团队 / 用户的 spend 日志与
/spend/logs、Prometheus 指标与 OTel / Langfuse / Datadog 回调、MCP 网关全部功能、配置级守卫(Presidio、Bedrock、Lakera 等,全局默认开)、Admin UI 与管理 API 的基础 CRUD。 - 企业边界(源码逐条核实):JWT / OIDC 认证、OAuth2 令牌校验、SSO 超过五人、SCIM、Organizations、团队管理员、Key 标签、Key 轮换、Key 按模型预算、通配模型访问组、按 Key / 团队 / 项目挂载的守卫与策略、
/spend/report、审计日志、自定义 spend 元数据、密钥管理器、allowed_routes/admin_only_routes/ IP 白名单、请求与响应体大小限制、enforced_params、worker registry、微调端点、旧版企业钩子(Llama Guard、LLM Guard、密钥检测、OpenAI 与 Google 审核、封禁用户与关键词)、动态关闭回调、团队专属模型。 - 对需求的影响分三档。高:JWT / OIDC 认证(应用凭据 JWT、登录桥 AI 令牌、外部应用 client_credentials 全部走 JWT)、按 Key / 团队的守卫(守卫按路由与渠道裁剪)、审计日志(配置变更审计)。中:Organizations 与团队管理员(Project → Application 两层与应用管理员角色)、Key 标签与自定义 spend 元数据(按部门 / 渠道 / 项目归集成本)、
/spend/report(对账报表)、密钥管理器(厂商 Key 托管与轮换)、Key 轮换。低:SSO 超五人、SCIM、路由与 IP 白名单、请求体限制、微调、worker registry、旧版企业钩子。 - 结论:作为
07定义的"条件备选的模型接入适配层"(位于 agentgateway 之后、只接模型流量),OSS 版足够——身份、守卫、审计由 agentgateway 与管理中心承担,LiteLLM 只需虚拟 Key、路由、预算与 spend 日志,这些全部免费。作为"主策略执行点"(假设),三项高影响要么采购企业版(按席位计费,客户云上与属地化每个环境各需一份离线许可,价格未公开),要么自建绕过(前置层把 JWT 换成虚拟 Key、只用全局守卫、自建配置审计),自建约增加 3 人周并失去 LiteLLM 的省事优势。07的打分已按 OSS 口径给分,本文不改变其结论。
1. 许可结构与获取方式
| 项 | 事实 | 证据 |
|---|---|---|
| 主体许可 | MIT;GitHub 标注 NOASSERTION,因仓库含企业目录 | 文档取证(仓库元数据) |
| 企业目录许可 | enterprise/LICENSE.md:"may only be used in production, if you … have agreed to … the BerriAI Subscription Terms of Service … and otherwise have a valid BerriAI Enterprise license for the correct number of user seats";"you may copy and modify the Software for development and testing purposes, without requiring a subscription";"it is forbidden to copy, merge, publish, distribute, sublicense, and/or sell the Software" |
源码取证 |
| 开启方式 | 环境变量 LITELLM_LICENSE 注入许可密钥,启动时校验(proxy_server.py:1129 前后);离线场景用 air-gapped 许可数据,含 max_users、max_teams、allowed_features 三类限制 |
源码取证(auth/litellm_license.py:136–165) |
| 未持证时的行为 | 命中门控的功能抛错:"You must be a LiteLLM Enterprise user to use this feature … Get a 7 day trial key" | 源码取证(_types.py:4014) |
| 定价 | "Pricing operates on a usage basis. Contact us for a quote";30 天试用;"SSO is free for up to 5 users" | 文档取证(/docs/enterprise) |
| 支持 | 标准:专属 Slack / Teams 频道,工作日 9–21 点(太平洋时间),无响应时限承诺;可选 24 × 7 SLA:S0 一小时、S1 六小时、S2 与 S3 二十四小时 | 文档取证 |
| 分发形态 | litellm-enterprise 独立 PyPI 包;企业代码在公开仓库可见但不可在生产使用 |
文档取证 |
对公司形态的含义:许可按用户席位与团队数计,且每个部署各自校验;公司版方案有五种环境形态,客户云上单开与属地化每个客户环境都要单独持证并做离线激活。
2. 免费与企业功能清单(源码取证)
分数说明:以下"企业"项均在 litellm/proxy 源码中找到 premium_user 门控;"免费"项为源码未见门控且文档未标注。位置为 litellm/proxy/ 下的相对路径与行号(提交 30f33a9)。
2.1 身份认证与访问控制
| 功能 | 免费 / 企业 | 门控位置 | 免费替代 |
|---|---|---|---|
虚拟 Key 认证(Authorization: Bearer sk-…) |
免费 | — | — |
| JWT / OIDC 认证(JWKS 校验、声明映射到团队 / 用户 / 组织、scope 到模型) | 企业 | auth/user_api_key_auth.py:1477"JWT Auth is an enterprise only feature" |
在前置层(agentgateway / APISIX)校验 JWT 后换成虚拟 Key 转发 |
| OAuth2 令牌校验(自省) | 企业 | auth/oauth2_check.py:133、auth/user_api_key_auth.py:1458 |
同上 |
| 自定义认证钩子(custom auth) | 文档口径企业,源码未见门控 | — | 未取证,采购前实测 |
| Admin UI SSO(Microsoft、Google、通用 OIDC、SAML) | 五人内免费,超过企业 | management_endpoints/ui_sso.py:976–990 |
管理中心自研门户,不用其 UI 作为员工入口 |
| SCIM v2 | 企业 | management_endpoints/scim/scim_v2.py:263 |
管理中心同步飞书通讯录 |
allowed_routes、admin_only_routes、UI IP 白名单 |
企业 | auth/auth_utils.py:601、auth/route_checks.py:346、proxy_server.py:5974 |
南北向网关或 NetworkPolicy 收口 |
| 请求 / 响应体大小限制、音频文件大小限制 | 企业 | auth/auth_utils.py:854 / 915、common_utils/http_parsing_utils.py:335 |
南北向网关限制 |
enforced_params(强制请求参数) |
企业 | litellm_pre_call_utils.py:2853、proxy_server.py:6038 |
agentgateway CEL 或处理器 |
2.2 Key、团队、组织
| 功能 | 免费 / 企业 | 门控位置 | 免费替代 |
|---|---|---|---|
| 生成 / 删除 / 禁用虚拟 Key;预算与重置周期;RPM / TPM;模型白名单;元数据;过期 | 免费 | — | — |
Key 轮换(/key/{key}/regenerate,保留身份换密文) |
企业 | management_endpoints/key_management_endpoints.py:5320–5323 |
删旧建新(身份靠元数据与用户 id 延续) |
Key 标签(tags) |
企业 | key_management_endpoints.py:1213 |
用 metadata 自定义字段 |
Key 按模型预算(model_max_budget) |
企业 | key_management_endpoints.py:7250 |
按别名拆 Key,或在 agentgateway 做预算 |
| 通配模型上的访问组 | 企业 | key_management_endpoints.py:4074 |
显式模型名列表 |
Key 权限 get_spend_routes |
企业 | key_management_endpoints.py:4306 |
管理中心代查 |
| 团队(创建、成员、团队预算) | 免费 | — | — |
| 团队管理员角色 | 企业 | management_endpoints/team_endpoints.py:2495–2502、3500 |
应用管理员角色放在管理中心实现 |
| Organizations(组织层) | 企业 | management_endpoints/organization_endpoints.py:84–94"Organizations are only available for LiteLLM Enterprise users" |
只用团队一层,Project 编码进团队元数据 |
| 团队专属模型 | 企业 | management_endpoints/model_management_endpoints.py:1685、1758 |
Key 级模型白名单 |
| 自定义团队元数据校验 | 企业 | management_helpers/team_metadata_validation.py:111 |
管理中心校验 |
2.3 预算、计量与可观测
| 功能 | 免费 / 企业 | 门控位置 | 免费替代 |
|---|---|---|---|
按 Key / 团队 / 用户的 spend 日志、/spend/logs、响应头成本 |
免费 | — | — |
/spend/report(按团队、客户、用户的报表 API) |
企业 | spend_tracking/spend_management_endpoints.py:1388、1703 |
数据平台直读 LiteLLM_SpendLogs 表 |
| 自定义 spend 日志元数据键值、按标签的成本报表 | 企业 | 文档取证(cost_tracking 页) | 用 end_user / Key 别名归集,其余在数据平台关联 |
| Prometheus 指标 | 免费 | 源码与文档均未见门控(仅托管批处理指标标注企业) | — |
| OTel、Langfuse、Datadog、S3 等回调 | 免费 | — | — |
| 审计日志(Key / 团队 / 用户 / 模型的增删改与轮换记录) | 企业 | management_helpers/audit_logs.py:216 |
管理中心记录变更审计;网关侧请求日志不受影响 |
| 动态按请求关闭回调 | 企业 | litellm_pre_call_utils.py:1010 |
不需要 |
2.4 守卫与安全
| 功能 | 免费 / 企业 | 门控位置 | 免费替代 |
|---|---|---|---|
| 守卫框架与提供方(Presidio PII、Bedrock Guardrails、Lakera、Aporia、Azure 内容安全、OpenAI moderation、自定义 API),配置级全局启用 | 免费 | 源码未见门控 | — |
| 按 Key / 团队 / 项目挂载守卫或策略 | 企业 | litellm_pre_call_utils.py:2906–2972(_premium_user_check()) |
全局守卫 + 在 agentgateway 按路由与渠道做差异化 |
| 守卫动态参数、按标签启停、按模型挂载、禁止团队改守卫 | 企业 | 文档取证(guardrails 页) | 同上 |
| 旧版企业钩子:Llama Guard、LLM Guard、密钥检测、OpenAI 与 Google 文本审核、封禁用户列表、封禁关键词 | 企业 | common_utils/callback_utils.py:210–320 |
新守卫框架里的免费提供方 |
| 密钥管理器(AWS / GCP / Azure / Vault 读写厂商 Key 与虚拟 Key) | 企业 | 文档取证(secret 页) | K8s Secret 注入环境变量;轮换时滚动重启 |
2.5 其他
| 功能 | 免费 / 企业 | 门控位置 |
|---|---|---|
| MCP 网关(服务器登记、按 Key / 团队 / 组织 / 用户的工具权限、访问组、工具集、OAuth 上游、换发、透传、OpenAPI 转 MCP、按工具计费) | 免费 | _experimental/mcp_server 源码未见门控;文档无企业标注 |
| 微调端点 | 企业 | fine_tuning_endpoints/endpoints.py:111–534 |
| worker registry(Agent worker 注册) | 企业 | proxy_server.py:6247 |
| 向量库管理、PagerDuty、邮件告警、密钥扫描插件 | 企业目录 | enterprise/litellm_enterprise/* |
3. 对公司需求的影响矩阵
需求编号沿用 05(I-1 至 I-5、E-1 至 E-5、§2.2 与 §2.3 控制项)与翟保延、顾磊的编号。
| 需求 | 用到的 LiteLLM 功能 | 免费 / 企业 | 影响 | 绕过或替代 |
|---|---|---|---|---|
| I-1 / I-5 一把个人 Key 直连模型,零配置 | 虚拟 Key、预算、速率、模型白名单、元数据 | 免费 | 无 | — |
| I-1 Claude Code / Codex / pi 同时直连 | 三套协议入口 | 免费 | 无 | — |
| I-3 同一把 Key 接 MCP 聚合端点 | MCP 网关、Key 级工具权限 | 免费 | 无(但无参数级策略,见 07) |
参数级策略在 agentgateway |
| E-1 / E-2 应用凭据(client_credentials 换 JWT) | JWT / OIDC 认证 | 企业 | 高:OSS 下应用只能用虚拟 Key(简化档),AI IdP 签发的 JWT 无法直接被 LiteLLM 校验 | 前置 agentgateway 校验 JWT 并换成虚拟 Key;或应用凭据统一用 Key |
| E-3 客户用户经登录桥拿 AI 令牌调用 | JWT 认证、end_user 归集 |
企业(JWT);end_user 免费 |
高:同上 | 同上;end_user 头仍可免费归集 |
| E-4 三方入口 OAuth 授权页 | OAuth2 令牌校验 | 企业 | 高 | agentgateway 的 OAuth 2.1 资源元数据与 JWT 校验 |
| 05 §2.1 主体模型:Project → Application 两层、应用管理员 | Organizations、团队管理员 | 企业 | 中:OSS 只有团队一层与全局管理员 | 层级与角色在管理中心实现,LiteLLM 只保留团队 |
| 05 §2.2 模型可见性白名单 | Key / 团队模型列表 | 免费 | 无 | — |
| 05 §2.2 套餐与预算(顾磊三、A4) | Key / 团队预算与重置、/spend/logs |
免费 | 低:无按模型预算与临时提额 | 提额由管理中心改 max_budget |
| 05 §2.2 守卫按路由与渠道(A6–A8) | 按 Key / 团队守卫、标签模式 | 企业 | 高(若 LiteLLM 是执行点):OSS 只能全局守卫 | 守卫放 agentgateway;LiteLLM 只开全局脱敏 |
| 05 §2.2 评测流量标记与独立预算 | Key 标签 | 企业 | 中 | 用独立 Key 与元数据区分 |
| A4 / C3 按部门、渠道、项目归集成本 | Key 标签、自定义 spend 元数据 | 企业 | 中:spend 日志里没有自定义键 | Key 元数据(免费)在管理中心与 spend 表关联 |
| A10 月度对账单 | /spend/report |
企业 | 中 | 数据平台直读 spend 表 |
| A5 厂商 Key 托管与轮换 | 密钥管理器 | 企业 | 中 | K8s Secret + 滚动重启 |
| C4 审计(配置变更) | 审计日志 | 企业 | 高(配置变更可追溯是验收项) | 管理中心记录所有对 LiteLLM 管理 API 的调用 |
| 场景 H 离职回收与 Key 轮换 | 删除 / 禁用 Key(免费)、轮换(企业) | 混合 | 低 | 删旧建新 |
| E1–E6 客户云上单开与属地化 | 离线许可 | 企业功能需每环境持证 | 高(若依赖企业功能):席位与团队数受许可限制,每个客户环境单独激活 | 客户环境只用 OSS 功能 |
| 05 §1.4 飞书 / 企微 / 钉钉登录 | UI SSO | 五人内免费 | 低:员工入口是自研管理中心 | — |
| 网关自身安全加固(路由白名单、IP 白名单、体积限制) | 企业 | 企业 | 低 | 南北向层与 NetworkPolicy |
4. 两种用法下的结论
4.1 作为条件备选的模型接入适配层(07 的定位)
需要的功能:OpenAI 兼容入口、厂商适配、路由回退、虚拟 Key 与预算、spend 日志、Prometheus 或 OTel。全部免费。前提是身份、守卫、审计、多环境分发都在 agentgateway 与管理中心完成,LiteLLM 不暴露给使用方,只被 agentgateway 以一把服务级虚拟 Key 调用。此形态下不产生许可费用,也不触发席位限制。
注意两点:许可审计时把 enterprise/ 目录排除在生产镜像之外(用官方 OSS 镜像并不注入 LITELLM_LICENSE 即可);不要在 LiteLLM 里写治理逻辑(回调、钩子),否则迁移成本失控。
4.2 假设作为主策略执行点
三项高影响(JWT / OIDC 认证、按 Key / 团队守卫、审计日志)加四项中影响(组织层、团队管理员、标签与自定义元数据、密钥管理器)要处理:
| 处理方式 | 内容 | 代价 |
|---|---|---|
| 采购企业版 | 全部解锁 | 按用户席位与团队数计费,价格未公开;五种环境形态里客户侧每个环境单独离线许可;供应商锁定 |
| 自建绕过 | 前置层做 JWT 到虚拟 Key 的映射、只用全局守卫并在前置层做差异化、管理中心记录配置审计、用元数据代替标签、K8s Secret 代替密钥管理器 | 约增加 3 人周;LiteLLM 退化为"带预算的模型代理",与现有 new-api 的差异缩小 |
| 放弃对应需求 | 不做 JWT、不做按 Key 守卫、不做配置审计 | 与翟保延 I2、A6–A8、C4 冲突,不可接受 |
无论哪种处理,参数级策略、每跳一个受众的换发执行点、私有化体积这三项(07 §2.3)都不会因为买了企业版而改变。这是本文维持 07 结论的原因。
5. 文档口径与源码口径的差异
litellm.ai/features 的对比表把"Admin UI""创建与管理团队""按 Key / 用户 / 团队设预算与速率""按模型 / Key / 用户 / 团队跟踪花费""限制模型访问"都标为企业专属,而源码与功能文档显示这些在 OSS 版可用(本文 §2.2、§2.3)。差异可能来自营销页把"UI 内自助操作"与"API 能力"混写。建议采购或自持前用试用许可与 OSS 镜像各跑一遍 07 §4 的场景清单,以运行结果为准。
同样需要注意的相反方向:Prometheus 指标在营销表与源码里都是免费,但社区历史上出现过改为企业功能的讨论;MCP 网关功能当前免费,v1.96 起的"MCP entitlements"与访问组预算是否会移入企业目录未取证。
6. 复评触发
- LiteLLM 把 JWT 认证、按 Key 守卫或审计日志任一项移入免费版。
- LiteLLM 公布公开定价,或提供不按席位、可覆盖多客户环境的许可形态。
- MCP 网关或 Prometheus 指标移入企业目录(对条件备选形态的影响需重评)。
- 公司决定采购 LiteLLM 企业版并接受席位模式。
附录 · 取证方法
git clone --depth 1 --filter=blob:none --sparse https://github.com/BerriAI/litellm.git
cd litellm && git sparse-checkout set litellm/proxy enterprise litellm/integrations
git log -1 --format='%H %cd' # 30f33a949b8a2bb890a2baee18e2ab7ab015a4f7 · 2026-09-12
grep -rn "not_premium_user" litellm/proxy --include='*.py' # 37 处
grep -rn "premium_user" litellm/proxy --include='*.py' | wc -l # 219 处
sed -n 1,25p enterprise/LICENSE.md
文档来源:docs.litellm.ai 的 token_auth、virtual_keys、multiple_admins、tag_routing、cost_tracking、secret、guardrails/quick_start、prometheus、mcp、ui、enterprise 页;litellm.ai/features 与 /enterprise 页;enterprise/README.md。查阅日期 2026-09-14。