Letting an Agent Understand Your Body: How to Use Custom Skills to Process Fitness and Health Data
English text is being prepared.
Body · AI translation
In the previous article, "Letting Agents Understand Your Body: Data Acquisition," I spent a great deal of space explaining the first question clearly: how an Agent gets data. If you've followed along and put it into practice, you've most likely already ended up with a SQLite, Markdown, or JSON file storing your exercise and health data.
At this point, most people probably can't resist having an AI Agent help analyze the file—
"Claude, this is my health and exercise data, help me do a detailed analysis."
I did the same thing myself at first. After a brief prompt, Claude could generate a polished HTML page. It had training trends for each movement, icons for recovery status, and a training calendar chart arranged by date, among other things. The information was packed in densely, but if you looked into it, you'd find that aside from looking nice, it wasn't very useful.
That's where the problem lies—AI Agents are good at describing, but if you want them to analyze real problems and give recommendations, such as how much weight to add for the next training session, the user needs their own judgment of the requirements and appropriate guidance.
So in this article, based on my actual experience, I'll answer the remaining two questions in detail: once you have the data, how do you get it processed correctly? And how much can you trust the conclusions it gives?
Note: Currently, this method of mine is only suitable for assisting everyday exercise training. It is not recommended for investigating actual physical symptoms, nor should it be used to handle medical situations.
Apple Watch records exercise and training data, including aerobic and resistance training;
Oura Ring records sleep, nighttime recovery, and daily activity data;
The Xunji app specifically records the volume and number of sets for resistance training (using both Xunji and Apple Watch will not double-count exercise data)
Among these, data from Apple Health and Oura are both connected to the third-party service Freddy. It reads via Oura's official API authorization, so algorithmic data calculated by Oura itself, such as the Readiness score, can also be obtained.
Next, through Python scripts pre-written by the Agent, data is pulled locally via the Freddy and Xunji APIs and stored in a SQLite database. As for low-frequency metrics like body fat and weight, as well as training feelings, I send them directly to the Agent in the form of text or images, and it organizes and enters them into the database.
The above setup is built on the NAS at home. Python scripts pull the latest physiological and training data on a schedule; the web dashboard has its ports configured and can be accessed directly via the LAN address.
Before going to the gym, I connect to the NAS via the LAN using my phone or computer to trigger the task. Routine tasks have buttons on the web dashboard that can be started with one click; complex tasks are carried out through conversational dialogue with the CLI tool in the terminal. After triggering, the AI Agent reads the latest body data and training records. First, two "coaches" give recommendations on movements, sets, and weights, and then an "evidence-based coach" checks the training volume and intensity. Finally, after I confirm it myself, the plan is written into Xunji via the API as a training record.
Once at the gym, I just open Xunji and train according to the plan, and note the reps in reserve and training feelings for each set of movements. This content will eventually be sent back to the AI via the API, completing a cycle.
Stringing these steps together isn't complicated. What really takes thought is establishing a set of "behavioral norms" for the Agent so that it stably analyzes existing data and outputs recommendations. The method is simple: just make a Skill.
Why not use an existing Skill
"Don't reinvent the wheel" is a famous saying in software development. Generally, we should first look at existing Skills in the community, and if they can cover the requirements, just apply them directly.
Among them, Coach Paddy is relatively closest to my personal needs. It has built-in data interfaces and can read data from Garmin, COROS, WHOOP, and Apple Watch; for strength training data, the Xunji API can be optionally configured; memory is stored in the user's Obsidian, including athlete profiles, training plans, and daily physiological data, among other things. It gives a readiness score to decide whether to go all out, scale back, or rest that day, and it can also provide training plans and conduct weekly reviews—it's a relatively complete solution.
Coach Paddy also has a mechanism worth borrowing: when data is missing, the readiness score is downgraded and replaced with a subjective energy score from 1 to 5.
In the end, I didn't choose Coach Paddy. First, I don't need its data interface module. Moreover, although it claims to support multiple sports, the focus of its analysis is on endurance training and race preparation, with features like race confidence scores and race countdowns, which don't match my use case. In addition, the project doesn't have many Stars and Forks, suggesting that its actual effectiveness may not be sufficiently validated.
In fact, existing Skills all more or less have similar problems. Because training is a very personal matter: training goals, the metrics you care about, available equipment, daily routines, training systems, and so on differ from person to person, so off-the-shelf Skills are hard to fit perfectly. At the same time, health and training Skills generally receive little attention—the most popular one I've found so far has only just over 200 Stars—and most of them lack usage feedback.
Skill Stars Type Specific features What can be borrowed
Coach Paddy 21 Comprehensive Readiness score, daily plan, post-training review, weekly review of training volume trends Notes in the report when data is missing; substitutes with a 1–5 self-rated energy and soreness score; HRV compared against the person's own 28-day mean and standard deviation
health-skill 13 Comprehensive (leans toward health management) Consolidates lab tests, medications, and wearable data into a local profile; includes running summaries and training plans Records the source of every piece of data, lists sources when they conflict, and explains what is missing when uncertain
Claude Coach 204 Comprehensive (leans toward endurance) Generates training plans for triathlons, marathons, and ultramarathons When data can't be connected, you can directly describe your training history; set training zones before scheduling sessions, and err on the conservative side when uncertain; endurance training can borrow its plan-making method
health-self-investigation-skill 86 Method-type (leans toward health) Designs low-risk self-controlled experiments for unexplained, non-urgent health concerns Asks only 2 to 4 specific questions per batch; gives a complete plan only when the baseline is sufficient and the "experiment-ready" threshold is met; provides safety guidance first in case of emergencies
Health OS 0 Method-type Schedules sessions by weekly split, selects movements only from a movement library, and filters by the equipment at the gym you're at No improvising movements on the spot; every model must state its applicable boundaries; set goals first when scheduling, then adjust by readiness and personal constraints
training-log-analyzer - Method-type Analyzes training logs to identify progress trends, plateaus, rest and recovery needs, and injury risk indicators None
google-health-sleep-skill 0 Method-type (only looks at Google sleep data) Analyzes sleep and recovery data Requires at least 10 nights of data to count a correlation; establish a baseline before comparing
apple-health-analysis 10 Method-type Uses 21 statistical methods to generate health assessment reports, including "screening for 30 disease risks" Marks main conclusions with evidence levels from A to D, evaluates only dimensions with data, and leaves statistics to scripts
gym-training-expert - Knowledge-type Explains training volume tiers, progressive overload, and three types of periodization Can serve as a knowledge base attached to other analysis workflows; gives training volume ranges per muscle group per week; does not increase training volume and intensity at the same time
workout-program-designer - Knowledge-type Generates training plans by goal; the body is just a one-sentence list of elements None
Notes:
Statistics are as of 2026.10.16;
"-" in the Stars column means the Skill is a sub-document of a project and has no separate Star count;
The Type column is my subjective classification, for reference only.
So, if you have access to top-tier models (such as Claude Fable or ChatGPT Astra, etc.), you might as well have the Agent absorb what's worthwhile from existing Skills and, on top of that, customize a Skill that fits your personal habits.
The hardest and most critical step in customizing a Skill is clarifying the requirements, then formulating a detailed implementation plan. I'll first use the grill-me skill to get the requirements clear. It comes from Matt Pocock's open-source Skill repository, and its function is to have the Agent ask you questions in turn: starting from a rough idea, it keeps probing until a definite and detailed conclusion is formed. The downside is that sometimes you'll feel, why does it still have so many questions.
Leave the statistics to code