在laper中,语义意图、触发条件和执行动作完全相同的两个节拍必须合并,否则会导致重复执行与调试困难;需比对trigger、context、action三项,全部一致才可合并,变量与硬编码差异视为不同。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Laper中,当两个节拍(beat)表达完全相同的语义意图、触发条件和执行动作时,必须合并以避免逻辑冲突或重复执行;不合并会导致流程图混乱、调试困难,且上线后可能引发同一事件被处理两次。
确认是否可合并
打开Laper编辑器,定位到这两个节拍节点→点击左侧「节拍信息」面板→逐项比对以下三项:【触发条件(trigger)】、【上下文约束(context)】、【执行动作(action)】。三者全部一致才允许合并;任意一项不同,必须保留为独立节拍。
注意:即使动作内容看起来一样,若其中一处用了变量$uid而另一处硬编码了"123",也不算相同。
手动合并操作
方法一:拖拽覆盖法
选中节拍A→按住鼠标左键拖动至节拍B正中心→松手。系统自动将A的标签、注释、分支线合并进B,A节点被删除。
方法二:复制粘贴法
点击节拍A→Ctrl+C→点击节拍B→Ctrl+V。此时B会弹出合并确认框,勾选「覆盖触发条件」「合并动作体」「保留B的ID」→点击确定。这一步操作起来很简单,直接把文件拖进去就行。
验证合并结果
第一步:右键节拍B→选择「查看编译输出」→确认日志中不再出现重复的trigger匹配行。
第二步:在测试面板输入原始触发数据→观察仅执行一次action,且返回结果与合并前单次执行结果完全一致。
第三步:导出JSON Schema→搜索该节拍ID→确认全文只存在一个同名beat定义块。
如果测试中发现动作执行了两次,说明触发条件实际存在隐式差异,比如一个监听了webhook.*,另一个监听了webhook.create,表面相似但底层匹配路径不同。











