AI coach
The coach is a conversation with something that has read your entire record. Not a summary of it — the record.
What happens when you ask something
Roughly, in order:
The input is screened. A prompt guard checks for injection attempts before anything reaches the model. This matters more than usual here, because the coach reads text you did not necessarily write — meal notes, imported data, extracted PDF content.
The question is classified. Complexity, time scope, and what kind of answer it wants. "What did I weigh Tuesday" and "why has my recovery been sliding since April" are different problems and should not be solved the same way.
Model and effort are selected. The classification picks the reasoning depth and how much of your history to load. This is the smart payload layer, and it is the reason a simple lookup returns in a couple of seconds while a genuine analysis takes longer and reads considerably more.
Context is assembled in parallel. Recent ledger data, relevant summaries, goal progress, semantically matched learnings, streaks, personal records, correlations, trigger insights.
The Context Engine enriches it. Temporal awareness — what day and time it actually is for you. Momentum — whether you are building or slipping. Lifecycle stage — whether you are new enough that "not enough data yet" is the honest answer. Profile gaps, so it can tell when it is reasoning without something it needs.
Retrieval runs, if the question is historical. Vector search and full-text search over your days and summaries, fused, then reranked. See concepts.
Tools are called, if precision is needed. Rather than recalling a number from context, the coach can call the same tools exposed over MCP to fetch it exactly. This is what makes streak counts and personal records reliable instead of approximately right.
The response streams back, and insights are extracted from the exchange asynchronously.
Grounding
Two mechanisms keep answers tethered.
Precomputed analytics. Streaks, personal records, correlations, anomalies and goal progress are computed by background workers, not derived mid-conversation. The coach reads a figure that was calculated properly against your full history, rather than eyeballing whatever slice happened to be in context. This was a real failure mode before it was fixed: reporting a best recovery of 95% when the true maximum was 98, because it was reading the maximum of a 30-day window.
Provenance. Quantitative results carry asOf, sample size, confidence and tier, so the model can weigh a number resting on 90 days differently from one resting on six — and tell you which it is working from.
Memory
The coach extracts durable facts from conversation and keeps them as learnings: behavioural patterns, preferences, life context, emotional responses, commitments, feedback about its own coaching.
Learnings are embedded for semantic retrieval, so the relevant ones surface for the current question rather than all of them arriving at once. They are reinforced when repeated, decay when they stop being mentioned, consolidate when near-duplicates accumulate, and are capped per user. Memory that only grows is memory that becomes noise.
The extraction is bidirectional: the coach learns what you tell it about yourself, and it also learns which of its own approaches actually worked on you.
Tools
The coach can call tools mid-answer for precise data: streaks, metric series with statistics, a specific day, the column catalog, WHOOP recovery context, strain balance, correlations, on-demand analysis of any two metrics, bloodwork, genetics.
These are the same handlers exposed over MCP, documented in the tool reference. There is one implementation, so an answer computed for the in-app coach and an answer computed for Claude Code come from the same code.
Threads
Conversations persist. You can list, reopen and delete threads, so a line of inquiry from three weeks ago is still there rather than lost to a cleared context.
Quick actions
Preset prompts for the questions people actually ask repeatedly — weekly focus, progress check, what is getting in the way. Faster than retyping, and they route through the same pipeline.
Limits worth knowing
- It cannot see what you did not log. A gap in the ledger is a gap in the analysis, and the coach will say so rather than interpolate.
- Early on it has little to work with. Correlations on a handful of days are noise; the engine declines to report them rather than dressing them up.
- It is not a clinician. Bloodwork and genetics are interpreted as patterns in your own data against reference ranges, not as diagnosis.
Related
- Voice agent — the same coach, spoken
- Analytics — what the background engines compute
- MCP tool reference — the tools the coach calls