首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >我如何使用 QClaw 私人教练 Agent敦促自己锻炼

我如何使用 QClaw 私人教练 Agent敦促自己锻炼

原创
作者头像
熊猫钓鱼
发布2026-06-18 11:30:34
发布2026-06-18 11:30:34
2140
举报

从一个"办了健身卡只去过五次"的办公室白领,到拥有一个 7×24 在线的专属 AI 教练——这篇文章记录了完整的构建过程。


一、起因:健身最大的敌人不是懒,是"没人管"

我是个典型的办公室白领:早上 9 点坐到工位,晚上 9 点才离开,中间除了吃饭几乎不起身。颈椎僵、腰酸、小腹赘肉——标准的"久坐综合征"。

我也尝试过改变:

  • 办了健身卡 → 去了五次,卡到期了
  • 跟着 Keep 练 → 第三天就忘了打开
  • 买私教课 → 教练离职了,课也没上完

复盘下来,核心问题不是"不知道怎么练",而是 缺乏持续的外部监督和个性化反馈。App 的推送通知我直接划掉,视频教程不会根据我的状态调整,私教虽然好但一周见一次管不住剩下的六天。

我需要的不是一个"健身百科",而是一个 主动盯着我练的教练

这就是 QClaw 吸引我的地方。


二、QClaw 是什么?为什么选它?

QClaw 是一个 Agent 运行框架,和 ChatGPT、Claude 这类对话式 AI 有本质区别:

能力

普通对话 AI

QClaw Agent

对话

你问它答

你问它答 ✅

定时主动提醒

✅ cron 系统支持任意周期任务

持久记忆

❌ 每次对话从零开始

✅ MEMORY.md + 每日笔记跨会话记忆

可扩展能力

❌ 固定能力

✅ Skills 技能插件机制

文件操作

✅ 独立 workspace,可读写文件

多渠道触达

❌ 只能在 App 里聊

✅ 微信/企微/飞书/Web 多端

人设定制

✅ SOUL.md + IDENTITY.md

最关键的三个差异化能力:

  1. Cron 定时任务:AI 从"被动等问"变成"主动出击"
  2. 持久记忆:今天告诉它我膝盖疼,下周它还记得
  3. Skills 扩展:健身动作库、营养查询、文档生成,能力随装随用

简单起见,我们可以直接在QClaw的专家广场找到默认的专家,使用教练的对话过程如下:

运行效果如下:


三、Step 1:定义教练人设——让 AI 有"教练味"

QClaw 通过三个核心文件定义 Agent 身份,它们放在 Agent 的 workspace 目录下。

3.1 IDENTITY.md — 它是谁

代码语言:markdown
复制
# IDENTITY.md
- Name: 私人健身教练
- Emoji: 🏋️
- Vibe: 不卖课不画饼,只给你一份练了就有效的计划

这决定了 Agent 在 QClaw 商城里展示的名字和头像,也让用户一眼识别它的角色定位。

3.2 SOUL.md — 它怎么说话

这是最关键的文件,决定了 Agent 的沟通风格和决策逻辑:

代码语言:markdown
复制
# SOUL.md

QClaw的智能Agent,说话简洁直接,先给结论再给论据,
不说正确的废话,不堆砌冗余修饰,
善用结构化的方式让信息一目了然。
语气像一个靠谱的朋友兼顾问——
有专业深度但不端架子,态度温和但不讨好,
该纠正就纠正,绝不编造事实。

为什么这段话很重要?因为健身领域充斥着两种极端:

  • 卖课型:"亲,你这个体态问题很严重哦,建议购买进阶课程~" → 讨好型,让人反感
  • 学术型:"根据 ACSM 指南第 7 版建议,抗阻训练频率应为每周 2-3 次……" → 信息密度低,小白看不懂

我要的教练风格是:先告诉你练什么,再解释为什么,不废话不兜圈子。这段 SOUL.md 就是在约束这种行为。

3.3 AGENTS.md — 它的行为边界

代码语言:markdown
复制
# AGENTS.md
## Red Lines
- Don't exfiltrate private data. Ever.
- Don't run destructive commands without asking.
- When in doubt, ask.

健身场景会涉及体重、体脂率、饮食记录等隐私数据,必须明确隐私红线。AGENTS.md 就是 Agent 的"法律"。

设计原则:人设文件不要写太多,够用就好。SOUL.md 控制说话风格,IDENTITY.md 控制展示信息,AGENTS.md 控制行为边界。各自职责清晰,不要互相覆盖。


四、Step 2:安装健身技能——让 AI 真正懂健身

光有人设还不够,一个只会说"加油"的教练不是好教练。它需要真正的知识库。

4.1 fitness-nutrition 技能

这是 QClaw 的内置技能,提供三大核心能力:

① 动作库(wger API,690+ 动作)

代码语言:bash
复制
# 搜索动作
curl "https://wger.de/api/v2/exercise/search/?term=dead%20bug&language=english&format=json"

# 返回结果包含:动作ID、名称、分类
# {
#   "suggestions": [
#     {"data": {"id": 123, "name": "Dead Bug", "category": "Core"}}
#   ]
# }
代码语言:bash
复制
# 获取动作详情
curl "https://wger.de/api/v2/exerciseinfo/123/?format=json"

# 返回:目标肌群、辅助肌群、器械需求、动作描述、动作图解

这意味着当用户问"死虫式怎么做"时,Agent 不会瞎编,而是从专业数据库拉取真实动作数据,翻译成中文后输出。

② 身体计算器(离线)

代码语言:bash
复制
python3 scripts/body_calc.py bmi 70 175
# → BMI: 22.9 (正常)

python3 scripts/body_calc.py tdee 70 175 30 M 2
# → BMR: 1680 kcal | TDEE: 2016 kcal (轻度活动)

python3 scripts/body_calc.py macros 2016 cut
# → 蛋白质: 151g | 碳水: 151g | 脂肪: 56g (减脂方案)

输入体重、身高、年龄、性别、活动量,就能算出 TDEE 和宏量营养素分配。用户说"我想减脂",Agent 可以直接给数字,不用含糊地说"少吃点"。

③ 营养数据(USDA FoodData Central,38万+ 食物)

代码语言:bash
复制
python3 scripts/nutrition_search.py "chicken breast" "brown rice" "broccoli"
# 每100g数据:
# 鸡胸肉: 165 kcal | 蛋白质31g | 碳水0g | 脂肪3.6g
# 糙米:   123 kcal | 蛋白质2.7g | 碳水26g | 脂肪1g
# 西兰花: 34 kcal  | 蛋白质2.8g | 碳水7g  | 脂肪0.4g

用户说"我午饭吃了鸡胸肉和糙米",Agent 可以精确计算热量和蛋白质摄入。

4.2 安装方式

在 QClaw 中安装技能只需要一步:

代码语言:txt
复制
用户:安装 fitness-nutrition 技能
Agent:自动调用 skillhub_install 工具,一键完成

技能安装后,SKILL.md 文件会被放到 ~/.qclaw/skills/ 目录下,Agent 在需要时自动读取并执行。


五、Step 3:构建训练计划——从模板到可执行方案

5.1 和 Agent 对话制定计划

我的输入很随意:

"我是一个没有锻炼基础的小白,办公室白领工作,长期伏案对着电脑,请给我一个入门的健身方案,并能监督我实施,最好以月为计划"

Agent 的输出很有条理——先给4周概览,再逐步细化。但这还不够,我说"太抽象了,难以执行",然后它就展开了每个动作的:

  • 具体步骤(1、2、3、4)
  • 关键要点(加粗标注,比如"腰死死贴住地面")
  • 退阶方案(做不了标准版怎么办)
  • 计时要求(2秒起+1秒停+2秒回落)
  • 组间休息时间(45秒)
  • 热身和拉伸的具体动作和时间

这才是"可执行"的计划。关键在于:不要只告诉用户"做什么",要告诉用户"怎么做"和"做不了怎么办"

5.2 计划的渐进逻辑

4周计划的底层逻辑:

代码语言:txt
复制
第1周:只做仰卧/俯卧/四点跪姿动作 → 重力辅助,最安全
第2周:引入站立动作(深蹲)+ 上肢推(俯卧撑)→ 增加挑战
第3周:加入单侧训练(后撤步)+ 侧向稳定(侧平板)→ 更高维度
第4周:循环训练(多个动作连续做)→ 提升心肺+肌耐力

这不是随便排的。从仰卧到站立,从双侧到单侧,从独立动作到循环组合——这是运动科学中"从稳定性到功能性"的经典进阶路径。

5.3 把计划存到 workspace

Agent 自动把计划写入 workspace 文件 fitness_plan_4week.md,这样:

  • 下次对话时 Agent 可以读取当前计划
  • cron 提醒任务可以根据计划内容推送当天训练
  • 4周后可以参考原计划评估进度

这里有一个技术细节:QClaw 的内置 write 工具硬编码 UTF-8 无 BOM,在 Windows 上用 Excel 打开 CSV 会乱码。所以写文本文件必须走 qclaw-text-file 技能的 write_file.py 脚本,它自动处理编码和换行符适配。


六、Step 4:定时监督——让 AI 从被动变主动

这是整个方案中最有价值的部分。

6.1 设计提醒体系

我设计了两层提醒:

第一层:每日训练提醒(8:00)

  • 目的:养成"起床→训练"的习惯
  • 频率:每天,不管是不是训练日
  • 内容:今天是训练日还是休息日,训练日则列出当日动作

第二层:办公室微运动提醒(15:00,仅工作日)

  • 目的:打断久坐,每坐1小时至少活动一次
  • 频率:周一到周五
  • 内容:站起来走动、靠墙静蹲、坐姿收腹

6.2 用 cron 工具创建任务

每天8:00训练提醒:

代码语言:json
复制
{
  "action": "add",
  "job": {
    "name": "每日训练提醒",
    "agentId": "w5w1naf9p940xgcz",
    "schedule": {
      "kind": "cron",
      "expr": "0 8 * * *",
      "tz": "Asia/Shanghai"
    },
    "sessionTarget": "isolated",
    "payload": {
      "kind": "agentTurn",
      "message": "你是私人健身教练的提醒助手。今天是健身计划执行日,请用简短有力的话提醒用户:该做今天的训练了!加上一句鼓励。要求:(1) 不要回复 HEARTBEAT_OK (2) 不要调用 message 工具 (3) 直接输出提醒文字 (4) 控制在 2-3 句话以内"
    },
    "delivery": {"mode": "none"}
  }
}

工作日15:00微运动提醒:

代码语言:json
复制
{
  "action": "add",
  "job": {
    "name": "办公室微运动提醒",
    "agentId": "w5w1naf9p940xgcz",
    "schedule": {
      "kind": "cron",
      "expr": "0 15 * * 1-5",
      "tz": "Asia/Shanghai"
    },
    "sessionTarget": "isolated",
    "payload": {
      "kind": "agentTurn",
      "message": "提醒用户做办公室微运动:站起来走动2分钟,做靠墙静蹲30秒×2组,坐姿收腹5秒×10次。简短俏皮。要求同上。"
    },
    "delivery": {"mode": "none"}
  }
}

6.3 cron 配置的关键参数解析

参数

含义

schedule.kind

"cron"

使用 cron 表达式定义周期

schedule.expr

"0 8 * * *"

分 时 日 月 星期 → 每天8:00

schedule.expr

"0 15 * * 1-5"

工作日15:00

sessionTarget

"isolated"

在独立会话中执行,不打扰当前对话

payload.kind

"agentTurn"

以 Agent 身份执行,可以用 Skills

delivery.mode

"none"

本地渠道(webchat),直接渲染

6.4 几个踩过的坑

坑1:delivery 的 mode 必须显式传

不要省略 delivery,也不要省略 mode。本地渠道必须传 "mode":"none",外部渠道必须传 "mode":"announce" + channel + to

坑2:payload.message 末尾必须加行为约束

代码语言:txt
复制
要求:(1) 不要回复 HEARTBEAT_OK (2) 不要调用 message 工具 (3) 直接输出提醒文字 (4) 控制在 2-3 句话以内

不加的话,Agent 可能会调 message 工具发消息,或者输出一大段废话。这四条约束确保提醒内容简短有效。

坑3:agentId 必须传当前的

从 sessionKey 或 workspace 路径中提取当前 agentId,不要硬编码 "main"

6.5 任务管理

代码语言:bash
复制
# 查看所有定时任务
openclaw cron list

# 临时暂停(出差/休假)
openclaw cron edit <jobId> --enabled false

# 恢复
openclaw cron edit <jobId> --enabled true

# 删除
openclaw cron remove <jobId>

# 手动触发一次(测试用)
openclaw cron run <jobId>

七、Step 5:记忆系统——让教练"记住"你的状态

7.1 为什么记忆很重要

普通 AI 每次对话从零开始,但健身是一个持续过程。如果我昨天告诉 Agent "深蹲时膝盖有点不舒服",下周它应该记住这件事,而不是让我重新描述一遍。

QClaw 的记忆系统分为两层:

① 每日笔记:memory/YYYY-MM-DD.md

  • 当天发生了什么的原始记录
  • Agent 在每天结束时自动更新(或用户要求时更新)

② 长期记忆:MEMORY.md

  • 从每日笔记中提炼的关键信息
  • 类似人类的长期记忆——不是所有细节,而是重要的事

7.2 记忆内容示例

代码语言:markdown
复制
# MEMORY.md

## 用户画像
- 办公室白领,长期伏案
- 零健身基础
- 颈椎和腰椎有轻微不适
- 每周能训练4天

## 训练进度
- 2026-06-18: 开始第1周训练,完成死虫式+臀桥+拉伸
- 深蹲时膝盖有轻微不适 → 调整为箱式蹲退阶版

## 饮食偏好
- 午饭经常外卖
- 不喜欢水煮鸡胸,偏好煎烤做法

有了这个文件,Agent 在任何新会话中都能快速"回忆"用户状态,不需要重复询问。

7.3 记忆维护

Agent 在 Heartbeat(心跳轮询)时自动维护记忆:

  1. 读取最近的 memory/YYYY-MM-DD.md 文件
  2. 提炼值得长期保留的信息
  3. 更新 MEMORY.md
  4. 清除过时信息

这就像人类定期复盘日记,把重要的经验沉淀下来。


八、Step 6:腾讯文档联动——训练报告自动生成

8.1 为什么用腾讯文档

  • 手机上随时可看,不需要电脑
  • 和微信生态打通,分享方便
  • 支持多人协作(教练和学员一起编辑)

8.2 写入方式

QClaw 提供了 qclaw_tdoc_mcp_call 工具直连腾讯文档 API,没有内容长度限制:

代码语言:json
复制
{
  "tool_name": "create_smartcanvas_by_mdx",
  "arguments": {
    "title": "第1周训练报告-私人教练龙虾",
    "mdx": "# 第1周训练报告\n\n## 本周完成情况\n| 指标 | 目标 | 实际 |\n|------|------|------|\n| 训练次数 | 4 | 4 |\n| 动作完成率 | 100% | 92% |\n\n## 身体数据变化\n- 体重:70.5kg → 69.8kg\n- 主观感受:颈椎僵硬感减轻,睡眠质量改善\n\n## 动作反馈\n- 死虫式:能标准完成3组×8次\n- 臀桥:第3组最后2次腰部轻微拱起,需注意\n- 深蹲:改为箱式蹲后膝盖不适消失\n\n## 下周调整\n- 臀桥降低1次(3组×9次),强调腰部贴地\n- 深蹲继续箱式蹲,椅面高度降低5cm\n- 新增跪姿俯卧撑3组×6次"
  }
}

8.3 ⚠️ 踩坑记录

不要通过 mcporter CLI 传递长内容,它有长度限制,会截断。必须用 qclaw_tdoc_mcp_call 直连 HTTP,这是 QClaw 的最佳实践。


九、完整架构图

代码语言:graph
复制
┌─────────────────────────────────────────────────┐
│                    用户                          │
│         (Web / 微信 / 企微 / 飞书)               │
└──────────────┬──────────────────────────────────┘
               │ 对话
               ▼
┌─────────────────────────────────────────────────┐
│              QClaw Agent Runtime                 │
│                                                  │
│  ┌──────────┐  ┌──────────┐  ┌───────────────┐ │
│  │ SOUL.md  │  │IDENTITY  │  │  AGENTS.md    │ │
│  │ 说话风格  │  │ 身份定义  │  │  行为边界      │ │
│  └──────────┘  └──────────┘  └───────────────┘ │
│                                                  │
│  ┌──────────────────────────────────────────┐   │
│  │            Skills 技能层                   │   │
│  │                                           │   │
│  │  fitness-nutrition    qclaw-cron-skill    │   │
│  │  ├─ wger 动作库       ├─ 定时任务管理      │   │
│  │  ├─ 身体计算器        └─ 提醒消息生成      │   │
│  │  └─ USDA 营养查询                         │   │
│  │                                           │   │
│  │  qclaw-text-file     腾讯文档 MCP          │   │
│  │  ├─ 编码自适应       ├─ 智能文档写入       │   │
│  │  └─ BOM/换行处理     └─ 训练报告生成       │   │
│  └──────────────────────────────────────────┘   │
│                                                  │
│  ┌──────────────────────────────────────────┐   │
│  │           Workspace 工作区                 │   │
│  │                                           │   │
│  │  MEMORY.md          memory/               │   │
│  │  ├─ 用户画像        ├─ 2026-06-18.md      │   │
│  │  ├─ 训练进度        └─ ...                │   │
│  │  └─ 饮食偏好                              │   │
│  │                                           │   │
│  │  fitness_plan_4week.md  训练计划文档       │   │
│  └──────────────────────────────────────────┘   │
│                                                  │
│  ┌──────────────────────────────────────────┐   │
│  │           Cron 定时任务系统                │   │
│  │                                           │   │
│  │  每天 8:00   → 训练提醒(isolated会话)   │   │
│  │  工作日 15:00 → 微运动提醒(isolated会话) │   │
│  └──────────────────────────────────────────┘   │
└─────────────────────────────────────────────────┘

十、实测效果与数据

10.1 Agent 对话实录

用户:我是一个没有锻炼基础的小白,办公室白领工作,长期伏案对着电脑,请给我一个入门的健身方案

Agent:先给4周概览表,按周列出每个动作名称、组数、次数。

用户:还是太抽象了,感觉难以执行,能否更加细化可行性高的方案

Agent:展开每个动作的具体步骤(1/2/3/4编号)、关键要点(加粗)、退阶方案、计时要求、热身拉伸具体动作和时间。

这两轮对话的关键洞察:第一版输出是"教练视角"(我给你排了计划),第二版才是"学员视角"(我拿到就能练)。Agent 的迭代能力比任何固定模板都强。

10.2 cron 提醒实测

任务

触发时间

实际表现

每日训练提醒

8:00

准时触发,输出2-3句鼓励+当日训练内容

微运动提醒

15:00(工作日)

准时触发,提醒站起来活动

注意:webchat 渠道的 cron 任务 delivery.mode 为 "none",意味着提醒内容直接在本地 UI 渲染,不会推送到手机。如果要推送到微信/企微,需要配置外部渠道并设置 delivery.mode = "announce"

10.3 知识库查询测试

查询

结果

BMI(70kg, 175cm)

22.9 正常

TDEE(70kg, 175cm, 30岁, 男, 轻度活动)

2016 kcal

减脂宏量(2016kcal)

蛋白质151g / 碳水151g / 脂肪56g

鸡胸肉营养(每100g)

165kcal / 蛋白质31g / 脂肪3.6g


十一、进阶玩法:让教练更智能

11.1 饮食拍照分析

用户拍照发来午餐,Agent 调用视觉能力识别食物 → USDA 查询营养数据 → 计算当日摄入 → 和 TDEE 目标对比 → 给出晚餐建议。

11.2 训练反馈闭环

代码语言:txt
复制
用户:"今天深蹲的时候膝盖有点不舒服"
Agent → 记录到 memory/2026-06-18.md
Agent → 下次提到深蹲时自动建议退阶版
Agent → 更新 MEMORY.md 中的健康注意事项

11.3 周报自动生成

创建一个每周一的 cron 任务,读取上周 memory/ 文件,自动生成训练报告写入腾讯文档:

代码语言:json
复制
{
  "schedule": {"kind":"cron","expr":"0 20 * * 0","tz":"Asia/Shanghai"},
  "payload": {
    "kind":"agentTurn",
    "message":"读取 workspace 中 memory/ 下上周的每日记录和训练计划,生成上周训练周报,写入腾讯文档。要求:统计训练次数、动作完成情况、身体变化、下周调整建议。"
  }
}

11.4 多 Agent 协作

QClaw 支持多 Agent,未来可以:

  • 训练Agent:负责制定和调整训练计划
  • 营养Agent:负责饮食分析和宏量计算
  • 监督Agent:负责提醒和打卡记录

三个 Agent 各司其职,通过 workspace 文件和 MEMORY.md 协同工作。


十二、总结

核心收获

  1. 人设先行:SOUL.md 决定了 Agent 的"灵魂",比任何功能都重要。一个说话像论文的健身教练没人想跟它练。
  2. 可执行 > 可参考:训练计划必须细化到"每一步怎么做"、"做不了怎么办"。用户说"太抽象"的时候,就是计划失败的信号。
  3. 主动 > 被动:cron 定时任务让 AI 从"你问它答"变成"它主动提醒你"。这是 QClaw 最大的差异化能力。
  4. 记忆 = 连续性:MEMORY.md 让 Agent 跨会话记住用户状态,这是"私人教练"和"百科全书"的区别。
  5. 技能 = 可扩展性:今天装 fitness-nutrition,明天装饮食分析,后天装睡眠追踪。Skills 机制让 Agent 能力持续进化。

局限与反思

  • 动作纠偏还需要视频/姿态检测,纯文字描述有上限
  • 营养查询依赖 USDA 英文数据库,中餐覆盖不足
  • cron 提醒在 webchat 渠道只能在本地渲染,需要配置外部渠道才能推送到手机
  • 记忆维护依赖 Heartbeat 机制,如果关闭心跳则记忆不会自动更新

一句话总结

QClaw 的价值不在于"AI 能回答健身问题",而在于"AI 能持续陪你练下去"。

从回答问题到监督执行,从单次对话到持续陪伴,从固定模板到动态调整——这才是私人教练 Agent 该有的样子。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、起因:健身最大的敌人不是懒,是"没人管"
  • 二、QClaw 是什么?为什么选它?
  • 三、Step 1:定义教练人设——让 AI 有"教练味"
    • 3.1 IDENTITY.md — 它是谁
    • 3.2 SOUL.md — 它怎么说话
    • 3.3 AGENTS.md — 它的行为边界
  • 四、Step 2:安装健身技能——让 AI 真正懂健身
    • 4.1 fitness-nutrition 技能
    • 4.2 安装方式
  • 五、Step 3:构建训练计划——从模板到可执行方案
    • 5.1 和 Agent 对话制定计划
    • 5.2 计划的渐进逻辑
    • 5.3 把计划存到 workspace
  • 六、Step 4:定时监督——让 AI 从被动变主动
    • 6.1 设计提醒体系
    • 6.2 用 cron 工具创建任务
    • 6.3 cron 配置的关键参数解析
    • 6.4 几个踩过的坑
    • 6.5 任务管理
  • 七、Step 5:记忆系统——让教练"记住"你的状态
    • 7.1 为什么记忆很重要
    • 7.2 记忆内容示例
    • 7.3 记忆维护
  • 八、Step 6:腾讯文档联动——训练报告自动生成
    • 8.1 为什么用腾讯文档
    • 8.2 写入方式
    • 8.3 ⚠️ 踩坑记录
  • 九、完整架构图
  • 十、实测效果与数据
    • 10.1 Agent 对话实录
    • 10.2 cron 提醒实测
    • 10.3 知识库查询测试
  • 十一、进阶玩法:让教练更智能
    • 11.1 饮食拍照分析
    • 11.2 训练反馈闭环
    • 11.3 周报自动生成
    • 11.4 多 Agent 协作
  • 十二、总结
    • 核心收获
    • 局限与反思
    • 一句话总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档