8,495 颗星背后:Rust 写的 Rig 凭什么成为 LLM 应用基础设施而不是又一个玩具框架
用 Rust 写 LLM 应用,听到这个组合你可能会皱眉头——Rust 不是那个”学不动”的重型系统语言吗?为什么不直接用 Python + LangChain?
这个问题本身就是一个认知偏差。Rig 正在用 8,495 颗星证明:Rust 写 LLM 应用,不是在炫技,而是在解决一个真实问题——Python 生态跑 LLM 应用的团队,正在被 GC 停顿、资源占用和类型安全问题反复折磨。
它的核心定位是什么
Rig(0xPlaygrounds/rig)是一个 Rust 库,定位很清晰:用零成本抽象的方式,把 LLM 应用开发里那些重复的模型调用、向量存储、多轮对话管理,做成可插拔的模块。
它的架构分两层:
rig-core:Provider-neutral 的核心抽象——消息模型、Completion 接口、Tool 定义、Memory 和 Vector Store 契约。你换模型提供商不需要改业务逻辑。rig-agent:经典 Agent 运行时,默认开启。包含 Streaming、多轮 Prompt、Typed Hooks、Contextual Tools、Extraction 和可序列化的AgentRun状态机。
根包 rig 把两层统一导出,大多数场景只需要依赖 rig。
它的协作者列表里,有好几个响亮的名字:St. Jude(用 Rig 驱动 genomics 可视化工具 proteinpaint 的 AI 对话模块)、Nethermind(区块链基础设施公司,用在 Neural Interconnected Nodes Engine)、Neon(用 Rig 重写 app.build V2)、Coral Protocol、Ryzome(视觉化 AI 工作区)、Listen(AI 投资组合管理框架)。
这个库目前版本 0.36.0,已在crates.io发布,支持 Rust 1.75+。
它解决了什么问题
LangChain 之所以流行,是因为它把”LLM + Tool + Memory”这个模式封装得很顺手。但 LangChain 本质上是 Python 脚本的增强——一旦业务复杂起来,GC 停顿会把流式响应切成碎片,类型安全缺失会让 bug 埋得很深,多模型切换要写大量胶水代码。
Rig 的解题思路是让 Rust 的所有权系统做它擅长的事:一个 LLM 调用、一个 Tool 执行、一个 Memory 写入,生命周期全部由编译器保证,不需要运行时垃圾回收介入。
官方给出的性能优势很直接:零成本抽象 + 内存安全(无 GC)+ 并发安全(所有权系统)。对比 Python 框架,在高频调用和生产级部署场景里,这些优势会被放大。
谁真的在用
这是 Rig 最有意思的部分——它已经不是一个 demo 项目,而是一个被真实团队用在生产环境里的基础设施:
| 用户 | 场景 |
|---|---|
| St. Jude | proteinpaint 基因组可视化工具的 AI 对话模块 |
| Nethermind | Neural Interconnected Nodes Engine 框架 |
| Coral Protocol | Rust SDK 核心抽象层 |
| Neon | app.build V2 Rust 重写版 |
| VT Code | 终端 Rust 编程 Agent,Tree-sitter + ast-grep 语义分析 |
| Listen | AI 投资组合管理框架 |
真实使用门槛
坦白说,Rig 不是零门槛。它的使用门槛有两层:
第一层:Rust 能力。你需要能写基本的 async Rust 代码(Tokio 运行时),理解 Result 错误处理和生命周期注解。没有 Rust 基础直接上手机器学习应用开发,会比较吃力。
第二层:模型理解。Rig 封装了很多 Provider(OpenAI、Anthropic、Google Gemini、Cohere、Mistral、本地 Candle 等 20+),但每个 Provider 的能力边界不同——比如某些 Provider 支持 Function Calling,某些支持图像生成——你需要知道你在用什么模型、它能做什么。
入门其实只有三行代码:
use rig::prelude::*;
use rig::providers::openai;
let comedian_agent = openai::Client::from_env()?
.agent(openai::GPT_5_2)
.preamble("You are a comedian here to entertain the user.")
.build();
let response = comedian_agent.prompt("Entertain me!").await?;
println!("{}", response.output);
但这只是最简单的单 Agent 场景。真正用好 Rig,你需要理解它的 Memory 系统、Vector Store 集成(支持 LanceDB、Qdrant、Milvus、PostgreSQL、Neo4j 等 10+ 种)和 Tool 定义方式。
适合谁,不适合谁
适合你,如果你:
- 团队已经在用 Rust 开发后端服务,需要把 LLM 能力集成进去
- 被 Python LLM 应用的 GC 停顿或内存问题折腾过
- 需要多模型切换(生产环境用不同模型做不同任务)
- 在做需要长期维护的 LLM 应用,类型安全可以降低维护成本
不适合你,如果你:
- 还在探索阶段,需要快速 MVP,Python 生态更快
- 完全不懂 Rust,学习 Rust 本身的时间成本不划算
- 只是做简单的单次 LLM 调用,不需要 Agent 框架
下一步建议
想尝试?官方文档在 rig.rs/docs,API Reference 在 docs.rs/rig。建议从 examples 目录开始,官方维护了一组 cassette-backed 测试,可以离线 replay,不需要真实 API Key。
如果你正在评估 Rust LLM 框架,Rig 的 awesome-rig 列表收录了用它做的实际项目,包括 AI 编程终端 Agent(VT Code、Con)、去中心化 AI 网络(Dria)、区块链基础设施(Nethermind),这些真实案例比 benchmark 数据更能说明它的能力边界。
一句话总结:Rig 不是 Rust 版本的 LangChain,而是一个从 Rust 工程师视角重新设计的 LLM 应用框架——如果你本来就是 Rust 开发者,它值得你认真看一下;如果不是,它可能还不是你今天的答案。
评论区
登录后可评论。