Weekly Menu 每周菜单

根据用户偏好从小红书搜索时令食谱,生成带图、链接和购物清单的飞书文档。

已扫描
适合谁
需要每周菜单规划的家庭主妇/夫、追求时令和健康饮食的美食爱好者、想节省做饭决策时间的上班族
不适合谁
不需要自动菜单规划的用户、不使用飞书或小红书的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
中等(★★☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @beginnerrudy/weekly-menu

Skill 说明

命令、参数、文件名以原文为准

每周菜单技能

生成一份带有图片和小红书来源链接的每周食谱推荐文档,并将其以飞书文档形式存储到“收据”文件夹中。

前置条件

  • 已安装 agent-reach 技能(配置了小红书频道)
  • 已配置 飞书 频道,并包含以下权限:docx:documentdocx:document:createdrive:drive
  • 用户配置文件位于 meals/profile.yaml(参见 references/profile-template.yaml

工作流程

1. 加载用户配置

读取 meals/profile.yaml 中的以下字段:

  • location — 确定应季食材
  • household.portions — 份量
  • cooking.equipment — 可用厨具(空气炸锅、高压锅等)
  • cooking.timeAvailable — 快速/中等/耗时
  • cooking.spiceTolerance — 无/微辣/中辣/重辣
  • preferences.cuisinesFavourite — 偏好菜系
  • preferences.explorationLevel — 保守/冒险
  • schedule.cookingDays — 每周做饭天数

如果配置文件不存在,则询问用户基本信息,并根据 references/profile-template.yaml 生成。

2. 搜索食谱灵感

使用 agent-reach 的小红书搜索功能查找热门食谱:

mcporter call 'xiaohongshu.search_feeds(keyword: "<搜索词>")'

搜索策略(3-5 次):

  • 当前季节 + 地点 + "时令菜"
  • 厨具相关:"空气炸锅 家常菜"、"高压锅 菜谱"
  • 菜系偏好:"川菜 家常"、"苏菜 做法"
  • 通用:"一周菜谱 简单好吃"

按点赞/收藏数选取排名靠前的结果。目标是 20 道候选菜,涵盖以下 6 个类别:

  • 🌿 春季时令
  • 🔥 空气炸锅
  • 🍲 高压锅硬菜
  • 🌶️ 下饭菜
  • 🏠 经典家常
  • 🍳 快手 & 主食

3. 编排菜单

将 20 道菜分为 6 个主题板块,基于厨具、菜系和烹饪方法:

  • 平衡多样性:同一板块内避免重复的蛋白质或烹饪方法
  • 每道菜需包含:编号(①-⑳)、菜名、一句话描述、烹饪时间、所用厨具

4. 下载菜肴图片

为每道菜下载一张代表性图片(来自 Unsplash 或类似免费源——小红书 CDN 会屏蔽直接下载):

curl -sL --connect-timeout 10 --max-time 20 -o ./tmp/dishes/01-name.jpg "<url>"

图片存储到 workspace/tmp/dishes/ 目录。验证每张文件是否为有效的 JPEG/PNG(非空文件或 HTML 错误页面)。

5. 创建飞书文档

阅读 references/feishu-doc-recipe.md 了解完整的飞书 API 流程。

摘要:

  1. 在“收据”文件夹中创建文档,标题为 🍽️ YYYY-MM-DD 推荐菜单(以周一日期为准)
  2. 授予用户 full_access 权限
  3. 按每批 ≤50 个块插入内容。对于每道菜,按顺序创建以下块:

- heading3(block_type 5)— 菜名,用于目录导航

- todo/checkbox(block_type 17,done: false)— 同样的菜名,供用户勾选

- text(block_type 2)— 描述 + 烹饪时间

- 空 image(block_type 27)— 占位,后续填充

- 带链接的 text — "📌 小红书菜谱",链接到小红书帖子

  1. 所有文本块插入完成后,填充图片:上传到云盘 → 使用 replace_image 替换
  2. 板块之间用分隔线(block_type 22)+ heading2(block_type 4)隔开

关键限制:

  • 每次插入调用最多 50 个块 — 将 20 道菜分为 4 批(每批约 25 个块)
  • 每份文档每秒最多 3 次编辑 — API 调用间使用 time.sleep(0.4)
  • 图片块必须先创建为空({"block_type": 27, "image": {}}),随后再通过 patch 填充
  • 插入块时按从下到上的顺序添加,以避免索引偏移

6. 分享结果

将文档链接通过聊天发送给用户。格式如下:

🍽️ 本周菜单已出炉!20 道菜已备好

👉 <document_url>

打开文档,从目录浏览所有菜,勾选你想做的~

7. 更新历史记录

将本周菜单追加到 meals/history.yaml 文件中,供日后参考并避免重复。

配置

位置描述
用户配置meals/profile.yaml口味偏好与约束条件
收据文件夹飞书云盘Token 存储在 MEMORY.md 中
历史菜单meals/history.yaml以前的菜单,避免重复

文件参考

  • references/profile-template.yaml — 空白用户配置模板
  • references/feishu-doc-recipe.md — 飞书文档创建 API 的逐步指南
B
@beginnerrudy

已收录 1 个 Skill

相关推荐