| Crates.io | praxis-graph |
| lib.rs | praxis-graph |
| version | 0.2.0 |
| created_at | 2025-11-09 00:21:48.120338+00 |
| updated_at | 2025-11-11 00:42:22.256954+00 |
| description | React agent orchestrator for building AI agent workflows with LLM and tool execution |
| homepage | https://github.com/matheussilva/praxis |
| repository | https://github.com/matheussilva/praxis |
| max_upload_size | |
| id | 1923428 |
| size | 151,571 |
The core runtime for Praxis AI agents, implementing the Graph orchestrator with Node abstraction and React agent pattern.
Graph Orchestrator
↓
LLMNode → Router → ToolNode → Router → LLMNode → END
↓ ↓
Events Events
↓ ↓
Client Client
export OPENAI_API_KEY=your_openai_api_key_here
cargo run --example react_loop
This will start an interactive CLI where you can chat with the React agent.
Simple Question (no tools):
You: What is the capital of France?
Assistant: The capital of France is Paris.
Using Tools:
You: What's the weather like in San Francisco?
Assistant:
💭 Reasoning: I should use the get_weather tool...
🔧 Calling tool: get_weather ({"location": "San Francisco, CA"})
✓ Tool result (112ms): {"temperature": 22, "condition": "sunny", "location": "San Francisco"}
The weather in San Francisco is currently sunny with a temperature of 22°C.
Calculator Example:
You: What's 1234 multiplied by 5678?
Assistant:
💭 Reasoning: I need to use the calculator tool...
🔧 Calling tool: calculator ({"expression": "1234 * 5678"})
✓ Tool result (105ms): {"result": 42, "expression": "1234 * 5678"}
The result of 1234 multiplied by 5678 is 7,006,652.
cargo build --all
cargo test --all
cargo clippy --all
src/
├── node.rs # Node trait, NodeType enum
├── router.rs # Router trait, SimpleRouter
├── graph.rs # Graph orchestrator
├── tools.rs # ToolExecutor trait, MockToolExecutor
└── nodes/
├── llm_node.rs # LLM interaction node
└── tool_node.rs # Tool execution node