Implement intelligent agent learning from Knowledge Graph execution history with per-task-type expertise tracking, recency bias, and learning curves. ## Phase 5.3 Implementation ### Learning Infrastructure (✅ Complete) - LearningProfileService with per-task-type expertise metrics - TaskTypeExpertise model tracking success_rate, confidence, learning curves - Recency bias weighting: recent 7 days weighted 3x higher (exponential decay) - Confidence scoring prevents overfitting: min(1.0, executions / 20) - Learning curves computed from daily execution windows ### Agent Scoring Service (✅ Complete) - Unified AgentScore combining SwarmCoordinator + learning profiles - Scoring formula: 0.3*base + 0.5*expertise + 0.2*confidence - Rank agents by combined score for intelligent assignment - Support for recency-biased scoring (recent_success_rate) - Methods: rank_agents, select_best, rank_agents_with_recency ### KG Integration (✅ Complete) - KGPersistence::get_executions_for_task_type() - query by agent + task type - KGPersistence::get_agent_executions() - all executions for agent - Coordinator::load_learning_profile_from_kg() - core KG→Learning integration - Coordinator::load_all_learning_profiles() - batch load for multiple agents - Convert PersistedExecution → ExecutionData for learning calculations ### Agent Assignment Integration (✅ Complete) - AgentCoordinator uses learning profiles for task assignment - extract_task_type() infers task type from title/description - assign_task() scores candidates using AgentScoringService - Fallback to load-based selection if no learning data available - Learning profiles stored in coordinator.learning_profiles RwLock ### Profile Adapter Enhancements (✅ Complete) - create_learning_profile() - initialize empty profiles - add_task_type_expertise() - set task-type expertise - update_profile_with_learning() - update swarm profiles from learning ## Files Modified ### vapora-knowledge-graph/src/persistence.rs (+30 lines) - get_executions_for_task_type(agent_id, task_type, limit) - get_agent_executions(agent_id, limit) ### vapora-agents/src/coordinator.rs (+100 lines) - load_learning_profile_from_kg() - core KG integration method - load_all_learning_profiles() - batch loading for agents - assign_task() already uses learning-based scoring via AgentScoringService ### Existing Complete Implementation - vapora-knowledge-graph/src/learning.rs - calculation functions - vapora-agents/src/learning_profile.rs - data structures and expertise - vapora-agents/src/scoring.rs - unified scoring service - vapora-agents/src/profile_adapter.rs - adapter methods ## Tests Passing - learning_profile: 7 tests ✅ - scoring: 5 tests ✅ - profile_adapter: 6 tests ✅ - coordinator: learning-specific tests ✅ ## Data Flow 1. Task arrives → AgentCoordinator::assign_task() 2. Extract task_type from description 3. Query KG for task-type executions (load_learning_profile_from_kg) 4. Calculate expertise with recency bias 5. Score candidates (SwarmCoordinator + learning) 6. Assign to top-scored agent 7. Execution result → KG → Update learning profiles ## Key Design Decisions ✅ Recency bias: 7-day half-life with 3x weight for recent performance ✅ Confidence scoring: min(1.0, total_executions / 20) prevents overfitting ✅ Hierarchical scoring: 30% base load, 50% expertise, 20% confidence ✅ KG query limit: 100 recent executions per task-type for performance ✅ Async loading: load_learning_profile_from_kg supports concurrent loads ## Next: Phase 5.4 - Cost Optimization Ready to implement budget enforcement and cost-aware provider selection.
5.9 KiB
title, date, status, type
| title | date | status | type |
|---|---|---|---|
| Vapora Tracking System - Quick Start Guide | 2025-11-10 | READY | tracking-quickstart |
🚀 Vapora Tracking System - Quick Start Guide
⏱️ Time to get running: 5-10 minutes
This guide walks you through installing and getting started with the Vapora tracking system component in the simplest way possible.
Note: This guide is for the tracking system only. For complete Vapora project setup, see QUICKSTART.md.
📋 Prerequisites
You need:
- ✅ Rust 1.70+ (install from https://rustup.rs)
- ✅ Cargo (comes with Rust)
- ✅ Git
- ✅ 500MB free disk space
- ✅ Bash or Zsh shell
Check if you have everything:
rustc --version # Should show Rust 1.70+
cargo --version # Should show Cargo 1.70+
which git # Should show /usr/bin/git or similar
🎯 5-Minute Quick Start
Step 1: Build the Tracking System
# Build the tracking crate
cargo build -p vapora-tracking
# Or with backend integration
cargo build -p vapora-backend
Expected output:
Finished `dev` profile [unoptimized + debuginfo] target(s) in X.XXs
Step 3: Run Tests
# Verify everything works
cargo test -p vapora-tracking --lib
# Should show: test result: ok. 20 passed
Step 4: Start Using It
Option A: Using Slash Commands (Easiest)
# In Claude Code, use the commands:
/log-change "Fixed bug in parser" --impact backend --files 3
/add-todo "Refactor database" --priority H --estimate M
/track-status --project vapora --limit 10
Option B: Using Scripts (Manual Sync)
# Start the tracking service
./scripts/start-tracking-service.nu --verbose
# In another terminal, sync projects (replace with your development directory)
./scripts/sync-tracking.nu --projects-dir ~ --verbose
# Check status
/track-status
Option C: Using API (Integration)
# Query the API
curl http://localhost:3000/api/v1/tracking/summary
curl http://localhost:3000/api/v1/tracking/entries?limit=10
✅ Verify Installation
After building, verify everything works:
Test 1: Build Success
cargo build -p vapora-tracking 2>&1 | tail -3
# Should show: Finished `dev` profile [unoptimized + debuginfo]
Test 2: Tests Pass
cargo test -p vapora-tracking --lib 2>&1 | grep "test result"
# Should show: test result: ok. 20 passed; 0 failed
Test 3: Clippy Clean
cargo clippy -p vapora-tracking --lib 2>&1 | grep "warning:" | wc -l
# Should show: 1 (profile warning only, which is expected)
Test 4: Commands Available
ls ~/.claude/commands/ | grep -E "log-change|add-todo|track-status"
# Should show all 3 commands
Test 5: Skill Available
ls ~/.claude/skills/tracking.md
# Should show the file exists
If all 5 tests pass: ✅ Installation Complete!
🎬 First Time Usage
Scenario 1: Log Your First Change
Using Slash Command (Easiest):
/log-change "Implemented user authentication" \
--impact backend \
--files 5
What happens:
- ✅ Change is logged to database
- ✅ Timestamp added automatically
- ✅ Can be queried with
/track-status
Scenario 2: Create Your First TODO
Using Slash Command:
/add-todo "Review code changes" \
--priority H \
--estimate M \
--due 2025-11-15
What happens:
- ✅ TODO created in database
- ✅ Can be tracked with
/track-status - ✅ Shows up in exports
Scenario 3: Check Your Status
Using Slash Command:
/track-status --limit 5
Output:
✅ Summary
Total entries: 3
Changes: 1
TODOs: 2
🔄 Changes
[2025-11-10T14:30:00Z] - Implemented user authentication
Impact: backend | Breaking: no | Files: 5
📋 TODOs
[HIGH] Review code changes (Medium) - Due: 2025-11-15
[HIGH] Write documentation (Small) - Due: 2025-11-12
📚 Next Steps After Installation
Short Term (Today)
- ✅ Log 2-3 changes you've made
- ✅ Create 2-3 TODOs for upcoming work
- ✅ Run
/track-statusto see results
Medium Term (This Week)
- 📝 Set up daily tracking in your workflow
- 🔄 Sync multiple projects with
sync-tracking.nu - 📊 Export your tracking data with
export-tracking.nu
Long Term (Ongoing)
- 📈 Monitor project progress via
/track-status - 🎯 Use for sprint planning and retrospectives
- 📉 Generate reports from exported data
- 🔗 Integrate with other Vapora services
🆘 Need More Help?
| Question | Answer Location |
|---|---|
| How do I use the tracking system? | TRACKING_SYSTEM_STATUS.md (How to use section) |
| What are all the features? | crates/vapora-tracking/README.md (Features section) |
| How do I deploy it? | crates/vapora-tracking/INTEGRATION.md (Deployment section) |
| How do I fix an issue? | SETUP_TRACKING.md (Troubleshooting section) |
| What's the architecture? | TRACKING_DOCUMENTATION_INDEX.md |
⚡ Super Quick Reference
# Build
cargo build -p vapora-tracking
# Test
cargo test -p vapora-tracking --lib
# Use commands
/log-change "Summary" --impact backend
/add-todo "Task" --priority H --estimate M
/track-status --limit 10
# Use scripts
./scripts/sync-tracking.nu --verbose
./scripts/export-tracking.nu json --output report
./scripts/start-tracking-service.nu
# Query API
curl http://localhost:3000/api/v1/tracking/summary
✅ Installation Checklist
- Rust 1.75+ installed
- Vapora repo available
cargo build -p vapora-trackingsucceedscargo test -p vapora-tracking --libshows 20 passed- Slash commands copied to
~/.claude/commands/ - Skill copied to
~/.claude/skills/ /log-changecommand works/track-statusshows results
All checked? ✅ You're ready to go!
For complete Vapora project setup: See QUICKSTART.md
For tracking system deep dive: See SETUP_TRACKING.md