Herdr UI
Herdr의 TUI가 뛰어나며, 창을 통해 추가되는 기능
Rig는 Rust 기반 LLM 애플리케이션·AI 에이전트용 라이브러리로 20개 이상 제공자를 하나의 타입‑안전 API로 통합 제공
Rig is a Rust library for building LLM-powered applications and AI agents — one unified API across 20+ providers, with type-safe tools, structured output, and production-ready performance.
개발 도구Rust · PythonGitHub @0xPlaygrounds온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
⚙️🦀 Build modular and scalable LLM Applications in Rust
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗📑 Docs • 🌐 Website • 🤝 Contribute • ✍🏽 Blogs •
Rig is a Rust library for building LLM applications, and rig, a terminal
coding agent built on it that you extend with Bevy plugins.
cargo install rig
rig
In the agent, /login signs in with a ChatGPT plan or saves a provider's API
key, or export the key (such as OPENAI_API_KEY) before starting. /model picks
the model and /help lists the commands. rig -p "fix the failing test"
answers one prompt without the terminal view.
plugins.toml, so any of them can be removed, replaced or added to./reload rebuilds the agent with your plugin
changes and restarts it in the same session, and keeps the old build running
if the new one does not compile.rig -p --json and rig --json drive it over pipes;
rig help-agents is the protocol.shell
changed are optional plugins, and the tools work on remote hosts over ssh
or any command.The agent guide covers the keys, sessions, compaction, plugins and files, and the plugin guide shows how to write a tool, command or panel. The agent needs Rust 1.97.1 or newer and runs on Linux and macOS.
cargo add rig
use rig::prelude::*;
use rig::providers::openai::{self, OpenAI};
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
// The client reads `OPENAI_API_KEY` and builds the models it serves.
let model = OpenAI::from_env()?.completion(openai::GPT_6_1_SOL);
let comedian = AgentBuilder::new(model)
.preamble("You are a comedian here to entertain the user using humour and jokes.")
.build();
let response = comedian.prompt("Entertain me!").await?;
println!("{}", response.output());
Ok(())
}
#[tokio::main] needs tokio's macros and rt-multi-thread features
(cargo add tokio --features macros,rt-multi-thread).
rig-cassette)wasm32-unknown-unknown) for the core and the agent runtime (target support)More in examples/, the docs and the
API reference.
rig-core no longer forces serde_json's preserve_order or
float_roundtrip features. Without them, JSON object keys sort by name,
including schema properties and JSON text embedded in prompts, embeddings
and tool results. Parsing floating-point numbers can change their low bits.
To restore the previous configuration, add this to your application's
Cargo.toml dependencies:
serde_json = { version = "1", features = ["preserve_order", "float_roundtrip"] }
Cargo unifies features across dependencies. rig-cassette with traffic
(and therefore rig-traffic) still enables both features. rig-claude-cloak,
rig-mcp-client and rig-mongodb through BSON still enable preserve_order. These are
application-level serde_json choices; Rig has no forwarding feature.
The rig crate re-exports the core and the agent runtime, and each companion
crate behind a feature.
| Crate | What it is |
|---|---|
rig-core | Provider-neutral messages, completion and embedding models, tool contracts, the conversation type, vector-store contracts, and the providers |
rig-agent | The agent builder, prompting and streaming, hooks, the tool registry and the serializable AgentRun |
rig-memory | Windows, compaction, and saving, resuming and forking conversations |
rig-cassette | Effect logs: recording, replay and checkpoints |
rig-tools | Coding tools any rig agent can use: read, write, edit, search, shell |
rig-ecs, rig-harness | The agent kernel on Bevy's ECS, and the harness the coding agent's plugins build on |
rig-tui, rig-basics | The terminal view, and the coding agent's default plugins |
rig-traffic | Opt-in provider HTTP recording in the session store, using the cassette engine |
rig = { version = "0.44.0", features = ["lancedb", "fastembed"] }
| Integration | Crate | Feature | Module path |
|---|---|---|---|
| AWS Bedrock | rig-bedrock | bedrock | rig::bedrock |
| AWS S3Vectors | rig-s3vectors | s3vectors | rig::s3vectors |
| Candle (local Llama/SmolLM2/Qwen3 tools, YOLOv8 pose) | rig-candle | candle | rig::candle |
| Cloudflare Vectorize | rig-vectorize | vectorize | rig::vectorize |
| FastEmbed | rig-fastembed | fastembed | rig::fastembed |
| Google Gemini gRPC | rig-gemini-grpc | gemini-grpc | rig::gemini_grpc |
| Google Vertex AI | rig-vertexai | vertexai | rig::vertexai |
| HelixDB | rig-helixdb |
Projects built on Rig are listed in awesome-rig; open a pull request there to add yours. Questions and ideas are welcome on Discord, and CONTRIBUTING.md says how to contribute. Rig is MIT licensed.
[!WARNING] Rig is pre-1.0. Releases contain breaking changes; each release's changelog and migration notes say what changed and how to move.
rig-mcp-client | The coding agent's MCP client, off by default: MCP servers' tools, with project servers only once approved |
rig-acp | rig acp, off by default: the coding agent for ACP clients (editors such as Zed) |
helixdbrig::helixdb |
| LanceDB | rig-lancedb | lancedb | rig::lancedb |
| Conversations over time | rig-memory | memory | rig::memory |
| Milvus | rig-milvus | milvus | rig::milvus |
| MongoDB | rig-mongodb | mongodb | rig::mongodb |
| Neo4j | rig-neo4j | neo4j | rig::neo4j |
PostgreSQL (vector store; with memory, a session store) | rig-postgres | postgres | rig::postgres |
| Qdrant | rig-qdrant | qdrant | rig::qdrant |
| ScyllaDB | rig-scylladb | scylladb | rig::scylladb |
SQLite (vector store; with memory, a session store) | rig-sqlite | sqlite | rig::sqlite |
| SurrealDB | rig-surrealdb | surrealdb | rig::surrealdb |
| TypeSafe Jev (experimental judgments) | rig-typesafeai | typesafeai | rig::typesafeai |