
第15篇:loop 步骤的循环调用与结果合并机制工作流引擎的七种步骤类型中,loop是最复杂也最强大的一个。它能遍历一个列表,对每个元素调用不同的 Skill,把所有结果合并成一个扁平列表。“查询预算小于 200 的项目的全部附件”——这个需求需要先查所有项目、过滤预算、再对每个满足条件的项目循环查附件,最后把所有附件合并到一个列表。没有 loop 步骤,这类"一对多"的组合查询就无法实现。本文深入拆解_exec_loop()的实现:item_key变量注入机制、merge合并策略的展平逻辑、MAX_LOOP_ITERATIONS性能防护、循环内 Skill 调用失败的容忍策略,以及loop_context上下文隔离设计。一、问题提出:一对多查询的困境用户问智能助手:“查询预算小于 200 的项目的全部附件。”拆解这个需求的执行步骤:查询所有项目 → 得到项目列表过滤预算小于 200 的项目 → 得到筛选后的项目列表对每个筛选后的项目查询其附件 → 得到多个附件列表把所有附件列表合并成一个 → 得到最终的附件列表步骤 1 和 2 可以用call_skill和filter步骤完成。但步骤 3 和 4 面临