把菜谱拆解成“双人协作模式”

RileyCoder 初级 7小时前 更新于 2026年7月25日 139 浏览 12 点赞 约 2 分钟

我想到了一个用 Claude Code 快速复刻这个功能的核心逻辑。很多人觉得这种 App 只是简单的文本分割,但真要做成一个好用的 AI Agent 工作流,最难的是如何处理“依赖关系”。比如:你不能在对方还没把洋葱切好之前,就让另一个人开始炒洋葱。如果 AI 只是随机把步骤分给两个人,厨房依然会乱成一锅粥。

如果我要用大模型来实现这个“菜谱双人化”的实战逻辑,我会构建一个包含依赖分析的 Prompt 工作流,而不是简单的 Split 文本。

核心实现逻辑:从线性步骤到并行图谱

一个标准的菜谱是线性的(Step 1 -> Step 2 -> Step 3),但双人协作需要将其转化为 DAG(有向无环图)。

第一步是原子化拆解。利用 Claude 3.5 Sonnet 的强推理能力,将每个步骤拆解为最小可执行单元。
例如:“将洋葱切丁并加入锅中翻炒” → 任务 A(切洋葱)+ 任务 B(翻炒)。

第二步是依赖标记。标注每个任务的前置条件。

  • 任务 B 的前置条件是 任务 A 完成。

第三步是负载均衡分配。根据任务的预计耗时(AI 预估)和设备占用(比如只有一口锅),将任务分给 Player 1 和 Player 2。

实操配置:Prompt 结构参考

为了达到精准拆解,我建议在提示词中引入 JSON 格式约束,强制 AI 输出任务依赖链。你可以参考这个结构:

{
  "recipe_id": "classic_pasta",
  "tasks": [
    {
      "id": 1,
      "assignee": "Player_1",
      "action": "切洋葱和蒜末",
      "duration_est": "3min",
      "depends_on": [],
      "equipment": "cutting_board"
    },
    {
      "id": 2,
      "assignee": "Player_2",
      "action": "烧开水,下意面",
      "duration_est": "10min",
      "depends_on": [],
      "equipment": "pot_1"
    },
    {
      "id": 3,
      "assignee": "Player_1",
      "action": "将洋葱蒜末入锅翻炒",
      "duration_est": "2min",
      "depends_on": [1],
      "equipment": "pan_1"
    }
  ]
}

踩坑细节与优化方案

在实际测试类似逻辑时,我发现两个很严重的坑:

1. 资源冲突(Resource Contention):
AI 经常会安排两个人同时使用同一个切菜板或同一个灶台。
解法: 在 Prompt 中加入一个 equipment 维度,并告诉 AI:同一时间,同一个设备只能被一个 Player 占用。如果冲突,必须将任务顺序化。

2. 异步等待死锁:
如果 Player 1 的任务太快结束,而 Player 2 的任务需要 15 分钟,Player 1 会处于空闲状态,这违背了“减轻工作量”的初衷。
解法: 引入一个 idle_fill 机制。让 AI 识别出那些没有强依赖关系的辅助任务(比如洗锅、摆盘、准备餐具),并将其动态插入到空闲时间较长的人员队列中。

效率提升建议

如果你想自己部署一套类似的 AI Agent 工作流,建议不要直接调用单一的 Chat 接口,而是走一个 Analysis -> Planning -> Assignment 的三步走链路。

  • Analysis: 提取食材和所有动作。
  • Planning: 建立依赖拓扑图。
  • Assignment: 根据两人能力(或随机)分配任务,并生成最终的双人对照清单。

这种拆解方式比直接让 AI “帮我把这个菜谱分成两份”要稳定得多,实测生成的指令集在逻辑闭环上能提升 40% 以上,不会出现“先炒菜后洗菜”这种低级错误。
AI编程AI编程实战

全部回复 (2)

阿杰在路上 中级 14小时前
哈哈,太真实了!我上次跟朋友玩直接吵翻了,现在看到那个游戏图标都有心理阴影。
0 回复
产品经理阿强 中级 14小时前
希望能有情侣模式或者共享空间,这样夫妻俩一起用起来更方便,期待后续更新!
0 回复

发表回复

支持 Markdown 格式