| Crates.io | rexis |
| lib.rs | rexis |
| version | 0.1.0 |
| created_at | 2025-11-09 11:34:35.917638+00 |
| updated_at | 2025-11-09 11:34:35.917638+00 |
| description | Rexis - Agentic AI Framework for Rust with memory-first agents, RAG, and graph orchestration |
| homepage | https://github.com/0xteamhq/rexis |
| repository | https://github.com/0xteamhq/rexis |
| max_upload_size | |
| id | 1924037 |
| size | 104,937 |
Rule your agents, connect your intelligence
Rexis is a comprehensive Agentic AI framework for Rust that combines:
use rexis::prelude::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create LLM client
let client = rexis_llm::Client::from_env()?;
// Build an agent with memory
let agent = AgentBuilder::new()
.with_llm(client)
.stateful() // Persistent conversation memory
.build()?;
// Run the agent
let response = agent.run("What is Rust?").await?;
println!("{}", response);
Ok(())
}
| Feature | Description |
|---|---|
llm |
Multi-provider LLM client with streaming and tool calling |
rag |
RAG framework with agents and memory systems |
graph |
Graph-based agent orchestration |
full |
All features enabled (recommended) |
[dependencies]
rexis = { version = "0.1", features = ["full"] }
Rexis is built from three core crates:
rexis-llm)Multi-provider LLM client with:
rexis-rag)Memory-first agents with:
rexis-graph)Graph-based orchestration with:
Enable semantic search in semantic memory:
use rexis::rag::agent::memory::{SemanticMemory, HashEmbeddingProvider};
let semantic = SemanticMemory::new(storage, "agent-id".to_string());
let provider = HashEmbeddingProvider::new(128);
// Find similar facts
let results = semantic
.find_similar("Rust programming", &provider, 5, 0.7)
.await?;
Automatically compress old memories:
use rexis::rag::agent::memory::{MemoryCompressor, CompressionConfig};
let compressor = MemoryCompressor::new(
storage,
CompressionConfig::default()
);
// Compress old conversations
compressor
.compress_conversation_memory(namespace, &llm_client, 10)
.await?;
Build multi-agent workflows:
use rexis::graph::prelude::*;
let workflow = GraphWorkflow::new("research-workflow")
.add_node(research_agent)
.add_node(summarizer_agent)
.add_edge("research", "summarizer")
.build()?;
workflow.execute(initial_state).await?;
See examples/ for:
MIT License - see LICENSE for details.
Contributions welcome! See CONTRIBUTING.md.