Vapora/docs/examples-guide.md

849 lines
19 KiB
Markdown
Raw Normal View History

# VAPORA Examples Guide
Comprehensive guide to understanding and using VAPORA's example collection.
## Overview
VAPORA includes 26+ runnable examples demonstrating all major features:
- **6 Basic examples** - Hello world for each component
- **9 Intermediate examples** - Multi-system integration patterns
- **2 Advanced examples** - End-to-end full-stack workflows
- **3 Real-world examples** - Production scenarios with ROI analysis
- **4 Interactive notebooks** - Marimo-based exploration (requires Python)
Total time to explore all examples: **2-3 hours**
## Quick Start
### Run Your First Example
```bash
# Navigate to workspace root
cd /path/to/vapora
# Run basic agent example
cargo run --example 01-simple-agent -p vapora-agents
```
Expected output:
```
=== Simple Agent Registration Example ===
Created agent registry with capacity 10
Defined agent: "Developer A" (role: developer)
Capabilities: ["coding", "testing"]
Agent registered successfully
Agent ID: <uuid>
```
### List All Available Examples
```bash
# Per-crate examples
cargo build --examples -p vapora-agents
# All examples in workspace
cargo build --examples --workspace
```
## Examples by Category
### Phase 1: Basic Examples (Foundation)
Start here to understand individual components.
#### Agent Registry
**File**: `crates/vapora-agents/examples/01-simple-agent.rs`
**What it demonstrates**:
- Creating an agent registry
- Registering agents with metadata
- Querying registered agents
- Agent status management
**Run**:
```bash
cargo run --example 01-simple-agent -p vapora-agents
```
**Key concepts**:
- `AgentRegistry` - thread-safe registry with capacity limits
- `AgentMetadata` - agent name, role, capabilities, LLM provider
- `AgentStatus` - Active, Busy, Offline
**Time**: 5-10 minutes
---
#### LLM Provider Selection
**File**: `crates/vapora-llm-router/examples/01-provider-selection.rs`
**What it demonstrates**:
- Available LLM providers (Claude, GPT-4, Gemini, Ollama)
- Provider pricing and use cases
- Routing rules by task type
- Cost comparison
**Run**:
```bash
cargo run --example 01-provider-selection -p vapora-llm-router
```
**Key concepts**:
- Provider routing rules
- Cost per 1M tokens
- Fallback strategy
- Task type matching
**Time**: 5-10 minutes
---
#### Swarm Coordination
**File**: `crates/vapora-swarm/examples/01-agent-registration.rs`
**What it demonstrates**:
- Swarm coordinator creation
- Agent registration with capabilities
- Swarm statistics
- Load balancing basics
**Run**:
```bash
cargo run --example 01-agent-registration -p vapora-swarm
```
**Key concepts**:
- `SwarmCoordinator` - manages agent pool
- Agent capabilities filtering
- Load distribution calculation
- `success_rate / (1 + current_load)` scoring
**Time**: 5-10 minutes
---
#### Knowledge Graph
**File**: `crates/vapora-knowledge-graph/examples/01-execution-tracking.rs`
**What it demonstrates**:
- Recording execution history
- Querying executions by agent/task type
- Cost analysis per provider
- Success rate calculations
**Run**:
```bash
cargo run --example 01-execution-tracking -p vapora-knowledge-graph
```
**Key concepts**:
- `ExecutionRecord` - timestamp, duration, success, cost
- Temporal queries (last 7/14/30 days)
- Provider cost breakdown
- Success rate trends
**Time**: 5-10 minutes
---
#### Backend Health Check
**File**: `crates/vapora-backend/examples/01-health-check.rs`
**What it demonstrates**:
- Backend service health status
- Dependency verification
- Monitoring endpoints
- Troubleshooting guide
**Run**:
```bash
cargo run --example 01-health-check -p vapora-backend
```
**Prerequisites**:
- Backend running: `cd crates/vapora-backend && cargo run`
- SurrealDB running: `docker run -d surrealdb/surrealdb:latest`
**Key concepts**:
- Health endpoint status
- Dependency checklist
- Prometheus metrics endpoint
- Startup verification
**Time**: 5-10 minutes
---
#### Error Handling
**File**: `crates/vapora-shared/examples/01-error-handling.rs`
**What it demonstrates**:
- Custom error types
- Error propagation with `?`
- Error context
- Display and Debug implementations
**Run**:
```bash
cargo run --example 01-error-handling -p vapora-shared
```
**Key concepts**:
- `Result<T>` pattern
- Error types (InvalidInput, NotFound, Unauthorized)
- Error chaining
- User-friendly messages
**Time**: 5-10 minutes
---
### Phase 2: Intermediate Examples (Integration)
Combine 2-3 systems to solve realistic problems.
#### Learning Profiles
**File**: `crates/vapora-agents/examples/02-learning-profile.rs`
**What it demonstrates**:
- Building expertise profiles from execution history
- Recency bias weighting (recent 7 days weighted 3× higher)
- Confidence scaling based on sample size
- Task type specialization
**Run**:
```bash
cargo run --example 02-learning-profile -p vapora-agents
```
**Key metrics**:
- Success rate: percentage of successful executions
- Confidence: increases with sample size (0-1.0)
- Recent trend: last 7 days weighted heavily
- Task type expertise: separate profiles per task type
**Real scenario**:
Agent Alice has 93.3% success rate on coding (28/30 executions over 30 days), with confidence 1.0 from ample data.
**Time**: 10-15 minutes
---
#### Agent Selection Scoring
**File**: `crates/vapora-agents/examples/03-agent-selection.rs`
**What it demonstrates**:
- Ranking agents for task assignment
- Scoring formula: `(1 - 0.3*load) + 0.5*expertise + 0.2*confidence`
- Load balancing prevents over-allocation
- Why confidence matters
**Run**:
```bash
cargo run --example 03-agent-selection -p vapora-agents
```
**Scoring breakdown**:
- Availability: `1 - (0.3 * current_load)` - lower load = higher score
- Expertise: `0.5 * success_rate` - proven capability
- Confidence: `0.2 * confidence` - trust the data
**Real scenario**:
Three agents competing for coding task:
- Alice: 0.92 expertise, 30% load → score 0.71
- Bob: 0.78 expertise, 10% load → score 0.77 (selected despite lower expertise)
- Carol: 0.88 expertise, 50% load → score 0.59
**Time**: 10-15 minutes
---
#### Budget Enforcement
**File**: `crates/vapora-llm-router/examples/02-budget-enforcement.rs`
**What it demonstrates**:
- Per-role budget limits (monthly/weekly)
- Three-tier enforcement: Normal → Caution → Exceeded
- Automatic fallback to cheaper providers
- Alert thresholds
**Run**:
```bash
cargo run --example 02-budget-enforcement -p vapora-llm-router
```
**Budget tiers**:
- **0-50%**: Normal - use preferred provider (Claude)
- **50-80%**: Caution - monitor spending closely
- **80-100%**: Near threshold - use cheaper alternative (GPT-4)
- **100%+**: Exceeded - use fallback only (Ollama)
**Real scenario**:
Developer role with $300/month budget:
- Spend $145 (48% used) - in Normal tier
- All tasks use Claude (highest quality)
- If reaches $240+ (80%), automatically switch to cheaper providers
**Time**: 10-15 minutes
---
#### Cost Tracking
**File**: `crates/vapora-llm-router/examples/03-cost-tracking.rs`
**What it demonstrates**:
- Token usage recording per provider
- Cost calculation by provider and task type
- Report generation
- Cost per 1M tokens analysis
**Run**:
```bash
cargo run --example 03-cost-tracking -p vapora-llm-router
```
**Report includes**:
- Total cost (cents or dollars)
- Cost by provider (Claude, GPT-4, Gemini, Ollama)
- Cost by task type (coding, testing, documentation)
- Average cost per task
- Cost efficiency (tokens per dollar)
**Real scenario**:
4 tasks processed:
- Claude (2 tasks): 3,500 tokens → $0.067
- GPT-4 (1 task): 4,500 tokens → $0.130
- Gemini (1 task): 4,500 tokens → $0.053
- Total: $0.250
**Time**: 10-15 minutes
---
#### Task Assignment
**File**: `crates/vapora-swarm/examples/02-task-assignment.rs`
**What it demonstrates**:
- Submitting tasks to swarm
- Load-balanced agent selection
- Capability filtering
- Swarm statistics
**Run**:
```bash
cargo run --example 02-task-assignment -p vapora-swarm
```
**Assignment algorithm**:
1. Filter agents by required capabilities
2. Score each agent: `success_rate / (1 + current_load)`
3. Assign to highest-scoring agent
4. Update swarm statistics
**Real scenario**:
Coding task submitted to swarm with 3 agents:
- agent-1: coding ✓, load 20%, success 92% → score 0.77
- agent-2: coding ✓, load 10%, success 85% → score 0.77 (selected, lower load)
- agent-3: code_review only ✗ (filtered out)
**Time**: 10-15 minutes
---
#### Learning Curves
**File**: `crates/vapora-knowledge-graph/examples/02-learning-curves.rs`
**What it demonstrates**:
- Computing learning curves from daily data
- Success rate trends over 30 days
- Recency bias impact
- Performance trend analysis
**Run**:
```bash
cargo run --example 02-learning-curves -p vapora-knowledge-graph
```
**Metrics tracked**:
- Daily success rate (0-100%)
- Average execution time (milliseconds)
- Recent 7-day success rate
- Recent 14-day success rate
- Weighted score with recency bias
**Trend indicators**:
- ✓ IMPROVING: Agent learning over time
- → STABLE: Consistent performance
- ✗ DECLINING: Possible issues or degradation
**Real scenario**:
Agent bob over 30 days:
- Days 1-15: 70% success rate, 300ms/execution
- Days 16-30: 70% success rate, 300ms/execution
- Weighted score: 72% (no improvement detected)
- Trend: STABLE (consistent but not improving)
**Time**: 10-15 minutes
---
#### Similarity Search
**File**: `crates/vapora-knowledge-graph/examples/03-similarity-search.rs`
**What it demonstrates**:
- Semantic similarity matching
- Jaccard similarity scoring
- Recommendation generation
- Pattern recognition
**Run**:
```bash
cargo run --example 03-similarity-search -p vapora-knowledge-graph
```
**Similarity calculation**:
- Input: New task description ("Implement API key authentication")
- Compare: Against past execution descriptions
- Score: Jaccard similarity (intersection / union of keywords)
- Rank: Sort by similarity score
**Real scenario**:
New task: "Implement API key authentication for third-party services"
Keywords: ["authentication", "API", "third-party"]
Matches against past tasks:
1. "Implement user authentication with JWT" (87% similarity)
2. "Implement token refresh mechanism" (81% similarity)
3. "Add API rate limiting" (79% similarity)
→ Recommend: "Use OAuth2 + API keys with rotation strategy"
**Time**: 10-15 minutes
---
### Phase 3: Advanced Examples (Full-Stack)
End-to-end integration of all systems.
#### Agent with LLM Routing
**File**: `examples/full-stack/01-agent-with-routing.rs`
**What it demonstrates**:
- Agent executes task with intelligent provider selection
- Budget checking before execution
- Cost tracking during execution
- Provider fallback strategy
**Run**:
```bash
rustc examples/full-stack/01-agent-with-routing.rs -o /tmp/example && /tmp/example
```
**Workflow**:
1. Initialize agent (developer-001)
2. Set task (implement authentication, 1,500 input + 800 output tokens)
3. Check budget ($250 remaining)
4. Select provider (Claude for quality)
5. Execute task
6. Track costs ($0.069 total)
7. Update learning profile
**Time**: 15-20 minutes
---
#### Swarm with Learning Profiles
**File**: `examples/full-stack/02-swarm-with-learning.rs`
**What it demonstrates**:
- Swarm coordinates agents with learning profiles
- Task assignment based on expertise
- Load balancing with learned preferences
- Profile updates after execution
**Run**:
```bash
rustc examples/full-stack/02-swarm-with-learning.rs -o /tmp/example && /tmp/example
```
**Workflow**:
1. Register agents with learning profiles
- alice: 92% coding, 60% testing, 30% load
- bob: 78% coding, 85% testing, 10% load
- carol: 90% documentation, 75% testing, 20% load
2. Submit tasks (3 different types)
3. Swarm assigns based on expertise + load
4. Execute tasks
5. Update learning profiles with results
6. Verify assignments improved for next round
**Time**: 15-20 minutes
---
### Phase 5: Real-World Examples
Production scenarios with business value analysis.
#### Code Review Pipeline
**File**: `examples/real-world/01-code-review-workflow.rs`
**What it demonstrates**:
- Multi-agent code review workflow
- Cost optimization with tiered providers
- Quality vs cost trade-off
- Business metrics (ROI, time savings)
**Run**:
```bash
rustc examples/real-world/01-code-review-workflow.rs -o /tmp/example && /tmp/example
```
**Three-stage pipeline**:
**Stage 1** (Ollama - FREE):
- Static analysis, linting
- Dead code detection
- Security rule violations
- Cost: $0.00/PR, Time: 5s
**Stage 2** (GPT-4 - $10/1M):
- Logic verification
- Test coverage analysis
- Performance implications
- Cost: $0.08/PR, Time: 15s
**Stage 3** (Claude - $15/1M, 10% of PRs):
- Architecture validation
- Design pattern verification
- Triggered for risky changes
- Cost: $0.20/PR, Time: 30s
**Business impact**:
- Volume: 50 PRs/day
- Cost: $0.60/day ($12/month)
- vs Manual: 40+ hours/month ($500+)
- **Savings: $488/month**
- Quality: 99%+ accuracy
**Time**: 15-20 minutes
---
#### Documentation Generation
**File**: `examples/real-world/02-documentation-generation.rs`
**What it demonstrates**:
- Automated doc generation from code
- Multi-stage pipeline (analyze → write → check)
- Cost optimization
- Keeping docs in sync with code
**Run**:
```bash
rustc examples/real-world/02-documentation-generation.rs -o /tmp/example && /tmp/example
```
**Pipeline**:
**Phase 1** (Ollama - FREE):
- Parse source files
- Extract API endpoints, types
- Identify breaking changes
- Cost: $0.00, Time: 2min for 10k LOC
**Phase 2** (Claude - $15/1M):
- Generate descriptions
- Create examples
- Document parameters
- Cost: $0.40/endpoint, Time: 30s
**Phase 3** (GPT-4 - $10/1M):
- Verify accuracy vs code
- Check completeness
- Ensure clarity
- Cost: $0.15/doc, Time: 15s
**Business impact**:
- Docs in sync instantly (vs 2 week lag)
- Per-endpoint cost: $0.55
- Monthly cost: ~$11 (vs $1000+ manual)
- **Savings: $989/month**
- Quality: 99%+ accuracy
**Time**: 15-20 minutes
---
#### Issue Triage
**File**: `examples/real-world/03-issue-triage.rs`
**What it demonstrates**:
- Intelligent issue classification
- Two-stage escalation pipeline
- Cost optimization
- Consistent routing rules
**Run**:
```bash
rustc examples/real-world/03-issue-triage.rs -o /tmp/example && /tmp/example
```
**Two-stage pipeline**:
**Stage 1** (Ollama - FREE, 85% accuracy):
- Classify issue type (bug, feature, docs, support)
- Extract component, priority
- Route to team
- Cost: $0.00/issue, Time: 2s
**Stage 2** (Claude - $15/1M, 15% of issues):
- Detailed analysis for unclear issues
- Extract root cause
- Create investigation
- Cost: $0.05/issue, Time: 10s
**Business impact**:
- Volume: 200 issues/month
- Stage 1: 170 issues × $0.00 = $0.00
- Stage 2: 30 issues × $0.08 = $2.40
- Manual triage: 20 hours × $50 = $1,000
- **Savings: $997.60/month**
- Speed: Seconds vs hours
**Time**: 15-20 minutes
---
## Learning Paths
### Path 1: Quick Overview (30 minutes)
1. Run `01-simple-agent` (agent basics)
2. Run `01-provider-selection` (LLM routing)
3. Run `01-error-handling` (error patterns)
**Takeaway**: Understand basic components
---
### Path 2: System Integration (90 minutes)
1. Run all Phase 1 examples (30 min)
2. Run `02-learning-profile` + `03-agent-selection` (20 min)
3. Run `02-budget-enforcement` + `03-cost-tracking` (20 min)
4. Run `02-task-assignment` + `02-learning-curves` (20 min)
**Takeaway**: Understand component interactions
---
### Path 3: Production Ready (2-3 hours)
1. Complete Path 2 (90 min)
2. Run Phase 5 real-world examples (45 min)
3. Study `docs/tutorials/` (30-45 min)
**Takeaway**: Ready to implement VAPORA in production
---
## Common Tasks
### I want to understand agent learning
**Read**: `docs/tutorials/04-learning-profiles.md`
**Run examples** (in order):
1. `02-learning-profile` - See expertise calculation
2. `03-agent-selection` - See scoring in action
3. `02-learning-curves` - See trends over time
**Time**: 30-40 minutes
---
### I want to understand cost control
**Read**: `docs/tutorials/05-budget-management.md`
**Run examples** (in order):
1. `01-provider-selection` - See provider pricing
2. `02-budget-enforcement` - See budget tiers
3. `03-cost-tracking` - See detailed reports
**Time**: 25-35 minutes
---
### I want to understand multi-agent workflows
**Read**: `docs/tutorials/06-swarm-coordination.md`
**Run examples** (in order):
1. `01-agent-registration` - See swarm setup
2. `02-task-assignment` - See task routing
3. `02-swarm-with-learning` - See full workflow
**Time**: 30-40 minutes
---
### I want to see business value
**Run examples** (real-world):
1. `01-code-review-workflow` - $488/month savings
2. `02-documentation-generation` - $989/month savings
3. `03-issue-triage` - $997/month savings
**Takeaway**: VAPORA saves $2,474/month for typical usage
**Time**: 40-50 minutes
---
## Running Examples with Parameters
Some examples support command-line arguments:
```bash
# Budget enforcement with custom budget
cargo run --example 02-budget-enforcement -p vapora-llm-router -- \
--monthly-budget 50000 --verbose
# Learning profile with custom sample size
cargo run --example 02-learning-profile -p vapora-agents -- \
--sample-size 100
```
Check example documentation for available options:
```bash
# View example header
head -20 crates/vapora-agents/examples/02-learning-profile.rs
```
---
## Troubleshooting
### "example not found"
Ensure you're running from workspace root:
```bash
cd /path/to/vapora
cargo run --example 01-simple-agent -p vapora-agents
```
---
### "Cannot find module"
Ensure workspace is synced:
```bash
cargo update
cargo build --examples --workspace
```
---
### Example fails at runtime
Check prerequisites:
**Backend examples** require:
```bash
# Terminal 1: Start SurrealDB
docker run -d -p 8000:8000 surrealdb/surrealdb:latest
# Terminal 2: Start backend
cd crates/vapora-backend && cargo run
# Terminal 3: Run example
cargo run --example 01-health-check -p vapora-backend
```
---
### Want verbose output
Set logging:
```bash
RUST_LOG=debug cargo run --example 02-learning-profile -p vapora-agents
```
---
## Next Steps
After exploring examples:
1. **Read tutorials**: `docs/tutorials/README.md` - step-by-step guides
2. **Study code snippets**: `docs/examples/` - quick reference
3. **Explore source**: `crates/*/src/` - understand implementations
4. **Run tests**: `cargo test --workspace` - verify functionality
5. **Build projects**: Create your first VAPORA integration
---
## Quick Reference
### Build all examples
```bash
cargo build --examples --workspace
```
### Run specific example
```bash
cargo run --example <name> -p <crate>
```
### Clean build artifacts
```bash
cargo clean
cargo build --examples
```
### List examples in crate
```bash
ls -la crates/<crate>/examples/
```
### View example documentation
```bash
head -30 crates/<crate>/examples/<name>.rs
```
### Run with output
```bash
cargo run --example <name> -- 2>&1 | tee output.log
```
---
## Resources
- **Main docs**: See `docs/` directory
- **Tutorial path**: `docs/tutorials/README.md`
- **Code snippets**: `docs/examples/`
- **API documentation**: `cargo doc --open`
- **Project examples**: `examples/` directory
---
**Total examples**: 23 Rust + 4 Marimo notebooks
**Estimated learning time**: 2-3 hours for complete understanding
**Next**: Start with Path 1 (Quick Overview) →