VernLLM
面向 TypeScript 开发者的 LLM 调用层开源工具包,通过在进程内嵌入重试、熔断、速率限制
VernLLM 是一个面向 TypeScript 开发者的 LLM 调用层开源工具包,通过在进程内嵌入重试、熔断、速率限制、缓存和结构化输出等能力,解决 LLM 应用在生产环境中面临的超时、限流、provider 宕机等常见稳定性问题。与其每次新建 AI 功能都重复编写防御性代码,不如直接引入 VernLLM,用统一的接口管理所有 LLM 调用。
解决什么问题
LLM API 调用失败的方式与普通 HTTP 请求不同:可能超时、触发速率限制、provider 临时不可用,或者某个请求莫名其妙地挂起。VernLLM 在现有的 provider SDK 外围封装了一层弹性逻辑,让每一次 LLM 调用都自带容错能力,无需开发者手动处理。
核心功能
自动重试与退避:瞬时故障(如网络抖动、provider 临时过载)自动重试,并带有指数退避和 jitter;可配置的不可重试状态码(如 400、401、403、404)则直接快速失败,避免浪费资源。
熔断器(Circuit Breaker):连续失败达到阈值后自动跳闸,停止向故障 provider 发送请求,避免级联崩溃;provider 恢复后自动重新开放。
客户端速率限制:在本地对每分钟请求数、每分钟 token 数、最大并发数进行排队管理,而不是等到 provider 返回 429 错误再处理,从源头避免触发远程限流。
结构化输出:传入 Zod Schema,获得经过验证的强类型 JSON 返回值,省去手动解析和校验的步骤。
缓存机制:cachedCall 接口支持挂载自定义缓存适配器,相同内容的重复调用直接走缓存,不产生额外费用或延迟。
可观测性:onEvent 钩子统一报告重试、熔断器切换、速率限制等待等关键事件;onUsage 钩子记录每次调用的 token 消耗,便于成本分析。
统一接口多 provider:OpenAI、Anthropic、Gemini、AWS Bedrock、Groq、Mistral、DeepSeek、Cerebras、Fireworks、Ollama 等 30 余家 provider 共用同一套 API,切换模型或 provider 无需改动业务逻辑。
技术特点
零运行时依赖:不强制依赖 zod 或特定 provider SDK,通过兼容接口而非具体实现实现解耦。
TypeScript 优先:完整的类型推导,从配置到调用结果全程类型安全。
无网关架构:所有逻辑运行在进程内,不依赖外部代理服务,延迟更低,运维更简单。
适用人群
正在构建 AI 代理、文档处理流水线、聊天应用或 LLM 驱动工具的后端/全栈开发者。需要在生产环境中保障 AI 功能稳定可用性的技术团队。希望用统一方式管理多个 LLM provider 的架构负责人。
出品方与更新
由独立开发者 LakBud 维护,MIT 开源协议。当前版本 2.6.2,npm 周下载量持续增长,GitHub 仓库活跃接受社区贡献。
评论与建议
登录 后参与评论或提建议