Vapora/examples/README.md
Jesús Pérez 1b2a1e9c49
Some checks failed
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
chore: add examples coverage
2026-01-12 03:34:01 +00:00

184 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VAPORA Examples
Comprehensive examples demonstrating VAPORA's capabilities across all complexity levels.
## Quick Navigation
### Basic Examples (Hello World)
Start here to understand individual components.
- **[Agent Registry](crates/vapora-agents/examples/01-simple-agent.rs)** - Register and manage agents
- **[LLM Provider Selection](crates/vapora-llm-router/examples/01-provider-selection.rs)** - Route requests to optimal providers
- **[Swarm Registration](crates/vapora-swarm/examples/01-agent-registration.rs)** - Set up swarm coordination
- **[KG Execution Tracking](crates/vapora-knowledge-graph/examples/01-execution-tracking.rs)** - Record and query execution history
- **[Backend Health Check](crates/vapora-backend/examples/01-health-check.rs)** - Verify backend health
- **[Error Handling](crates/vapora-shared/examples/01-error-handling.rs)** - Proper error patterns
### Intermediate Examples (System Integration)
Combine multiple systems to solve realistic problems.
- **[Learning Profiles](crates/vapora-agents/examples/02-learning-profile.rs)** - Build agent expertise from history
- **[Agent Selection](crates/vapora-agents/examples/03-agent-selection.rs)** - Score and rank agents
- **[Budget Enforcement](crates/vapora-llm-router/examples/02-budget-enforcement.rs)** - Control LLM spending
- **[Cost Tracking](crates/vapora-llm-router/examples/03-cost-tracking.rs)** - Generate cost reports
- **[Task Assignment](crates/vapora-swarm/examples/02-task-assignment.rs)** - Assign tasks with load balancing
- **[Learning Curves](crates/vapora-knowledge-graph/examples/02-learning-curves.rs)** - Visualize agent improvement
- **[Similarity Search](crates/vapora-knowledge-graph/examples/03-similarity-search.rs)** - Find similar past tasks
### Full-Stack Examples
End-to-end workflows integrating all systems.
- **[Agent + Routing](examples/full-stack/01-agent-with-routing.rs)** - Execute with provider selection
- **[Swarm + Learning](examples/full-stack/02-swarm-with-learning.rs)** - Coordinate multi-agent learning
## How to Run Examples
### Basic Example
```bash
cargo run --example 01-simple-agent -p vapora-agents
```
### All Examples in a Crate
```bash
cargo build --examples -p vapora-agents
```
### All Examples (Workspace)
```bash
cargo build --examples --workspace
```
## Learning Path
**New to VAPORA?** Follow this order:
1. Run the 6 basic examples to understand components
2. Review tutorials in `docs/tutorials/` for step-by-step guidance
3. Run intermediate examples to see integration
4. Study full-stack examples for complex workflows
5. Explore codebase for production implementations
## Example Organization
```
examples/
├── full-stack/ # Cross-system examples (3 files)
├── real-world/ # Production scenarios (4 files) [WIP]
└── notebooks/ # Interactive Marimo notebooks [WIP]
crates/*/examples/ # Component-specific examples (6 crates × 2-3 examples)
├── vapora-agents/ # Agent orchestration examples
├── vapora-llm-router/ # LLM routing examples
├── vapora-swarm/ # Swarm coordination examples
├── vapora-knowledge-graph/ # Knowledge graph examples
├── vapora-backend/ # Backend integration examples
└── vapora-shared/ # Error handling & patterns
```
## Building Blocks
### Key Concepts Demonstrated
**Agent Orchestration**
- Registering agents with capabilities
- Building learning profiles from history
- Scoring agents for task assignment
- Handling multiple roles and specializations
**LLM Routing**
- Multi-provider selection (Claude, OpenAI, Gemini, Ollama)
- Budget enforcement per role
- Cost tracking and reporting
- Automatic fallback on budget limits
**Swarm Coordination**
- Distributed task assignment
- Load balancing algorithms
- Agent capability filtering
- Coalition formation
**Knowledge Graph**
- Temporal execution history
- Semantic similarity search
- Learning curve computation
- Recommendation generation
**Full-Stack Integration**
- REST API usage for project management
- WebSocket real-time updates
- Multi-system workflows
- Cost-aware agent orchestration
## Tutorial Documentation
See `docs/tutorials/` for step-by-step guides:
- `01-getting-started.md` - Build and run VAPORA
- `02-basic-agents.md` - Agent registration and execution
- `03-llm-routing.md` - Multi-provider LLM usage
- `04-learning-profiles.md` - Build agent expertise
- `05-budget-management.md` - Enforce cost limits
- `06-swarm-coordination.md` - Multi-agent workflows
- `07-knowledge-graph.md` - Track execution history
- `08-rest-api.md` - Backend API usage
- `09-frontend-integration.md` - Web UI integration
## Code Snippets
For quick reference snippets organized by topic, see `docs/examples/`:
- `agents.md` - Agent API patterns
- `routing.md` - LLM routing recipes
- `budgets.md` - Budget configuration
- `swarm.md` - Swarm coordination patterns
- `knowledge-graph.md` - KG queries
- `api.md` - REST API examples
## Running Tests
All examples compile and can be validated:
```bash
# Check all examples compile
cargo check --examples
# Build and run with output
cargo run --example 02-learning-profile -p vapora-agents -- --verbose
# Run CI tests
cargo test --examples --workspace
```
## Troubleshooting
**"example not found"**
```bash
# List available examples in a crate
cargo run --example help -p vapora-agents
```
**Compilation errors**
- Ensure you're running from the workspace root
- Check Rust version: `rustc --version` (1.75+)
- Run `cargo update` to sync dependencies
**Runtime errors**
- Backend requires SurrealDB: `docker run -d surrealdb/surrealdb:latest`
- Optional NATS for async: `docker run -d nats:latest`
## Contributing Examples
To add new examples:
1. Create `crates/*/examples/NN-name.rs` following existing patterns
2. Add documentation header explaining what's demonstrated
3. Ensure standalone (minimal external dependencies)
4. Run `cargo build --examples` to verify compilation
5. Update `README.md` with link to new example
---
**Total Examples**: 24+ across all complexity levels
Start with basic examples → follow tutorials → explore intermediate/full-stack → examine production code in crates/