LiteLLM:一个 AI 网关打通 100+ 大模型

摘要
LiteLLM 是一个开源 AI Gateway,把 OpenAI、Anthropic、Gemini、Bedrock、Azure 等 100+ 大模型供应商统一成一套 OpenAI 格式的接口——换供应商不用重写代码,一行代码切换模型。既可以当 Python SDK 直接嵌进代码里用,也可以部署成独立的代理服务(AI Gateway)给团队统一管理密钥、限流和计费,1000 RPS 下 P95 延迟只有 8ms,Stripe、Netflix 等公司都在生产环境用。
核心优势
- 一套接口打通所有供应商:不用为每个厂商单独学一套 SDK、认证方式和报错格式,
/chat/completions、/embeddings、/images、/audio等接口全部统一成 OpenAI 格式 - 换模型不用改代码:Proxy 模式下客户端代码完全不变,只需要把
base_url指向本地网关,模型名一换就切换到不同供应商 - 生产级网关能力开箱即用:虚拟密钥(Virtual Keys)、按项目/用户的用量计费、限流、护栏(Guardrails)、负载均衡、管理后台 UI,这些企业级功能不需要自己再搭一遍
- 不止大模型,还打通 Agent 和 MCP:内置 A2A 协议网关(转发到 LangGraph、Vertex AI Agent Engine、Bedrock AgentCore 等)、MCP 网关(把任意 MCP Server 挂载成可被大模型直接调用的工具)
- 两种落地形态自由选:Python SDK 适合直接嵌入代码做路由/重试/降级;Proxy Server 适合团队统一托管、做集中式密钥和成本管理
- 官方 Terraform 模块:AWS(ECS Fargate + Aurora + ElastiCache)和 GCP(Cloud Run + Cloud SQL + Memorystore)都有现成的生产级componentized 部署方案,网关/后端/UI 独立成服务
面向人群
- 需要接入多个大模型供应商、厌倦了为每家单独写适配代码的开发者
- 负责公司内部 LLM 网关、需要统一管理密钥和成本的 Gen AI Enablement / ML Platform 团队
- 想给已有的 OpenAI 代码加上多模型容灾/降级能力,又不想大改代码结构的团队
- 需要把 A2A Agent 或 MCP Server 暴露给下游应用统一调用的团队
快速上手
方式一:Python SDK(直接在代码里用):
uv add litellm
from litellm import completion
import os
os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"
# OpenAI
response = completion(model="openai/gpt-4o", messages=[{"role": "user", "content": "Hello!"}])
# Anthropic —— 只换了 model 参数,其他代码完全不变
response = completion(model="anthropic/claude-sonnet-4-20250514", messages=[{"role": "user", "content": "Hello!"}])
方式二:AI Gateway(Proxy Server)(团队统一托管,客户端代码保持 OpenAI SDK 不变):
uv tool install 'litellm[proxy]'
litellm --model gpt-4o
import openai
client = openai.OpenAI(api_key="anything", base_url="http://0.0.0.0:4000/")
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}]
)
两种方式的选择很直接:Python SDK 适合直接嵌入自己的代码库;Proxy Server 适合作为团队/组织的中心化服务,统一做鉴权、多租户计费和管理后台。
进阶用法
MCP 网关——把任意 MCP Server 挂到网关上,大模型可以直接调用其中的工具:
curl -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Summarize the latest open PR"}],
"tools": [{
"type": "mcp",
"server_url": "litellm_proxy/mcp/github",
"server_label": "github_mcp",
"require_approval": "never"
}]
}'
也可以直接在 Cursor 这类支持 MCP 的 IDE 里把 LiteLLM 网关配成 MCP Server:
{
"mcpServers": {
"LiteLLM": {
"url": "http://localhost:4000/mcp/",
"headers": {
"x-litellm-api-key": "Bearer sk-1234"
}
}
}
}
A2A Agent 网关——把已有的 Agent(LangGraph、Vertex AI Agent Engine、Bedrock AgentCore 等)挂载到网关后,用统一的 A2A SDK 调用:
import httpx
from a2a.client import A2ACardResolver, ClientConfig, ClientFactory
from a2a.types import Message, Part, Role, SendMessageRequest
from uuid import uuid4
base_url = "http://localhost:4000/a2a/my-agent" # LiteLLM 网关 + Agent 名称
headers = {"Authorization": "Bearer sk-1234"} # LiteLLM 虚拟密钥
async with httpx.AsyncClient(headers=headers, timeout=60.0) as http_client:
resolver = A2ACardResolver(httpx_client=http_client, base_url=base_url)
agent_card = await resolver.get_agent_card()
client = ClientFactory(ClientConfig(httpx_client=http_client)).create(agent_card)
request = SendMessageRequest(
message=Message(message_id=uuid4().hex, role=Role.ROLE_USER, parts=[Part(text="Hello!")])
)
async for event in client.send_message(request):
print(event)
生产级部署:官方维护的 AWS/GCP Terraform 模块可以一键拉起完整的componentized 生产架构(网关、后端、UI 拆成独立服务,配好 Postgres + Redis + 对象存储):
git clone https://github.com/BerriAI/litellm.git
cd litellm/terraform/litellm/aws/examples/default
cp terraform.tfvars.example terraform.tfvars
terraform init && terraform apply
对安全性有要求的团队还可以验证 Docker 镜像签名(cosign 签名,绑定固定 commit hash):
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
ghcr.io/berriai/litellm:<release-tag>
浙公网安备 33010602011771号