0xPlaygrounds/rig

⚙️🦀 Build modular and scalable LLM Applications in Rust

什么是 Rig?

Rig 是一个基于 Rust 的生态系统,用于构建和运行使用大型语言模型(LLM)的应用。它由两部分组成:

  1. rig 库 – 一组 crate,提供与提供商无关的 API,用于补全、嵌入、音频/图像生成、向量存储、工具契约、内存处理和 OpenTelemetry 语义。
  2. 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 等) 可选功能,引入特定的模型提供商或向量存储后端。

社区与生态系统


谁可能使用这个?

  • 想要一个类型安全、模块化框架来构建 LLM 驱动工具的 Rust 开发者。
  • 构建编码助手、基于聊天的代理或 RAG 管道的团队,需要自定义工具和持久内存。
  • 任何希望尝试多种模型提供商或向量存储而无需切换语言的人。

结论

Rig 是一个真正的、面向生产的 Rust 库和配套终端代理,用于构建 LLM 应用。其插件优先的设计、广泛的提供商/向量存储支持以及内置的可观测性,使其成为喜欢 Rust 并希望深度控制其 AI 代理的开发者的坚实基础。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目