资讯动态

开源健身教练Skill:让Agent当私教的完整搭建指南

发布时间:2026/10/13 23:17:09 来源:尧图企业网站定制
1. 从一句标题说起Agent当私教到底靠不靠谱第一次看到开源的健身教练Skill让Agent当上了私教这个标题我脑子里冒出来的第一个念头是又一个把大模型套个壳就敢叫私教的项目毕竟这两年各种AI行业的项目见得太多了十个里面有八个是把提示词包装一下真正能落地、能持续用下去的少之又少。但仔细琢磨了一下这个方向我发现它其实踩中了一个非常真实的需求缺口——健身这件事缺的从来不是知识而是持续、个性化、低成本的反馈。你去健身房请个私教一节课几百块一周三次一个月下来小几千就没了。而且私教的时间是固定的你晚上十点想加练一组人家早下班了。网上的健身教程倒是免费但那是一对多的广播式内容它不知道你的体重、你的伤病史、你今天状态好不好、你昨天是不是刚练完腿。而一个能接入你个人数据、能记住你训练历史、能根据你当天反馈动态调整计划的Agent理论上可以填补这个空白——这就是健身教练Skill这个项目真正想解决的问题。所谓Skill在这类Agent生态里通常指的是一组封装好的能力模块它可能包含一套结构化的提示词、若干工具调用比如计算热量、查询动作库、记录训练日志、以及一套决策逻辑。把它挂载到Agent上Agent就从一个什么都能聊两句的通用助手变成了一个专门盯着你训练的私教角色。这个转变的关键不在于模型多聪明而在于Skill把领域知识和交互流程固化下来了让Agent不用每次从零开始理解什么叫渐进超负荷组间休息该多久。这篇文章我打算把这个项目拆开揉碎讲清楚它背后的设计思路是什么、一个健身教练Skill到底该包含哪些核心模块、怎么从零把它搭起来、实操中会遇到哪些坑。适合两类人看——一类是想自己动手做一个垂直领域Agent Skill的开发者另一类是健身爱好者想搞明白这类工具到底能不能替代真人私教。我会尽量把技术细节和健身常识都讲透让两边的人都能看懂。2. 拆解健身教练Skill的核心设计思路2.1 为什么是Skill而不是一个提示词很多人做垂直Agent的第一反应是写一段超长的系统提示词把健身知识全塞进去。我早期也这么干过结果就是提示词越写越长模型开始顾此失彼——你让它算热量它忘了看训练历史你让它排计划它又忽略了用户的伤病。根本原因在于单一提示词无法承载多步骤、有状态的决策流程。Skill的思路不一样。它把当私教这件事拆成了几个可独立调用的能力单元每个单元职责单一Agent在对话过程中按需调用。这就好比真人私教的工作也不是一坨混沌的经验而是分成评估体态制定周期计划执行单次训练复盘调整几个明确阶段。Skill的价值就在于把这个阶段划分显式地编码进去让Agent的行为有章法而不是每次即兴发挥。从工程角度看Skill还带来一个隐性好处可测试、可迭代。你可以单独测试热量计算这个模块准不准单独优化动作推荐的逻辑而不用每次改动都担心把整个提示词搞崩。这一点在长期维护中太重要了我见过太多项目因为提示词是一整块改一处崩三处最后没人敢动。2.2 一个合格私教Skill该有的四大模块我把这类项目的核心能力归纳成四块缺一块都会让体验大打折扣。第一块是用户画像与目标管理。这是所有个性化推荐的地基。它要记录的不只是身高体重年龄这些静态数据还包括训练目标增肌/减脂/塑形/康复、可用器械、每周能练几次、每次多长时间、有无伤病。这些信息决定了后面所有计划的边界。我特别想强调伤病这一项——很多开源项目为了简化直接忽略了但这是最危险的省略一个膝盖有伤的人被推荐去做深蹲跳后果不是效果不好而是直接受伤。第二块是训练计划生成。这是最考验专业性的部分。一个好的计划要考虑周期化比如4周一个中周期逐步增加负荷、动作搭配推拉腿分化还是上下肢分化、容量控制每个肌群每周多少组。这里面的门道很深Skill需要把健身科学里那些成熟的原则渐进超负荷、专项性原则、恢复原则转化成可执行的规则。第三块是单次训练的执行与记录。用户今天练什么、每组做几次、休息多久、感觉如何这些都要实时记录。记录不只是为了存档更是下一次调整的依据。真人私教会根据你今天的表现决定要不要加重量Agent也得有同样的能力。第四块是反馈与动态调整。训练不是一成不变的用户可能这周状态差、可能某个动作一直找不到发力感、可能平台期卡住了。Skill需要能识别这些信号并做出响应而不是死板地执行原计划。2.3 技术选型为什么用工具调用而不是纯生成在实现上我强烈建议把能算的东西交给工具别让模型硬生成。举个例子计算每日蛋白质摄入量模型直接心算经常出错尤其是涉及体重、活动系数、目标系数的多步乘法。但如果封装一个计算工具输入体重和目标返回克数准确率就是100%。再比如动作库查询。健身动作有成百上千个每个动作涉及的肌群、器械、难度、替代动作都不一样。把这些做成结构化的数据表让Agent通过查询工具获取比让模型凭记忆编动作要可靠得多。模型编动作的典型翻车场景是推荐一个需要龙门架的动作但用户明确说了只有哑铃——这种错误在纯生成模式下几乎无法根除。提示工具调用的设计原则是凡是能确定性计算的绝不交给模型生成。模型擅长的是理解意图、组织语言、做模糊判断不擅长精确计算和事实检索。把这两类任务分开整个系统的稳定性会提升一个档次。3. 核心模块的细节实现与实操要点3.1 用户画像模块别一上来就问一堆问题新手做这类项目最容易犯的错是开场就甩一个十几项的表单让用户填。实测下来填完率极低大部分人填到第三项就跑了。更好的做法是渐进式采集第一轮只问最关键的三个——目标、每周能练几次、有无伤病。这三个决定了计划的基本框架缺了没法往下走。剩下的细节具体器械、偏好动作、饮食情况在后续对话中自然带出来。数据结构上我建议用一个JSON对象存画像字段设计要留扩展余地。下面是一个我实际用过的结构供参考{ user_id: u_001, goal: muscle_gain, frequency_per_week: 4, session_duration_min: 60, injuries: [left_knee], equipment: [dumbbell, barbell, bench], experience_level: intermediate, body_weight_kg: 72, training_history: [] }这里有个细节值得说injuries字段我用的是数组而不是布尔值因为一个人可能同时有多个部位的问题而且后续做动作过滤时需要精确匹配。training_history单独存不塞进画像里因为它会不断增长混在一起会让画像对象越来越臃肿。3.2 计划生成把健身科学翻译成规则计划生成是整个Skill里最重的部分。我的做法是把它拆成两层模板层和调整层。模板层负责根据目标和频率选一个成熟的分化方案比如一周四练就用上下肢分化上肢A、下肢A、上肢B、下肢B一周三练就用全身分化。这些模板是健身领域验证过无数次的直接拿来用比自己瞎编靠谱。调整层负责根据用户的具体情况微调。比如用户左膝有伤那所有涉及膝关节大幅屈伸的动作深蹲、箭步蹲、跳箱都要替换成对膝盖友好的变式腿举、臀桥、罗马尼亚硬拉。这个替换逻辑需要一张动作替代映射表把高风险动作映射到低风险替代动作。容量控制是另一个关键参数。健身科学里有个常用的起点是每个肌群每周10-20组新手取下限进阶者取上限。Skill需要根据用户的experience_level自动设定这个范围然后在生成计划时统计每个肌群的组数确保落在区间内。这个统计如果靠模型心算很容易出错我建议写成一个校验函数生成完计划后跑一遍超了就报警。注意计划生成后一定要做一次冲突检查。常见冲突包括连续两天练同一肌群恢复不足、单次训练容量过大超过用户时间预算、动作所需器械用户没有。这三个检查能拦掉大部分低级错误。3.3 训练执行记录比指导更重要很多人以为私教的核心价值在于教动作其实在Agent场景下记录和追踪才是真正的价值点。因为动作教学可以看视频但你上周卧推做了多少、这周该加多少这种连续性信息只有持续记录才能提供。单次训练的记录结构我建议设计成训练-动作-组三层{ session_id: s_20240115, date: 2024-01-15, exercises: [ { name: barbell_bench_press, sets: [ {weight_kg: 60, reps: 8, rpe: 7}, {weight_kg: 60, reps: 8, rpe: 8}, {weight_kg: 62.5, reps: 6, rpe: 9} ] } ] }这里我特意加了rpe自觉用力程度1-10分字段。这个字段是动态调整的金矿——如果用户某组RPE到了9-10说明接近力竭下次就不该加重量如果RPE只有6-7说明还有余力可以适当加重。真人私教就是靠观察你的表情和动作速度来判断RPE的Agent靠用户自报虽然精度差一点但比没有强太多。3.4 动态调整让计划活起来死计划不如没计划。一个不能根据反馈调整的计划用户练两周就会发现这玩意儿根本不管我。动态调整的逻辑我总结成三条规则进步规则如果某动作所有组都完成了目标次数且RPE≤8下次加2.5kg上肢或5kg下肢。维持规则如果完成了次数但RPE在9-10下次维持重量争取把RPE降下来。退阶规则如果连续两次没完成目标次数减重10%重新积累。这三条规则简单但覆盖了80%的调整场景。关键是它们可以被确定性地执行不需要模型判断。模型在这里的角色是把这个调整结果用自然语言解释给用户听比如你上周卧推60公斤做了3组8次感觉还行这周咱们试试62.5公斤而不是让模型自己决定加多少。4. 从零搭建完整实操流程与关键配置4.1 环境准备与依赖清单假设你用的是主流的Agent开发框架搭建这个Skill大致需要这么几样东西。首先是一个支持工具调用的模型接口这是基础。其次是一个持久化存储用来存用户画像和训练历史SQLite就够用别一上来就上重型数据库。第三是动作库数据这个可以自己整理也可以找公开的健身动作数据集但要注意数据质量很多公开数据集的动作描述不准确。我实际搭的时候用的是一个轻量的本地存储方案把用户数据存成JSON文件训练历史按日期分文件存。这样做的好处是调试方便直接打开文件就能看数据长什么样。等用户量上来了再迁移到数据库也不迟。过早优化存储是新手常见的浪费时间的做法。4.2 动作库的整理这是最耗时的活说实话搭这个Skill最花时间的不是写代码是整理动作库。一个可用的动作库每个动作至少要包含这些字段字段说明示例name动作英文名barbell_squatname_cn中文名杠铃深蹲primary_muscles主要肌群股四头肌、臀大肌secondary_muscles次要肌群腘绳肌、核心equipment所需器械杠铃、深蹲架difficulty难度等级中级joint_stress关节压力部位膝关节、腰椎alternatives替代动作腿举、高脚杯深蹲joint_stress这个字段是我强烈建议加的它就是用来做伤病过滤的。用户左膝有伤系统就自动排除所有joint_stress包含膝关节的动作或者把它们替换成alternatives里的低压力变式。这个设计让伤病处理从靠模型判断变成了查表过滤可靠性天差地别。整理动作库没有捷径我当时的做法是先覆盖最常用的50-80个复合动作和孤立动作这些能撑起90%的训练计划。剩下的长尾动作用到再加。别想着一次整理几百个那样你会在整理数据的过程中耗尽热情。4.3 对话流程的设计像真人私教一样分阶段Agent和用户的交互不能是你问我答的散乱模式得有阶段感。我把它设计成四个阶段每个阶段有明确的进入条件和退出条件阶段一初次评估。用户第一次来Agent采集核心画像确认目标和约束。退出条件是三个必填项目标、频率、伤病都拿到了。阶段二计划制定。基于画像生成首周计划展示给用户确认。用户可以要求调整比如我不想练硬拉Agent据此修改。退出条件是用户确认计划。阶段三训练执行。每次训练前Agent推送当天计划训练中用户报告完成情况Agent记录。退出条件是本次训练的所有动作都记录完毕。阶段四周期复盘。每4周做一次复盘看进步情况调整下个周期的计划。这个阶段划分的好处是Agent在任何时刻都知道自己该干什么不会出现用户问了个无关问题后Agent就迷失方向的情况。实现上可以用一个状态字段来标记当前阶段每次对话先读状态再决定行为。4.4 关键参数的计算过程前面提到热量和蛋白质计算要交给工具这里把计算逻辑展开说一下因为很多人不知道系数怎么取。以蛋白质摄入为例常用公式是每日蛋白质克数 体重(kg) × 系数。系数取值跟目标相关普通久坐人群0.8-1.0增肌训练者1.6-2.2减脂期保肌肉1.8-2.4耐力运动员1.2-1.6假设用户72kg目标是增肌取系数1.8那就是72 × 1.8 129.6克约130克。这个计算如果让模型做它可能给你算出个140或者120误差不小。封装成工具后输入体重和目标输出精确值稳定可靠。热量计算稍微复杂点要先算基础代谢率BMR再乘活动系数。BMR常用Mifflin-St Jeor公式男性BMR 10×体重 6.25×身高 - 5×年龄 5女性把最后的5换成-161。然后乘以活动系数久坐1.2、轻度活动1.375、中度1.55、高度1.725。增肌在TDEE基础上加300-500大卡减脂减300-500大卡。这一串计算必须用工具手算都容易错更别说模型了。5. 常见问题与排查技巧实录5.1 模型不按套路调用工具怎么办这是最常见的坑。你明明设计了工具模型却喜欢自己编答案。我踩过的坑是模型觉得算蛋白质太简单直接心算给了个数字根本没调工具。解决办法是在系统提示里明确写任何涉及数值计算的问题必须先调用对应工具禁止自行计算并且把这条规则放在提示的靠前位置。另外工具的描述要写得足够诱人让模型觉得调用它比不调用更省事。还有一个技巧是在工具返回结果里带上解释。比如计算工具不只返回130克还返回基于体重72kg和增肌目标系数1.8计算得出。这样模型拿到结果后能自然地转述给用户用户体验更好也更愿意继续用工具。5.2 计划生成出来不合理的排查思路如果生成的计划看起来怪怪的按这个顺序排查现象可能原因排查方法同一肌群连续两天练分化模板选错检查频率到模板的映射逻辑动作用户没器械做器械过滤没生效打印过滤前后的动作列表对比单次训练时间超预算容量没做时间估算给每个动作加预估耗时字段有伤部位仍被安排动作关节压力字段缺失检查动作库该动作的joint_stress我遇到最多的是器械过滤失效原因是动作库里的器械名称和用户画像里的名称不一致比如动作库写dumbbell用户写哑铃。解决方法是做一层名称标准化映射把所有器械名统一成一套标准词。5.3 用户中途放弃的预防这是产品层面的问题但技术也能帮上忙。数据显示健身类工具的用户流失高峰在第二周。原因通常是没看到效果或者太麻烦。技术上可以做两件事一是降低记录负担允许用户用一句话报告今天卧推60做了3组8次由Agent解析成结构化数据而不是让用户填表二是强化正反馈每次训练后Agent主动指出进步哪怕很小你这次比上次多做了2次进步了。提示别小看这种即时反馈。真人私教的一个重要价值就是陪着你、鼓励你Agent如果只会冷冰冰地报数据用户很快就会觉得没意思。把鼓励的话术设计进Skill里是提升留存的关键。5.4 数据准确性问题的兜底模型解析用户口语化输入时难免出错比如用户说卧推加了5公斤模型可能理解成总重量加了5公斤而不是每边加了5公斤。这种歧义在健身场景里很常见。我的做法是关键数据二次确认解析完后Agent复述一遍你是说总重量从60加到65对吗用户确认后才写入。虽然多一轮对话但避免了错误数据污染训练历史。6. 这套Skill到底能替代真人私教吗聊了这么多技术实现回到最开始那个问题Agent当私教到底行不行。我的判断是在计划制定和记录追踪这两个环节它能替代七八成在动作纠正和临场激励这两个环节它目前替代不了。计划制定和记录追踪本质上是信息处理任务Agent有天然优势——它不会累、不会忘、能同时记住你三个月的训练数据并找出规律。但动作纠正需要视觉反馈除非接入摄像头做姿态识别否则Agent只能靠你描述我膝盖内扣了来判断这显然不如真人一眼看出来。临场激励更是情感层面的东西Agent的鼓励话术再精心设计也比不上真人在你力竭时喊的那一嗓子。所以我的建议是把它定位成私教的补充而不是替代。你如果有真人私教可以用这个Skill来记录和追踪把私教课之间的自主训练也管起来你如果请不起私教它可以给你一个结构化的训练框架至少不会让你瞎练。这个定位比AI取代私教的噱头务实得多也更容易做出真正有用的产品。最后分享一个我在实际搭建中体会最深的小技巧别追求一次做完美。我第一版的动作库只有30个动作计划模板只有2个但已经能跑通完整流程了。后面根据实际使用中暴露的问题一点点加动作、加规则、加工具。如果一开始就想做一个什么都能干的完美私教大概率会在半路放弃。先让它能跑再让它跑得好这个顺序不能反。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑