Fitness AI Agents

A multi-agent coaching system trained on your own Strava data

This project is in active development — check back for a demo and GitHub link soon.


Description


What it does: Connects to your Strava account and pulls your full activity history — runs, rides, strength sessions. That data is chunked and stored in ChromaDB so you can query it conversationally. Ask "how has my average pace improved over the last 3 months?" or "suggest a workout for tomorrow based on my recent training load" and get answers grounded in your real data.

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