LiteLLM发布v1.102.0-dev.1,所有Docker镜像改用cosign签名验证
该开发版延续commit 0112e53引入的同一签名密钥,并合入policy_engine、router、MCP、UI等大量改动,包括流式响应上执行post_call护栏、MCP静态请求头加密、MongoDB向量搜索迁至可选sidecar(BETA)。
AI解读:镜像签名解决的是供应链问题:你从ghcr.io拉下来的镜像,如何确认它确实由LiteLLM官方签名、没有被中途替换。对在CI或生产环境里自动部署LiteLLM代理的团队来说,这一步可以直接接进部署流水线;对只在本地跑一跑的普通用户,这项检查不是必须动作。
版本内容方面,这次合入了大量改动,覆盖策略引擎、路由、MCP、UI、成本统计等模块。比较值得注意的是policy_engine开始在流式响应上执行post_call护栏管道,以及MCP静态请求头和stdio环境变量改为加密存储——前者关系到实时输出能否被拦截或改写,后者关系到本地工具接入时的凭据安全。
另外还有一批面向运维的修复:路由冷却状态改由独立缓存共享,使多worker代理能在大约 1 秒内让同级worker看到某个部署被熔断;least-busy的进行中请求数开始跨worker共享;MongoDB向量搜索被迁到可选的sidecar(BETA)。这些改动的实际效果需要以官方发布说明为准,摘要中未提供具体版本号之外的时间与测试数据。
LiteLLM发布v1.102.0-dev.1开发版。该版本的发布说明首先强调镜像签名验证:所有LiteLLM Docker镜像都用cosign签名,每次发布都使用commit 0112e53引入的同一密钥。
官方推荐用固定commit哈希验证,因为commit哈希在密码学上不可变,是确认使用原始签名密钥最强的方式;也可以用release tag验证,更方便,但依赖仓库的tag保护规则。两个命令均为cosign verify,公钥分别从raw.githubusercontent.com上对应commit或tag路径的cosign.pub获取,镜像为ghcr.io/berriai/litellm:v1.102.0-dev.1。
发布说明给出的预期输出为:cosign claims已验证,签名已针对指定的公钥完成验证。
policy_engine开始在流式响应上执行post_call护栏
改动列表显示,policy_engine现在会在流式响应上执行post_call护栏管道(PR 38788),并修复了post_call管道在流式输出上的文本改写应用问题(PR 39233)。
MCP相关:OAuth发现、凭据加密与护栏覆盖
MCP方向新增可选的按服务器OAuth中继发现(PR 39936);针对资源范围的网关流程,可直接启动指定服务器的OAuth(PR 39933)。
安全修复方面,MCP存储的静态请求头和stdio环境变量改为加密(PR 40164);同时修复了key和team护栏未应用到MCP工具调用的问题(PR 39629)。
另有修复:/mcp-rest/test/connection像 /test/tools/list一样转发已暂存的凭据(PR 38806);当绑定agent的key被拒绝访问某个受范围限制的MCP服务器时给出明确错误,并在UI中展示agent的MCP授权(PR 39234)。
路由器:冷却缓存、跨worker共享与延迟排序
router合入多项修复。冷却状态获得自己的缓存,使同级部署约 1 秒内能看到某个部署被bench(PR 40025);least-busy的进行中请求数跨代理worker共享(PR 40009);allowed_fails计入共享路由器缓存,使多worker代理可以在整个部署集群范围内熔断某个部署(PR 40224)。
路由排序方面,流式延迟路由改为按原始TTFT排名,而不是按每token的TTFT(PR 40202);没有延迟样本的路由条目按零延迟处理(PR 39970);simple-shuffle支持按任意部署的weight/rpm/tpm加权(PR 40222);基于成本的路由获得自己的缓存键,避免覆盖延迟样本(PR 40225);部署标签不再进入重试和回退的标签路由(PR 40226)。
自适应路由修复了成本加权评分回退到model_info(PR 39957),并在加载时把持久化增量加到冷启动先验上(PR 39955)。auto-router方面,max_tokens在自动路由请求上解析为该层级模型的上限(PR 40209);spend统计改为按部署身份比较auto-router目标(PR 40206)。
模型与提供商支持:Lyria、Mistral TTS、Fireworks原生Responses
Vertex新增Lyria模型支持(PR 30856);Mistral为 /v1/audio/speech增加文本转语音支持(PR 38755);Fireworks AI增加原生Responses API配置(PR 39826)。
Anthropic方向,provider_specific_fields不再出现在原生 /v1/messages线路上(PR 39967);Anthropic消息转换中保留Responses的refusal块(PR 39723);跳过Claude Code的一次性缓存注入(PR 40175)。
其他修复包括:OpenAI非推理模型在Responses中丢弃不支持的reasoning参数(PR 38842);Bedrock聊天错误响应保留x-amzn-RequestId(PR 40089);Vertex AI的托管批处理支持微调后的Gemini端点(PR 39668)。
代理与部署:密钥脱敏、root_path配置、MongoDB向量存储改sidecar
代理侧修复了透传失败traceback中泄露提供商密钥的问题(PR 39964);Bedrock透传路由上强制执行key和team的模型访问控制(PR 39660);启动时在配置加载后初始化字符串形式的成功/失败回调(PR 38226)。
新增SERVER_ROOT_PATHS配置,可按请求从配置的前缀列表中解析root_path(PR 35935)。团队成员的预算修复为在达到上限时仍然强制执行,并处理Redis计数器过期的情况(PR 40304)。
部署方面,Helm和Terraform增加metrics sidecar与独立metrics端口(PR 40163);MongoDB向量搜索迁移到可选sidecar(BETA)(PR 40203),同时Docker代理镜像中带上pymongo以支持MongoDB向量存储(PR 39995)。
性能方面,Snowflake、Bedrock invoke Claude、Mantle和Gemini的远程图片抓取移出事件循环(PR 39839);Anthropic、Vertex Anthropic、Ollama和HF的模板抓取也移出事件循环(PR 40311);语义路由层改为在事件循环之外构建(PR 39954)。
成本、护栏与UI
成本统计修复包括:批处理成本只在第一次看到其最终状态的retrieve时计一次(PR 39980);嵌套在text_tokens中的realtime reasoning token只计费一次(PR 39850);缓存节省按已计费请求基准计价(PR 40160);新增azure_ai/gpt-6-astra Foundry定价(PR 39983);为所有在线但未定价的Bedrock模型补充GovCloud定价(PR 39764)。
护栏方面,AIM和Cato增加inspect_embeddings开关(PR 39918);阻止Prompt Security文件修改(PR 38204);mcp_security接受on_violation为block和alert(PR 40155);当策略管道拦截或修改响应时保留护栏遥测(PR 40211);框架支持的仅日志模式被允许(PR 40267)。
UI方面,Virtual Keys页面不再依赖旧版用户仪表盘(PR 39991);侧边栏改为按pathname路由,?page= 兼容层缩减为一张重定向表(PR 39978);新增key范围的auto-router使用标签页(PR 39999);Add Model表单列出ChatGPT订阅提供商(PR 40170);日志页面支持批量可观测性(PR 39626)。