This project is in active development — check back for a demo and GitHub link soon.
Description
Architecture: A multi-agent pipeline where a router agent decides which specialist to dispatch — a retrieval agent for historical data lookups, a planning agent for workout suggestions, and a trend agent for progress analysis. Each agent runs against the same ChromaDB store.
How it was built: Python core. Strava API for activity ingestion. ChromaDB for vector storage and semantic retrieval. Ollama for local inference. Streamlit for the dashboard UI.
Architecture
Fitness AI Agents — Data Flow
══════════════════════════════
Strava API ──► Activity Ingester ──► ChromaDB (vector store)
(chunk + embed) runs / rides / sessions
│
semantic search
│
Your Question ──► Router Agent ──► Specialist Agent
"How fast am I ┌─ Retrieval Agent
getting?" ├─ Planning Agent
└─ Trend Agent
│
Ollama / Groq
│
┌──────────────────┐
│ Grounded Answer │
│ (your real data) │
└──────────────────┘
Dev Notes
Problem Solved
Strava shows your stats but doesn't reason about them. This system treats your training history as a knowledge base and lets you have a genuine conversation about your fitness — not just dashboards.
Technical Highlights
Multi-agent routing means each specialist stays focused and small. ChromaDB semantic search finds relevant past activities even when you phrase the question differently each time.
What's Next
Deployment on Streamlit Cloud with OAuth for Strava login, and a planning agent that factors in rest days, target races, and weekly mileage limits.
Back to top