| Crates.io | praxis |
| lib.rs | praxis |
| version | 0.2.0 |
| created_at | 2025-11-09 23:47:34.219358+00 |
| updated_at | 2025-11-11 00:43:23.679123+00 |
| description | High-performance React agent framework for building AI agents with LLM, tool execution, and persistence |
| homepage | https://github.com/matheussilva/praxis |
| repository | https://github.com/matheussilva/praxis |
| max_upload_size | |
| id | 1924584 |
| size | 99,162 |
High-performance React agent framework for building AI agents with LLM integration, tool execution, and persistence.
Praxis is a comprehensive framework for building production-ready AI agents that can reason, execute tools, persist conversations, and manage context automatically.
use praxis::prelude::*;
use std::sync::Arc;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let llm_client = Arc::new(OpenAIClient::new(
std::env::var("OPENAI_API_KEY")?
)?);
let mcp_executor = Arc::new(MCPToolExecutor::new());
let graph = GraphBuilder::new()
.with_llm_client(llm_client)
.with_mcp_executor(mcp_executor)
.build()?;
let input = GraphInput::new(
"conv-123",
vec![Message::Human {
content: Content::text("Hello!"),
name: None,
}],
LLMConfig::new("gpt-4o"),
);
let mut events = graph.spawn_run(input, None);
while let Some(event) = events.recv().await {
if let StreamEvent::Message { content } = event {
print!("{}", content);
}
}
Ok(())
}
Praxis consists of focused crates:
praxis-graph: React agent orchestratorpraxis-llm: LLM client (OpenAI, Azure)praxis-mcp: Model Context Protocol clientpraxis-persist: Persistence layer (MongoDB)praxis-context: Context managementSee docs/ for detailed architecture documentation.
MIT