Lark-workflow-feishu-cli lark-workflow-health-diary
健康日记:通过飞书消息发送食物照片,AI识别食物并记录,追踪饮食和身体状态关联,每周生成健康报告。当用户需要'记录饮食'、'健康日记'、'吃了什么'、'身体不舒服'、'健康追踪'时使用。
install
source · Clone the upstream repo
git clone https://github.com/liangdabiao/lark-workflow-feishu-cli
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/liangdabiao/lark-workflow-feishu-cli "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/lark-workflow-health-diary" ~/.claude/skills/liangdabiao-lark-workflow-feishu-cli-lark-workflow-health-diary && rm -rf "$T"
manifest:
.claude/skills/lark-workflow-health-diary/SKILL.mdsource content
健康日记工作流
CRITICAL — 开始前 MUST 先用 Read 工具读取
,其中包含认证、权限处理../lark-shared/SKILL.md
适用场景
- "帮我记录今天的午餐" / "记录饮食"
- "我今天胃不舒服" / "昨晚没睡好"
- "这周吃了什么?" / "饮食回顾"
- "帮我分析一下饮食和身体状态的关联"
- "生成健康周报"
前置条件
仅支持 user 身份。执行前确保已授权:
lark-cli auth login --domain im,base,docs
工作流总览
记录饮食: 用户发照片/描述 ──► AI 识别食物 ──► base +record-upsert 记录身体状态: 用户描述状态 ──► base +record-upsert 关联分析: base +data-query ──► AI 分析饮食-状态关联 周报生成: base +record-list ──► AI 汇总 ──► doc +create 主动提醒: base +record-list ──► 识别风险食物 ──► im +messages-send
数据初始化
Base 表结构
表 1:饮食记录 (diet_log)
| 字段名 | 类型 | 说明 |
|---|---|---|
| 日期 | 日期 | 记录日期 |
| 餐次 | 单选 | 早餐/午餐/晚餐/加餐/夜宵 |
| 时间 | 日期 | 具体时间 |
| 食物列表 | 文本 | 识别出的食物名称(逗号分隔) |
| 食物详情 | 文本 | 每种食物的详细描述和份量 |
| 照片链接 | URL | 飞书中食物照片的链接 |
| 估算热量 | 数字 | 估算的卡路里(可选,AI估算) |
| 备注 | 文本 | 用户补充说明 |
| 创建时间 | 日期 | 记录创建时间 |
表 2:身体状态 (body_status)
| 字段名 | 类型 | 说明 |
|---|---|---|
| 日期 | 日期 | 状态日期 |
| 时间 | 日期 | 具体时间 |
| 状态类型 | 单选 | 胃部不适/头痛/失眠/疲劳/过敏/皮肤/情绪/其他 |
| 严重程度 | 单选 | 轻微/中等/严重 |
| 状态描述 | 文本 | 详细描述 |
| 可能诱因 | 文本 | 用户猜测的原因(如有) |
| 持续时间 | 文本 | 症状持续时长 |
| 缓解方式 | 文本 | 如何缓解的(如有) |
| 创建时间 | 日期 | 记录创建时间 |
表 3:关联分析 (correlation)
| 字段名 | 类型 | 说明 |
|---|---|---|
| 食物 | 文本 | 可疑食物名称 |
| 状态 | 文本 | 关联的身体状态 |
| 出现次数 | 数字 | 该组合出现的次数 |
| 时间差模式 | 文本 | 食用后多久出现症状(如"2-4小时") |
| 关联强度 | 单选 | 低/中/高 |
| 最近出现日期 | 日期 | 最近一次出现时间 |
| 备注 | 文本 | 分析备注 |
初始化命令
# 注意:+table-create 可能部分成功,需捕获错误后用 +field-create 补字段 # 注意:连续创建字段会触发限流(错误码 800004135),每次调用间隔至少 1 秒 lark-cli base +table-create --name "饮食记录" --fields '[ {"name":"日期","type":"datetime"}, {"name":"餐次","type":"select","multiple":false,"options":[{"name":"早餐"},{"name":"午餐"},{"name":"晚餐"},{"name":"加餐"},{"name":"夜宵"}]}, {"name":"时间","type":"datetime"}, {"name":"食物列表","type":"text"}, {"name":"食物详情","type":"text"}, {"name":"照片链接","type":"link"}, {"name":"估算热量","type":"number"}, {"name":"备注","type":"text"}, {"name":"创建时间","type":"datetime"} ]' lark-cli base +table-create --name "身体状态" --fields '[ {"name":"日期","type":"datetime"}, {"name":"时间","type":"datetime"}, {"name":"状态类型","type":"select","multiple":false,"options":[{"name":"胃部不适"},{"name":"头痛"},{"name":"失眠"},{"name":"疲劳"},{"name":"过敏"},{"name":"皮肤"},{"name":"情绪"},{"name":"其他"}]}, {"name":"严重程度","type":"select","multiple":false,"options":[{"name":"轻微"},{"name":"中等"},{"name":"严重"}]}, {"name":"状态描述","type":"text"}, {"name":"可能诱因","type":"text"}, {"name":"持续时间","type":"text"}, {"name":"缓解方式","type":"text"}, {"name":"创建时间","type":"datetime"} ]' lark-cli base +table-create --name "关联分析" --fields '[ {"name":"食物","type":"text"}, {"name":"状态","type":"text"}, {"name":"出现次数","type":"number"}, {"name":"时间差模式","type":"text"}, {"name":"关联强度","type":"select","multiple":false,"options":[{"name":"低"},{"name":"中"},{"name":"高"}]}, {"name":"最近出现日期","type":"datetime"}, {"name":"备注","type":"text"} ]'
模式一:记录饮食
方式 A:照片识别
用户通过飞书消息发送食物照片:
# 获取图片消息 lark-cli im +messages-resources-download --message-id "<message_id>" --file-key "<file_key>"
AI 处理:
- 使用多模态能力识别照片中的食物
- 提示用户确认或补充:"收到,晚餐是肉酱披萨,吃了几片?"
- 用户回复后,记录到饮食记录表
方式 B:文字描述
用户直接描述吃了什么:
- "午餐吃了米饭、红烧肉和青菜"
- "下午喝了一杯拿铁"
AI 处理:
- 解析食物名称
- 如有模糊描述,追问细节(如"咖啡加了什么?全脂牛奶还是燕麦奶?")
- 估算热量(可选)
- 记录到饮食记录表
记录命令
lark-cli base +record-upsert --table-id "<diet_table_id>" --json '{ "日期": "2026-03-31", "餐次": "午餐", "时间": "2026-03-31 12:30:00", "食物列表": "米饭,红烧肉,青菜", "食物详情": "米饭一碗、红烧肉约200g、炒青菜一份", "备注": "" }'
模式二:记录身体状态
用户描述身体状态:
- "今天胃不舒服" → 记录:状态类型=胃部不适
- "昨晚失眠了,大概凌晨3点才睡着" → 记录:状态类型=失眠
- "吃完午饭头有点晕" → 记录:状态类型=头痛 + 可能诱因=午餐
lark-cli base +record-upsert --table-id "<body_table_id>" --json '{ "日期": "2026-03-31", "时间": "2026-03-31 14:00:00", "状态类型": "胃部不适", "严重程度": "中等", "状态描述": "午饭后胃有点胀,持续约1小时", "可能诱因": "午餐吃的太快" }'
模式三:关联分析
AI 自动分析饮食和身体状态之间的关联:
分析逻辑
- 时间窗口匹配:查找身体状态出现前 2-24 小时内的饮食记录
- 频率统计:统计每种食物与每种身体状态的共现频率
- 时间差模式:分析食物食用到症状出现的时间间隔规律
- 排除常见因素:排除普遍出现的食物(如米饭、水),聚焦特异性食物
分析命令
# 获取最近 30 天的数据 lark-cli base +record-list --table-id "<diet_table_id>" --filter '...日期 >= "30天前"' lark-cli base +record-list --table-id "<body_table_id>" --filter '...日期 >= "30天前"'
AI 分析输出
## 饮食-身体状态关联分析(过去 30 天) ### 发现的关联模式 | 食物 | 身体状态 | 出现次数 | 典型时间差 | 关联强度 | |------|---------|---------|-----------|---------| | 冰美式 | 胃部不适 | 3次 | 1-2小时 | 高 | | 辣味火锅 | 失眠 | 2次 | 6-8小时 | 中 | ### 建议 - 冰美式可能与你的胃部不适有较强关联,建议减少摄入或改用热饮 - 辣味火锅后出现失眠,建议避免晚餐食用辛辣食物
更新关联分析表
lark-cli base +record-upsert --table-id "<correlation_table_id>" --json '{ "食物": "冰美式", "状态": "胃部不适", "出现次数": 3, "时间差模式": "1-2小时", "关联强度": "高" }'
模式四:主动提醒
当用户记录身体状态时,AI 主动检查关联分析表:
lark-cli base +record-list --table-id "<correlation_table_id>" --filter '...关联强度 IN ("高","中")'
如果当前饮食包含高风险食物,立即提醒:
提醒:你今天喝了冰美式,之前 3 次喝冰美式后 1-2 小时内都出现了胃部不适。 建议:注意观察,如果出现不适请记录。
模式五:周报生成
每周生成健康报告并保存为飞书文档:
报告内容
## 健康周报({日期范围}) ### 饮食概览 - 记录天数:N 天 - 总餐次:N 次 - 饮食规律性:{评价} ### 身体状态概览 - 记录不适:N 次 - 主要症状:{列表} - 严重程度分布:轻微 N 次、中等 N 次、严重 N 次 ### 本周新发现 - {新发现的关联模式} ### 趋势对比(vs 上周) - 饮食多样性:{变化} - 不适频率:{变化} ### 建议 - {个性化建议}
生成命令
lark-cli doc +create --title "健康周报 ({日期范围})" --markdown "<报告内容>"
权限表
| 命令 | 所需 scope |
|---|---|
| |
| |
| |
| |
| |
| |
| |
| |
参考
— 认证、权限(必读)lark-shared
—lark-im
、+chat-messages-list
、+messages-resources-download
详细用法+messages-send
—lark-base
、+table-create
、+record-list
、+record-upsert
详细用法+data-query
—lark-doc
详细用法+create