Building an Agentic Personal Trainer - Part 7: LLM Provider Abstraction
Running AI locally has no API costs—just electricity. Cloud providers charge per token. I wanted to switch between local and cloud models without rewriting my agent code.
Building an Agentic Personal Trainer - Part 6: Memory and LearningPart 6
"Didn't we talk about my knee yesterday?" If your AI coach can't remember last session, it's not coaching—it's starting over every time.
Building an Agentic Personal Trainer - Part 5: Smart Duplicate Detection
When I do an indoor bike workout, my bike computer records it. So does [Wahoo SYSTM](https://support.wahoofitness.com/hc/en-us/sections/5183647197586-SYSTM). Then both the bike computer and SYSTM sync to [Garmin Connect](https://connect.garmin.com/). Now I have two records of the same ride. My agent thinks I'm training twice as much as I am.
Building an Agentic Personal Trainer - Part 4: Garmin Integration
A personal trainer who doesn't know your recent workouts isn't very personal. The agent needed to connect to Garmin Connect—where my watch, bike computer, and other services like Wahoo SYSTM sync workout data automatically.
Building an Agentic Personal Trainer - Part 2: The Tool System
An LLM without tools is just a chatbot. To make a real coaching agent, I needed to give it hands—ways to check injuries, recall workouts, and manage schedules.
Building a Local Semantic Search Engine - Part 3: Indexing and Chunking
I pointed the search engine at itself—indexing the embeddinggemma project's own 3 files into 20 chunks. Why 20 chunks from 3 files? Because a 5,000-word README as a single embedding buries the relevant section. Chunking solves that.
Adding nano-banana 3 Support to My CLI Wrapper
Twenty-four hours after Google dropped nano-banana 3, I shipped support for it. New model, new resolutions (4K!), new features. This is what building with AI is like at this point in November 2025.
