Feature Reading

深度内容 / 资讯阅读

把赛场动态、行业观察与平台视角汇聚到更清晰的阅读结构中,让信息获取更集中,理解过程更自然。

十万行代码白写了:一次升级逼他们推倒重来

Respan 花了两年时间,在 LiteLLM 之上堆出超过 10 万行 封装代码。本周二,这家公司发布了一个用 Rust 写的开源 AI 网关,把过去那套东西整个换掉。 新网关的思路是"小核心 + 插件":模型供应商、路由、MCP 工具、实时语音、安全控制,全部拆成插件来处理。这套结构借的是 Nginx 的思路——核心保持小,功能往外挪,开发者用同一套接口自己写插件,不用动底层代码。 触发这场重写的,是一次例行升级。 2026 年 1 月,一次常规的 LiteLLM 升级导致间歇性连接失败。Respan 回滚了更新,但始终没搞清楚问题出在哪。公司在 Hacker News 的发布帖里说:"我们至今仍未查明原因。"从那以后,工程师们不再直接升级 LiteLLM,而是把上游修复一个一个单独摘出来用。 插件化带来的直接好处是体积。Respan 称它的 Mistral 供应商插件只有 22 行代码 ;像 Groq 把 token 用量报在另一个字段这类怪癖,也能单独处理。更新一家供应商时,不必牵动网关的其他部分。 请求通过 HTTP 或 WebSocket 进来后,网关按顺序跑一遍插件。插件可以决定由哪个模型处理、改写响应、发起额外调用,或者在请求到达供应商之前把它拦下。两边格式一致时,原始请求和供应商专属字段可以原样保留;格式不一致时,网关负责协议转换——比如为 OpenAI Realtime API 写的应用,不改客户端就能连上 Gemini Live,不过部分功能可能无法带过去。 代价也有,而且不小。 自定义插件要编译进网关,加一个插件意味着维护代码、重新构建二进制文件。 插件跑在网关进程内部,能接触到模型请求和其他敏感数据。 插件顺序决定行为:把缓存放在安全检查前面,缓存响应就可能整个绕过检查。 Rust 能挡内存安全类 bug,挡不住恶意依赖和有缺陷的应用逻辑。发布后的 Hacker News 讨论里就有人提出这一点,一位评论者质疑编译进去的 crate 到底该不该叫插件,理由是它逼开发者维护构建流水线,还引入供应链风险。Respan 创始人承认了这个担忧,同时指出开发者至少可以检查自己正在编译的源码。 在"AI 网关该用 Rust 写"这件事上,Respan 不是独一份。LiteLLM 自己也在把网关往 Rust 迁,但路径完全相反:Respan 是从核心重建,LiteLLM 是一条路由一条路由地搬,Rust 核心默认关闭,处理不了的请求回落到原有的 Python 路径,这样打开开关也不会弄坏 Python 已经能服务的东西。LiteLLM 在 6 月公布了这一计划,目标是一个纯 Rust 服务器,跑所有热路径、鉴权和限流,目前的 beta 还没做到。 LiteLLM 还公布过一组基准测试,称其 Rust 网关的开销比 Bifrost 低约 7 倍 、内存占用低 9 倍 。这些数字来自 LiteLLM 自己的测试,用的是该公司自己开发的基准测试工具。 Respan 的网关目前仍是 pre-alpha 阶段。开发者可以从 GitHub 下载预编译二进制文件,不依赖该公司的付费平台直接运行;自定义插件则仍需自行编译构建。 特别

about image
觉得有用?分享给朋友

让更多人看到这篇内容

推荐阅读