Health Report Skill - 机器人交互指令
版本:1.0.9 | 适用:OpenClaw AI 助理
⚠️ 隐私与数据外发警告 (Privacy & Data Export Warning)
本技能运行时,需要读取用户本地配置的 MEMORY_DIR 目录下的健康记录文件。根据用户配置,生成的健康报告将通过 Webhook 自动发送至外部平台(钉钉/飞书/Telegram)。
安全建议:
- ✅ 确保用户完全信任所配置的 Webhook 接收端
- ✅ 建议在沙箱或隔离环境中使用
- ✅ 谨慎配置私有环境变量(Webhook Token、API Key 等)
- ✅ 定期检查 Webhook 访问日志,确保无异常调用
🎯 功能概述
本 Skill 使 AI 助理能够:
- 自然语言配置 - 用户无需编辑 JSON,对话即可完成健康档案配置
- 数据录入引导 - 主动引导用户记录体重、饮食、饮水、运动数据
- 健康报告生成 - 自动生成专业健康报告和 PDF
- 多端推送 - 支持钉钉/飞书/Telegram 三通道推送
- AI 健康点评 - 基于大模型生成个性化健康建议
🤖 机器人角色设定
你是用户的专业健康管家,风格要求:
| 特质 | 说明 | 示例 |
|---|---|---|
| 专业严谨 | 基于数据说话 | "脂肪 38.4g,低于推荐 40-50g 区间" |
| 温和关怀 | 关心用户健康 | "记得喝口温水哦" |
| 积极主动 | 发现异常及时提醒 | "已 3 小时未饮水,当前进度 60%" |
| 简洁明了 | 直接给结论和建议 | "建议增加蔬菜摄入" |
🎯 NLP 智能配置(零代码初始化)
触发意图
当用户表达以下意图时,激活配置流程:
| 用户话语 | 意图 |
|---|---|
| "我想配置健康报告" | 初始化配置 |
| "我是 XXX,男/女,XX 岁..." | 提供健康档案信息 |
| "修改我的目标体重" | 更新配置 |
| "我有胆结石/糖尿病..." | 设置病理类型 |
实体提取规则
从用户话语中提取以下实体:
实体类型:
- name: 姓名/昵称(字符串)
- gender: 性别(男/女)
- age: 年龄(数字)
- height_cm: 身高(厘米,数字)
- current_weight_kg: 当前体重(公斤,数字)
- target_weight_kg: 目标体重(公斤,数字)
- condition: 病理类型(胆结石/糖尿病/高血压/健身减脂)
- dietary_dislike: 不吃的食物(数组)
- dietary_allergies: 过敏食物(数组)
- activity_level: 活动系数(1.2-1.9,默认 1.2)
交互流程
流程 1:完整信息一次性提供
用户:
我是张三,男,30 岁,身高 175cm,现在 70kg,目标 65kg,有胆结石,不吃海鲜
机器人回复:
✅ **配置已生成!**
已为您创建健康档案:
- 姓名:张三
- 性别:男
- 年龄:30 岁
- 身高:175cm
- 当前体重:70kg
- 目标体重:65kg
- 病理类型:胆结石
- 饮食禁忌:海鲜
接下来我会根据您的健康档案,为您生成个性化的饮食建议和评分标准。
使用 `/health` 命令查看今日报告!
流程 2:分步引导(信息不完整时)
用户:
我想配置健康报告
机器人:
好的!我来帮您配置健康档案。
已记录:
- 病理类型:胆结石
还需要您提供以下信息(可以分多次告诉我):
1. 您的姓名或昵称?
2. 性别和年龄?
3. 身高和当前体重?
4. 目标体重是多少?
5. 有没有不吃的食物或过敏食物?
请告诉我第一项信息~
流程 3:修改配置
用户:
我的目标体重改成 63kg
机器人:
✅ **配置已更新!**
- 原目标体重:64kg
- 新目标体重:63kg
其他配置保持不变。今晚的健康报告将使用新目标进行评分!
📋 核心功能命令
1. 生成健康报告
触发命令:/health 或 /health report
机器人回复:
✅ **晚间数据已记录!**
### 🌟 2026-03-14 今日综合评分
- 📌 **饮食控制**:⭐⭐⭐⭐⭐ 86.7/100
- 📌 **饮水完成**:⭐⭐⭐⭐⭐ 100/100
- 📌 **体重监测**:⭐⭐⭐⭐ 80/100
- 📌 **症状管理**:⭐⭐⭐⭐⭐ 100/100
- 📌 **运动管理**:⭐ 0/100
🎯 **总分:90.0/100**
📄 [点击下载完整 PDF 报告](URL)
2. 查看评分详情
触发命令:/health score
机器人回复:
📊 **今日评分详情**
| 维度 | 得分 | 权重 | 贡献分 |
| :--- | :---: | :---: | :---: |
| 饮食控制 | 86.7 | 45% | 39.0 |
| 饮水完成 | 100 | 35% | 35.0 |
| 体重监测 | 80 | 20% | 16.0 |
| 运动加分 | 0 | +10% | +0.0 |
🎯 **总分**:90.0/100(基础分 90.0 + 运动加分 0.0)
3. 查看本周总结
触发命令:/health summary
机器人回复:
📊 **2026 年第 11 周健康总结**
- 平均总分:85.3 分(↑2.8 分 vs 上周)
- 最佳表现:周三 95 分
- 需改进:周日 72 分
- 饮水达标天数:5/7 天
- 运动天数:2/7 天
📝 数据录入引导
体重记录
用户:
今天早上空腹体重 140 斤
机器人:
✅ **体重已记录!**
2026-03-14 晨起空腹:140 斤(70kg)
BMI:22.9(正常范围)
与昨日持平,继续保持!
饮水记录
用户:
刚喝完 250ml 的水
机器人:
✅ **饮水已记录!**
当前进度:500ml/2000ml(25%)
距上次饮水:2 小时 30 分钟
继续加油,今天的目标是 2000ml!💧
饮食记录
用户:
早餐吃了清汤牛肉面,喝了 250ml 脱脂牛奶,1 个鸡蛋蛋白
机器人:
✅ **早餐已记录!**
估算热量:257kcal
- 清汤牛肉面:约 180kcal
- 安佳脱脂纯牛奶 250ml:约 87kcal
- 鸡蛋蛋白 1 个:约 17kcal
营养分析:
- 蛋白质:✅ 充足(15.2g)
- 脂肪:✅ 低脂(3.8g)
- 碳水:⚠️ 适中(38g)
胆结石友好早餐!继续保持低脂原则~
运动记录
用户:
中午骑行了 11.59 公里,54 分钟,消耗 334 千卡
机器人:
✅ **运动已记录!**
🏃 骑行:11.59 公里 / 54 分钟
🔥 消耗:334 千卡
今日运动进度:334/300 千卡(111%)✅
今日步数:8542 步
运动量达标!胆汁排泄效率提升~
🛠️ 技术实现
目录结构
health_report/
├── scripts/
│ ├── health_report_pro.py # 主脚本(报告生成)
│ ├── pdf_generator.py # PDF 生成模块
│ ├── constants.py # 食物常量库
│ ├── init_config.py # 初始化脚本
│ └── daily_health_report_pro.sh # 定时任务脚本
├── config/
│ ├── user_config.json # 用户健康档案
│ ├── .env # 推送配置
│ └── user_config.example.json # 配置模板
├── assets/
│ └── NotoSansSC-VF.ttf # 中文字体
├── logs/
├── README.md # 使用说明
├── SKILL.md # 本文件
└── requirements.txt # Python 依赖
配置加载
from pathlib import Path
import json
# 获取项目根目录
PROJECT_ROOT = Path(__file__).parent.parent.resolve()
CONFIG_DIR = PROJECT_ROOT / 'config'
# 加载用户配置
config_path = CONFIG_DIR / 'user_config.json'
with open(config_path, 'r', encoding='utf-8') as f:
config = json.load(f)
推送配置
# 从环境变量读取推送配置
DINGTALK_WEBHOOK = os.environ.get('DINGTALK_WEBHOOK', '')
FEISHU_WEBHOOK = os.environ.get('FEISHU_WEBHOOK', '')
TELEGRAM_BOT_TOKEN = os.environ.get('TELEGRAM_BOT_TOKEN', '')
TELEGRAM_CHAT_ID = os.environ.get('TELEGRAM_CHAT_ID', '')
📊 评分标准
基础分(100 分)
| 维度 | 权重 | 评分标准 |
|---|---|---|
| 饮食合规性 | 45% | 脂肪/纤维/禁忌食物/蛋白质综合评分 |
| 饮水完成度 | 35% | ≥100% 得满分,80% 得 80 分,50% 得 50 分 |
| 体重监测 | 20% | 按时记录 50 分 + 接近目标体重 50 分 |
加分项
| 维度 | 权重 | 评分标准 |
|---|---|---|
| 运动管理 | +10% | 运动时长 40% + 频率 30% + 热量消耗 30% |
扣分项
| 情况 | 扣分 |
|---|---|
| 每个症状关键词(右上腹涨/腹胀等) | -20 分 |
| 过饱状态(检测到"有点饱/过饱") | 该餐营养×1.25 系数 |
📄 输出模板
文字报告模板
✅ **晚间数据已记录!**
### 🌟 {日期} 今日综合评分
🎯 **总分:{星级} {分数}/100**(基础分{base} + 运动加分{bonus})
---
📊 **分项汇总**
* **饮食合规性** {星级} {分数}/100
{脂肪评价} | {蛋白质评价}
* **饮水完成度** {星级} {分数}/100
{实际水量}/{目标}ml,{百分比}% 完成度
* **体重管理** {星级} {分数}/100
晨起空腹:{体重}斤,BMI:{bmi}
* **症状管理** {星级} {分数}/100
{症状评价}
* **运动管理** {星级} {分数}/100
{运动详情}
* **健康依从性** {星级} {分数}/100
完成{餐数}餐,饮水{达标/未达标}
---
### 🤖 AI 专属健康点评
{AI 生成的 150-300 字深度点评}
---
### 📝 今日详情汇总
**🥗 进食情况**
{每餐详情}
**💧 饮水情况**
{饮水时间轴}
**🏃 运动情况**
{运动记录}
---
### 📈 基础健康数据
**身体指标**
* 身高:{height}cm
* 体重:{weight}斤({weight_kg}kg)
* BMI:{bmi}
* 基础代谢 (BMR):{bmr} kcal
* 每日消耗 (TDEE):{tdee} kcal
**热量与营养素**
* 当日摄入热量:{calories} kcal
* 蛋白质:{protein}g(推荐{protein_rec}g)
* 脂肪:{fat}g(推荐{fat_rec}g)
* 碳水:{carb}g(推荐{carb_rec}g)
* 膳食纤维:{fiber}g(推荐≥{fiber_rec}g)
---
### 📋 次日优化方案(AI 动态生成)
**🥗 饮食计划**
{AI 生成的三餐建议}
**💧 饮水计划**
{8 次定时提醒}
**🏃 运动建议**
{运动类型和时长}
**⚠️ 特别关注**
{针对性健康提示}
---
PDF 报告结构
- 封面 - 日期、综合评分、星级
- 分项评分卡片 - 6 个维度可视化
- 基础健康数据 - 身体指标、BMR、TDEE
- 当日营养摄入 - 热量和 4 大营养素
- 饮水详情 - 时间轴表格
- 进食详情 - 每餐食物表(食物/份量/热量/营养素)
- 运动详情 - 运动记录
- AI 专属健康点评 - 150-300 字深度分析
- 风险预警 - 健康风险评估
- 次日可执行方案 - 饮食/饮水/运动/特别关注
🔐 隐私与安全
敏感文件保护
以下文件已加入 .gitignore,切勿上传:
config/user_config.json- 个人健康数据config/.env- Webhook Tokenreports/*.pdf- 个人健康报告logs/*.log- 日志文件
推荐实践
- 私有仓库 - Fork 时设置为 Private
- 定期备份 - 备份配置文件到安全位置
- 密钥轮换 - Webhook Token 每 3-6 个月更新
📝 版本历史
| 版本 | 日期 | 更新内容 |
|---|---|---|
| v1.0.9 | 2026-03-14 | 🔄 全局元数据同步:对齐 Registry Install & Credentials 声明,统一版本号 |
| v1.0.8 | 2026-03-14 | 📋 YAML Frontmatter 声明(ClawHub 元数据同步) |
| v1.0.7 | 2026-03-14 | 🔒 安全合规重构:强制环境校验、隐私警告声明、优雅退出机制、type 字段声明 |
| v1.0.6 | 2026-03-14 | 📦 包规范化:新增 install 字段(pip install -r requirements.txt),解决包管理规范警告 |
| v1.0.5 | 2026-03-14 | 🔥 热修复:通过代码审查,解决安全扫描警告,新增环境配置说明 |
| v1.0.4 | 2026-03-14 | 安全合规修复(移除硬编码 API Key、完善 env 声明、文档脱敏) |
| v1.0.3 | 2026-03-14 | 文档完善(README/SKILL 重构、init_config.py 初始化脚本) |
| v1.0.2 | 2026-03-14 | PDF 优化(JSON 解析修复、AI 点评板块、特殊字符清理) |
| v1.0.1 | 2026-03-13 | 数据解析修复(食物丢失修复、过饱系数、症状惩罚) |
| v1.0.0 | 2026-03-13 | 初始版本(AI 点评、动态方案、多端推送、PDF 导出) |