health_report

# Health Report Skill - 机器人交互指令

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "health_report" with this command: npx skills add tankeito/openclaw-skill-health-report

Health Report Skill - 机器人交互指令

版本:1.0.9 | 适用:OpenClaw AI 助理


⚠️ 隐私与数据外发警告 (Privacy & Data Export Warning)

本技能运行时,需要读取用户本地配置的 MEMORY_DIR 目录下的健康记录文件。根据用户配置,生成的健康报告将通过 Webhook 自动发送至外部平台(钉钉/飞书/Telegram)。

安全建议

  • ✅ 确保用户完全信任所配置的 Webhook 接收端
  • ✅ 建议在沙箱或隔离环境中使用
  • ✅ 谨慎配置私有环境变量(Webhook Token、API Key 等)
  • ✅ 定期检查 Webhook 访问日志,确保无异常调用

🎯 功能概述

本 Skill 使 AI 助理能够:

  1. 自然语言配置 - 用户无需编辑 JSON,对话即可完成健康档案配置
  2. 数据录入引导 - 主动引导用户记录体重、饮食、饮水、运动数据
  3. 健康报告生成 - 自动生成专业健康报告和 PDF
  4. 多端推送 - 支持钉钉/飞书/Telegram 三通道推送
  5. 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 报告结构

  1. 封面 - 日期、综合评分、星级
  2. 分项评分卡片 - 6 个维度可视化
  3. 基础健康数据 - 身体指标、BMR、TDEE
  4. 当日营养摄入 - 热量和 4 大营养素
  5. 饮水详情 - 时间轴表格
  6. 进食详情 - 每餐食物表(食物/份量/热量/营养素)
  7. 运动详情 - 运动记录
  8. AI 专属健康点评 - 150-300 字深度分析
  9. 风险预警 - 健康风险评估
  10. 次日可执行方案 - 饮食/饮水/运动/特别关注

🔐 隐私与安全

敏感文件保护

以下文件已加入 .gitignore,切勿上传:

  • config/user_config.json - 个人健康数据
  • config/.env - Webhook Token
  • reports/*.pdf - 个人健康报告
  • logs/*.log - 日志文件

推荐实践

  1. 私有仓库 - Fork 时设置为 Private
  2. 定期备份 - 备份配置文件到安全位置
  3. 密钥轮换 - Webhook Token 每 3-6 个月更新

📝 版本历史

版本日期更新内容
v1.0.92026-03-14🔄 全局元数据同步:对齐 Registry Install & Credentials 声明,统一版本号
v1.0.82026-03-14📋 YAML Frontmatter 声明(ClawHub 元数据同步)
v1.0.72026-03-14🔒 安全合规重构:强制环境校验、隐私警告声明、优雅退出机制、type 字段声明
v1.0.62026-03-14📦 包规范化:新增 install 字段(pip install -r requirements.txt),解决包管理规范警告
v1.0.52026-03-14🔥 热修复:通过代码审查,解决安全扫描警告,新增环境配置说明
v1.0.42026-03-14安全合规修复(移除硬编码 API Key、完善 env 声明、文档脱敏)
v1.0.32026-03-14文档完善(README/SKILL 重构、init_config.py 初始化脚本)
v1.0.22026-03-14PDF 优化(JSON 解析修复、AI 点评板块、特殊字符清理)
v1.0.12026-03-13数据解析修复(食物丢失修复、过饱系数、症状惩罚)
v1.0.02026-03-13初始版本(AI 点评、动态方案、多端推送、PDF 导出)

📞 技术支持

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

PayPilot by AGMS

Process payments, send invoices, issue refunds, manage subscriptions, and detect fraud via a secure payment gateway proxy. Use when a user asks to charge som...

Registry SourceRecently Updated
General

Poem Generator

诗歌生成助手。现代诗、俳句、对联、藏头诗、古诗翻译。Poem generator with free verse, haiku, couplets, acrostic poems, classical poetry translation. Use when you need poem generator cap...

Registry SourceRecently Updated
General

Garmin Sync

Sync activities from Garmin China to Garmin Global using local timestamps and distance to avoid duplicates in a one-way sync process.

Registry SourceRecently Updated
General

Trader Simulator

🤖 OpenClaw Skill /skills | 炒股大师模拟器 | 股市模拟交易练习 | A股/港股/美股投资学习 | 化身文主任/股神老徐/炒股养家/孙宇晨等各位大师学习投资思路 | 多智能体股票讨论群

Registry SourceRecently Updated