0xPlaygrounds/rig
⚙️🦀 Build modular and scalable LLM Applications in Rust
Rig란 무엇인가?
Rig는 대규모 언어 모델(LLM)을 사용하는 애플리케이션을 구축하고 실행하기 위한 Rust 기반 생태계입니다. 두 부분으로 구성됩니다:
rig라이브러리 – 완성, 임베딩, 오디오/이미지 생성, 벡터 저장소, 도구 계약, 메모리 처리 및 OpenTelemetry 의미론을 위한 공급자 중립 API를 제공하는 crate 세트입니다.rig터미널 에이전트 – Bevy 게임 엔진 기반의 명령줄 “코딩 에이전트”입니다. 에이전트는plugins.toml파일에 있는插件(工具、命令、UI 面板)进行扩展。
两者都是开源的,发布在 crates.io 上,并针对 Linux/macOS 和 Rust 1.97+。
主要特性(如 README 中所述)
| 领域 | 详情 |
|---|---|
| 插件架构 | 所有内容——登录、模型选择、工具、终端 UI——都是 Bevy 插件。您可以在不触及核心的情况下添加、替换或移除插件。 |
| 自重建代理 | /reload 命令使用任何插件更改重新编译代理,并在同一会话中重启它,如果编译失败则回退到之前的构建。 |
| 可脚本化 / 管道友好 | rig -p --json 和 rig --json 在标准输出上输出 JSON,允许其他程序通过管道驱动代理。help-agents 命令记录了该协议。 |
| 丰富的工具集 | 内置工具用于读写文件、编辑代码、搜索、运行 shell 命令和远程 SSH 执行。其他工具可以作为插件添加。 |
| 模型和向量存储集成 | 20+ 模型提供商(OpenAI、AWS Bedrock、Gemini 等)和 10+ 向量存储后端(LanceDB、Qdrant、Milvus、SQLite、MongoDB、Neo4j 等)通过单一接口暴露。 |
| 代理能力 | 多轮流式、类型化钩子、工具使用、带压缩的内存窗口、检查点,以及通过 rig-cassette crate 进行重放。 |
| 跨平台运行时 | 核心和代理运行时编译到 wasm32-unknown-unknown,支持基于浏览器的使用。 |
| 可观测性 | 发出 OpenTelemetry GenAI 语义约定,用于追踪和指标。 |
入门指南
安装终端代理
cargo install rig
rig # 启动交互式编码代理
登录:/login chatgpt 或设置 API 密钥环境变量(例如 OPENAI_API_KEY)。
选择模型:/model。
一次性提示:rig -p "修复失败的测试"。
在您自己的 Rust 代码中使用该库
# Cargo.toml
[dependencies]
rig = "0.44"
use rig::prelude::*;
use rig::providers::openai::{self, OpenAI};
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let model = OpenAI::from_env()?.completion(openai::GPT_6_1_SOL);
let agent = AgentBuilder::new(model)
.preamble("You are a comedian …")
.build();
let resp = agent.prompt("Entertain me!").await?;
println!("{}", resp.output());
Ok(())
}
注意:添加 tokio 并启用 macros,rt-multi-thread 特性。
Crate 概览
| Crate | 用途 |
|---|---|
rig-core |
与提供商无关的数据结构、模型/嵌入契约、工具接口。 |
rig-agent |
构建器、提示、流式、钩子、可序列化的运行日志。 |
rig-memory |
对话窗口、压缩、持久化。 |
rig-cassette |
代理效果的记录/重放、检查点。 |
rig-tools |
常用编码工具(读取、写入、编辑、搜索、shell)。 |
rig-ecs / rig-harness |
用于编码代理的 Bevy ECS 内核和插件框架。 |
rig-tui / rig-basics |
默认终端 UI 和基线插件。 |
集成 crate(例如 rig-bedrock、rig-lancedb、rig-fastembed 等) |
可选功能,引入特定的模型提供商或向量存储后端。 |
社区与生态系统
- 文档 – https://rig.rs/docs 和 docs.rs 上的 API 参考。
- Discord – https://discord.gg/playgrounds 用于提问和分享想法。
- Awesome 列表 – https://github.com/0xPlaygrounds/awesome-rig 收集了基于 Rig 构建的项目。
- 许可证 – MIT。
- 稳定性 – 预 1.0;每个版本可能包含破坏性更改(参见
CHANGELOG.md和MIGRATING.md)。
谁可能使用这个?
- 想要一个类型安全、模块化框架来构建 LLM 驱动工具的 Rust 开发者。
- 构建编码助手、基于聊天的代理或 RAG 管道的团队,需要自定义工具和持久内存。
- 任何希望尝试多种模型提供商或向量存储而无需切换语言的人。
总结
Rig 是一个真正的、面向生产的 Rust 库和配套终端代理,用于构建 LLM 应用。其插件优先的设计、广泛的提供商/向量存储支持以及内置的可观测性,使其成为喜欢 Rust 并希望深度控制其 AI 代理的开发者的坚实基础。
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트