今天吃什么 - 智能三餐规划引擎

Other

为四口之家(夫妻+爷爷+2岁宝宝)规划一天三餐。当用户问「今天吃什么」「帮我安排一下饭菜」「早饭/午饭/晚饭吃什么」「明天带什么饭」「不知道吃啥」等日常吃饭决策问题时主动使用此skill。结合电饭锅预约、蒸菜省时、带饭便当、宝宝和老人适口等约束来推荐。自动感知日期(节气/节日/周末/季节),通过程序脚本实现跨会话排重,确保每次不重样。

Install

openclaw skills install what-to-eat-today

今天吃什么

程序 + LLM 分工

    scripts/meal_planner.py                     LLM(你)
   ┌─────────────────────────┐       ┌──────────────────────────┐
   │ 日期/星期/节气/节日判定    │       │ 做法要点、预处理建议        │
   │ 主力蛋白周历 + 烹饪轮换   │ JSON  │ 便当打包建议、出餐顺序      │
   │ 历史排重(跨会话持久化)   │ ───► │ 宝宝/老人注意事项          │
   │ 从菜库智能选菜           │       │ 节日/节气文案润色          │
   └─────────────────────────┘       │ 用户额外要求的柔性调整      │
                                     │ 格式化 Markdown 输出       │
                                     └──────────────────────────┘

用法:每次用户询问吃饭推荐时,先运行脚本,再基于 JSON 结果 + references 参考文件格式化输出。

python scripts/meal_planner.py              # 今天
python scripts/meal_planner.py --no-save    # 测试(不写历史)
python scripts/meal_planner.py --reset-history  # 清空历史

脚本输出 JSON 的 date_context 包含所有日期信息,meals 包含已选定的菜名。不要自己算日期、不要自己选菜、不要自己排重。


家庭约束

核心约束

四口之家:夫妻 + 爷爷 + 2岁宝宝。推荐家常、好做、可落地的菜。

  • 早饭要省时:前一晚预处理或电饭锅预约,早晨10分钟内吃上
  • 午饭是蒸菜便当:夫妻各带一份,爷爷在家吃。菜要适合蒸/复热不崩塌,微辣即可
  • 晚饭3菜,至少1蒸菜:蒸菜不占灶眼,并行出餐快。口味考虑宝宝和爷爷——不辣、不太油、不太咸、软烂适口

午饭便当细节

  • 媳妇:4小饭盒(3菜+1饭) / 老公:1大饭盒+1小饭盒
  • 适合:汤汁少的、根茎/瓜类/菌菇类蔬菜、蒸排骨/蒸鸡/蒸肉饼类
  • 不适合:清炒绿叶菜(复热发黄)、炸物(不脆)、凉拌菜

晚饭细节

  • 宝宝友好:不辣、少油、少盐、食材软烂、圆形小颗粒(花生/豆子)碾碎、鱼去刺
  • 爷爷友好:少骨、软烂、控盐
  • 大人不够味可自加辣椒油/老干妈/蘸料——比做辣了让老人宝宝吃不了强

输出格式

## 📅 日期感知
> 🎋 今日冬至,该吃饺子啦!| 📅 普通工作日

## 🍚 今日三餐

### ☀️ 早饭
| 菜名 | 做法要点 | 预处理 |
|------|----------|--------|
| 菜名 | 关键步骤,1-2句话 | 前一晚需要做什么 |

### 🍱 午饭(两人份便当)
| 菜名 | 做法要点 |
|------|----------|
| 菜名 | 关键步骤,1-2句话 |

> 💡 便当打包建议:xxx

### 🌙 晚饭(3菜,4人份)
| 方式 | 菜名 | 做法要点 | 宝宝注意 |
|------|------|----------|----------|
| 蒸 | 菜名 | 关键步骤 | 如有注明 |
| 炒 | 菜名 | 关键步骤 | 如有注明 |
| 炖/拌 | 菜名 | 关键步骤 | 如有注明 |

> ⏱️ 出餐顺序建议:xxx

使用步骤

Step 0 — 运行脚本

python scripts/meal_planner.py

读取 JSON 的 date_context(日期、节日、主力蛋白、烹饪偏好等)和 meals(已选定的早饭/午饭/晚饭菜名列表)。

Step 1 — 日期感知行

date_context.date_messages 取节日/节气信息,写日期感知行。如为空则标注「📅 普通工作日」或「📅 周末愉快」。

Step 2 — 补全做法

meals 取菜名 → 查 references/dish_library.md 找到对应菜 → 取「做法要点」填入输出模板。自定义发挥控制在1-2句内。

Step 3 — 补全人性化建议

  • 便当打包建议:结合当日菜式给出
  • 出餐顺序建议:先做蒸菜/炖菜(上锅后不用管),再做炒菜
  • 宝宝注意:从菜库表的「宝宝友好」列取,脚本已确保不选辣菜

Step 4 — 用户额外要求

如果用户有额外要求(「今天想吃鱼」「宝宝最近不爱吃菜」),在脚本已选菜的基础上做替换调整,但保持排重规则(不换回近期已吃过的菜)。

Step 5 — 节前提醒

如果 date_context 显示明天是节日/节气,主动提醒:「明天是XX,要不要提前准备XX食材?」


智能排重机制(脚本已实现,了解即可)

脚本通过三层排重确保不总吃一样的菜:

层级机制实现
日期驱动主力蛋白周历(周一鸡/周二猪/周三鱼/周四牛/周五蛋)+ 日期尾数烹饪权重跨会话自动轮换
历史持久化history.json 记录每次推荐,7天同名菜排除、3天主食材降权跨会话持久化
即时排重同日不重复蛋白/菜名/主食材,口味至少2种,颜色尽量3色每次推荐即时校验

排重规则详见 scripts/meal_planner.py 源码。


参考文件

  • references/dish_library.md — 完整菜库,含做法要点、宝宝注意事项。LLM 填入输出模板时查此文件
  • references/calendar.md — 节日/节气/季节对照表,写日期感知行和节日文案时参考
  • scripts/meal_planner.py — 规划引擎源码
  • scripts/dish_library.json — 结构化菜库数据(给脚本用)