LiteLLM 深度研究:一个代理统一 100+ LLM API,AI 时代的 Nginx
> 来源: https://github.com/BerriAI/litellm
> 文档: https://docs.litellm.ai/
> 评测: https://www.truefoundry.com/blog/a-detailed-litellm-review-features-pricing-pros-and-cons-2026
> 研究时间: 2026-03-17
🎯 一句话版本
LiteLLM 就是 LLM 的"翻译器+路由器"——你的代码只写 OpenAI 格式,LiteLLM 帮你翻译成 Anthropic/Azure/Bedrock/Cohere 等 100+ 家的格式,并自动处理失败重试、负载均衡和费用追踪。就像 Nginx 把流量分发给后端服务器一样,LiteLLM 把 LLM 请求分发给不同的模型提供商。
🏗️ 两个产品,别搞混
| Python SDK | Proxy Server(AI Gateway) | |
|---|---|---|
| **是什么** | Python 库 | 独立的 FastAPI 服务 |
| **安装** | `pip install litellm` | Docker 容器 |
| **状态** | 无状态 | 有状态(需要 PostgreSQL + Redis) |
| **适合谁** | 开发者个人使用 | 团队/企业集中管控 |
| **许可** | MIT 免费 | 社区版免费,企业版付费 |
| **核心功能** | 统一调用 100+ LLM | 统一调用 + Key 管理 + 费用追踪 + 速率限制 |
⚡ 核心能力
1. 统一 API 格式
from litellm import completion
# 不管调谁,都是同一种写法
response = completion(model="openai/gpt-4o", messages=[...])
response = completion(model="anthropic/claude-sonnet-4", messages=[...])
response = completion(model="azure/my-deployment", messages=[...])
response = completion(model="bedrock/anthropic.claude-3", messages=[...])
支持的 endpoint:
/chat/completions— 对话/responses— OpenAI Responses API/messages— Anthropic Messages API/embeddings— 向量嵌入/images/generations— 图片生成/audio/transcriptions— 语音转文字/audio/speech— 文字转语音/batches— 批处理/rerank— 重排序
2. 负载均衡 + 故障转移
# config.yaml
model_list:
- model_name: gpt-4o
litellm_params:
model: azure/gpt-4o-eastus # 主力
api_base: https://eastus.openai.azure.com/
- model_name: gpt-4o
litellm_params:
model: azure/gpt-4o-westus # 备用
api_base: https://westus.openai.azure.com/
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o # 兜底
Azure 东部 429 了 → 自动切西部 → 再挂了 → 切 OpenAI 直连。你的代码不用改一行。
3. Virtual Keys(虚拟密钥)
# 给实习生创建一个每分钟只能调 1 次的 key
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-master-key' \
-d '{"rpm_limit": 1, "max_budget": 10}'
- 每个 key 独立的速率限制和预算
- 按团队/项目追踪费用
- 不暴露真实 API Key
4. 可观测性集成
原生支持:
- Langfuse — Trace 追踪(上面刚研究过)
- MLflow — 实验管理
- Lunary — 分析
- OpenTelemetry — 标准协议(也刚研究过)
5. 新增:A2A Agent Gateway + MCP Tools
2026 年新增的两大能力:
A2A(Agent-to-Agent):
# 通过 LiteLLM 调用 LangGraph/Vertex AI/Bedrock 上的 Agent
from litellm.a2a_protocol import A2AClient
client = A2AClient(base_url="http://localhost:4000/a2a/my-agent")
response = await client.send_message(request)
MCP(Model Context Protocol):
# 在 /chat/completions 中直接使用 MCP 工具
curl -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-d '{"model": "gpt-4o", "tools": [{"type": "mcp", "server_url": "litellm_proxy/mcp/github"}]}'
🧠 内置智能路由:根据问题难度自动选模型
LiteLLM 内置了两种 Auto Router,不需要外部依赖:
Complexity Router(难度路由)⭐ 推荐
原理:基于规则给 query 打复杂度分,自动分四档路由到不同模型。
延迟:<1ms(零 API 调用,纯本地规则)。
model_list:
- model_name: gpt-4o-mini
litellm_params: { model: gpt-4o-mini }
- model_name: gpt-4o
litellm_params: { model: gpt-4o }
- model_name: claude-sonnet
litellm_params: { model: claude-sonnet-4-20250514 }
- model_name: o1-preview
litellm_params: { model: o1-preview }
- model_name: smart-router # ← 调用这个名字
litellm_params:
model: auto_router/complexity_router
complexity_router_config:
tiers:
SIMPLE: gpt-4o-mini # "今天星期几?"
MEDIUM: gpt-4o # 一般问题
COMPLEX: claude-sonnet # 复杂分析
REASONING: o1-preview # 推理难题
complexity_router_default_model: gpt-4o
调用时 model="smart-router" 就行,LiteLLM 自动判断难度选模型。
Semantic Auto Router(语义路由)
原理:用 embedding 做语义匹配——预定义"样例句子",LiteLLM 把新请求跟样例做相似度匹配,选最接近的模型。
适合:按意图分流(如"代码问题→Claude"、"翻译→GPT")。
缺点:需要额外调 embedding API,延迟 100-500ms。
两种路由对比
| Complexity Router | Semantic Router | |
|---|---|---|
| 原理 | 规则打分(难度) | Embedding 相似度(意图) |
| 延迟 | <1ms | 100-500ms |
| 额外 API | 不需要 | 需要 embedding 模型 |
| 配置 | 开箱即用 | 需要写样例句子 |
| 适合 | 按难度省钱 | 按意图分专家模型 |
> 文档: https://docs.litellm.ai/docs/proxy/auto_routing
🗄️ Proxy Server 有状态:存了什么?
Proxy Server(AI Gateway)需要 PostgreSQL + Redis,具体存储内容:
| 存储 | 内容 | 说明 |
|---|---|---|
| **PostgreSQL** | Virtual Key(虚拟密钥) | 谁有什么权限 |
| 团队/用户信息 | 组织架构 | |
| 费用日志 | 每个 key/团队/项目花了多少钱 | |
| 速率限制配置 | 每个 key 的 RPM/TPM 上限 | |
| 模型访问权限 | 谁能用什么模型 | |
| **Redis** | 速率限制计数器 | 实时追踪"这个 key 这分钟调了几次" |
| 响应缓存 | 相同 prompt 直接返回,省钱 | |
| 当前请求状态 | 并发追踪 |
简单说:PG 存"规则和账单",Redis 存"实时计数和缓存"。如果只是个人用不需要这些,SDK 版(无状态)就够了。
📦 安装方法
最简:Python SDK
pip install litellm
# 一行启动代理
litellm --model gpt-4o
# → http://0.0.0.0:4000
Docker(推荐)
docker run \
-v $(pwd)/config.yaml:/app/config.yaml \
-e OPENAI_API_KEY=sk-xxx \
-p 4000:4000 \
docker.litellm.ai/berriai/litellm:main-latest \
--config /app/config.yaml
Docker Compose(完整版,带 DB)
需要 PostgreSQL + Redis。官方提供 docker-compose.yml。
💰 定价
| 版本 | 费用 | 功能 |
|---|---|---|
| **社区版** | 免费(MIT) | 路由、负载均衡、基础日志 |
| **企业版** | 联系销售 | SSO/RBAC、团队预算管理、企业支持 |
自托管基础设施成本估算:$200-500/月(取决于流量和冗余需求)。
📊 性能
| 指标 | 数据 |
|---|---|
| P95 延迟 | **8ms**(1K RPS) |
| 支持提供商 | **100+** |
| 支持 endpoint | 10+(chat/embed/image/audio/batch/rerank/a2a/mcp) |
| Docker 镜像 | `-stable` 标签经过 12 小时负载测试 |
🤔 深度分析
LiteLLM vs OpenRouter
| LiteLLM | OpenRouter | |
|---|---|---|
| **部署** | 自托管 | 云服务 |
| **数据** | 不过第三方 | 过 OpenRouter 服务器 |
| **定价** | 免费 + 自己付基础设施 | 按用量加价 |
| **Key 管理** | 自己管理 | OpenRouter 管理 |
| **适合** | 需要数据隐私/合规 | 快速上手、不想运维 |
我们目前用 OpenRouter——方便但数据过第三方。如果未来需要合规或更精细的控制,可以考虑切到 LiteLLM 自托管。
运维代价(README 不会告诉你的)
1. PostgreSQL + Redis:想用 Virtual Key 和费用追踪?必须部署数据库。你不只是 AI 工程师,你还要管数据库迁移、备份、连接池
2. 企业功能付费墙:SSO/RBAC/团队预算 → 需要企业版许可证
3. 无 SLA:社区版没有正式 SLA,挂了自己修
4. 版本更新频繁:活跃项目的双刃剑——功能多但升级也频繁
最佳使用场景
| 场景 | 推荐度 | 说明 |
|---|---|---|
| 个人开发者统一调用多模型 | ✅✅✅ | `pip install litellm` 秒装 |
| 团队多模型负载均衡 | ✅✅✅ | Proxy + Virtual Key |
| 数据敏感行业(金融/医疗/政府) | ✅✅✅ | 自托管,数据不出 VPC |
| 不想运维的小团队 | ❌ | 用 OpenRouter 更省事 |
| 需要 SSO/RBAC 的企业 | 🟡 | 需要企业版许可证 |
💡 与我们的关联
1. 可以替代 OpenRouter
如果我们想要:
- 数据不过第三方
- 更精细的费用控制(按 Agent/项目追踪)
- 自定义速率限制
LiteLLM Proxy 就是答案。部署到 ub2(i9 + 63GB RAM),8ms 延迟完全够用。
2. Langfuse + LiteLLM = 完整可观测性
我们的 Agent
↓
LiteLLM Proxy(路由 + 费用追踪)
↓ (自动发 Trace)
Langfuse(可视化仪表盘)
↓
GPT-4 / Claude / DeepSeek / GLM-5
LiteLLM 原生支持 Langfuse 回调——配置一行环境变量就行。
3. A2A + MCP Gateway
LiteLLM 新增的 A2A 和 MCP Gateway 意味着它正在从"LLM 代理"升级为"AI Agent 基础设施"。如果我们未来要做多 Agent 协作,LiteLLM 可以做统一的 Agent 调用网关。
4. 渐进式迁移路径
现在:OpenRouter(零运维)
↓
中期:LiteLLM SDK(代码里直接用,零部署)
↓
后期:LiteLLM Proxy(自托管,完全掌控)
📊 评分
| 维度 | 评分(/10) |
|---|---|
| 技术能力 | 9.0 — 100+ 提供商、8ms P95、A2A/MCP 新能力 |
| 安装体验 | 8.5 — SDK 极简,Proxy 需要 PG+Redis |
| 开源程度 | 8.0 — MIT 核心,企业功能付费 |
| 生态集成 | 9.5 — Langfuse/OTel/MLflow 原生支持,覆盖几乎所有 LLM |
| 与我们的关联 | 8.5 — 可替代 OpenRouter,与 Langfuse 完美配合 |
| **综合** | **8.8** |
报告由深度研究助手自动生成 | 2026-03-17
来源: https://github.com/BerriAI/litellm