编排步骤与规则源码
同一条规则可以用图形或文本编排。校验并回到图形会解析并检查当前文本,返回标准化步骤;它不会保存、启用或执行规则。文本还没应用时,请先校验,再试运行。
常用步骤
链接到「常用步骤」| 步骤 | 写法或输入 | 规则 |
|---|---|---|
| 触发与条件 | when ORDER_PAID { … };if order.paidMinor >= 10000 { … } else { … } |
简写支持字符串、整数、布尔值及常用比较;多个分支按顺序取第一个命中项。 |
| 调用动作 | call 工具名 {"参数":{"const":"值"}} |
用 ref 取变量,const 传常量。文本参数可插入 {{order.shortCode}}。 |
| 等待、结束 | wait 30、stop |
等待单位为分钟,范围 1–10080;定时规则不能添加等待。 |
| 查找与循环 | 图形步骤 查找订单;for steps.find.orders { … } |
这里的 find 是查找步骤 ID。也可遍历 order.items;每次至多 50 项,不能在循环内再套循环。 |
| 设置变量 | 图形步骤设置 vars.<名称>,或用 step {完整步骤对象} |
可赋值或累加整数;完整对象也用于保留多分支等复杂结构。 |
每步可用 @编号 保留身份,例如 @notice。编号在当前规则内唯一,以小写字母开头,最多 32 个字符。每条规则最多 60 步,嵌套最多 4 层。
示例:每周一提醒
链接到「示例:每周一提醒」when SCHEDULE with {"repeat":"WEEKLY","time":"09:00","weekdays":[1]} {
@remind call staff.notify {"text":{"const":"请核对本周营业时段和在售菜单"}}
}
这条规则没有当前订单;因此通知只使用常量。需要处理一组订单时,在图形编辑器加入查找步骤,设定状态、时间范围和数量,再在循环内处理结果。可先从模板 超时订单提醒 查看其查找范围,不必自行拼写筛选 JSON。
工具与次数边界
链接到「工具与次数边界」从编辑器提供的工作流工具中选择动作;外部 MCP 能调用的工具并非全部可编排。例如 orders.accept、orders.serve 和桌台释放、清台属于动线,不对自定义步骤开放。orders.complete 可用于标记订单完成,和单纯通知店员的副作用不同。
规则可限制总次数和每位会员次数,按实际产生改动的运行计数。若券已领完等业务前提不满足,动作可能返回 changed:false 和原因,不应当作系统故障反复重试。