名称: feast
描述: |
全面的膳食规划系统,包含文化主题、地道食谱、智能购物和惊喜揭晓。适用于以下场景:
- 规划每周餐食或菜单
- 生成购物清单
- 寻求食谱灵感或烹饪帮助
- 回顾过往餐食或提前规划
- 为新用户引导膳食系统
- 寻找美食灵感或文化饮食活动
- 追踪饮食目标或营养摄入
- 管理收藏、失败案例或餐食历史
一款将每周烹饪转变为文化体验的膳食规划技能。
用户数据存储在其工作区中:
workspace/meals/
├── profile.yaml # 用户偏好(引导期间创建)
├── history.yaml # 已食用餐食记录
├── favourites.yaml # 喜爱的食谱
├── failures.yaml # 永不重做的食谱
└── weeks/
└── YYYY-MM-DD.md # 每周计划(自包含)
注意: 每周计划是完全自包含的——每天的食谱、主题研究、音乐播放列表和文化背景都直接嵌入在周计划文件中。没有单独的食谱或主题文件。
默认日程(用户可配置):
| 日期 | 活动 | 触发指令 |
|---|---|---|
| 周四 | 研究与草拟 | "我们来规划下周" |
| 周五 | 确认计划 | "确认膳食计划" |
| 周六 | 购物清单 | "生成购物清单" |
| 周日 | 购物 | 用户自行购物 |
| 当周 | 每日揭晓 | "晚餐吃什么?" |
| 周末 | 回顾 | "回顾本周餐食" |
Feast 在关键时间点发送提醒:规划日、确认日、购物清单生成日、每日揭晓日和周回顾日。这些通知通过 cron 作业发送,该作业会启动独立的代理来发送通知。
用户在 profile.yaml 文件的 schedule.notifications.channel 下配置首选渠道:
| 渠道 | 发送方式 |
|---|---|
auto |
发送到当前会话或第一个可用渠道 |
telegram |
通过 Telegram 发送(需要在 OpenClaw 中配置 Telegram 频道) |
discord |
通过 Discord 发送(需要在 OpenClaw 中配置 Discord 频道) |
signal |
通过 Signal 发送(需要在 OpenClaw 中配置 Signal 频道) |
webchat |
输出到聊天会话 |
为了向移动设备发送独立于聊天渠道的通知,用户可以启用推送通知:
schedule:
notifications:
push:
enabled: true
method: "pushbullet" # 或 "ntfy"
支持的方法:
pushbullet-notify 技能并配置 API 密钥推送通知是附加到主渠道发送的,而不是替代它。如果推送失败,通知仍会发送到主渠道。
通知通过 OpenClaw 的 cron 系统发送,使用 wakeMode: "next-heartbeat"。这意味着通知会在预定时间后的心跳间隔内(通常最多 1 小时)到达。对于大多数膳食规划目的,这种轻微延迟是可接受的。
用户可以随时调整通知偏好:
更新时,使用存储的 ID 删除旧的 cron 作业,并使用更新的设置创建新的作业。
完整流程请阅读 references/onboarding.md。
基本问题:
1. 位置(用于季节性、单位、商店)
2. 家庭人数与分量需求
3. 周结构(起始日、烹饪日、放纵日)
4. 饮食要求与阶段
5. 设备与烹饪信心
6. 偏好(菜系、辣度、预算)
保存至 workspace/meals/profile.yaml。
workspace/meals/weeks/YYYY-MM-DD.md(所有内容都嵌入此单一文件)所有食谱均以标准化的内部单位存储。输出时,转换为用户偏好的单位:
研究菜系时:
1. 尽可能使用原语言搜索
2. 寻找来自本土来源的食谱,而非仅限英文美食博客
3. 确定具体的原产地——不仅是"泰国菜",而是"泰国北部,清迈风格"
4. 研究真正来自该地区的音乐:
- 寻找当代热门歌曲(当地当前流行什么)
- 寻找经典/传统音乐(来自该地区的传奇艺术家)
- 策划一个 1-2 小时的播放列表——而非泛泛的 Spotify 搜索
- 参见 references/theme-research.md 获取指导
5. 研究该地区本身——历史、时事、社会背景、著名之处
6. 注意文化背景和任何相关活动
7. 尊重饮食传统(例如,中东主题中不含猪肉)
8. 将所有内容嵌入周计划——食谱、主题、音乐和背景都放在单一的周计划文件中
参见 references/cuisines/ 获取各菜系指南。
餐食揭晓并烹饪后,更新历史记录:
python scripts/update-history.py \
--meals-dir ~/.openclaw/workspace/meals \
--date 2026-02-03 \
--name "泰式绿咖喱" \
--cuisine "泰国菜" \
--region "泰国中部" \
--week-file "2026-02-02.md" \
--rating 4 \
--notes "很棒,下次可以多放点辣椒"
这将更新 history.yaml 并自动重新计算统计数据。
在进行每日揭晓后,当用户确认已烹饪并可选地评分后,运行此脚本以保持历史记录最新。
在建议食材前,检查用户所在位置的季节性。时令农产品通常:
- 品质更好
- 价格更便宜
- 更环保
并非每种食材都必须是时令的,但尽可能优先选择时令食材。
参见 references/seasonality/ 获取区域指南。