节点参考
结构动作与流程控制字段
说明 If、Repeat、While、TryCatch、Race、SubFlow、Label、Goto、Break、Continue 等结构节点。
条件分支与变量分支
结构节点用于组织流程,不直接执行触控或识别。AI 应使用结构节点表达分支,而不是把所有可能性堆成线性步骤。
If— 条件分支。字段:conditions、condition、timeCondition、varCondition、thenBlock、elseBlock。新脚本优先使用conditions。VarSwitch— 变量分支。字段:key、matchMode、cases、defaultBlock。matchMode支持TEXT_EQUALS、TEXT_CONTAINS、NUMBER_EQUALS。VarSwitchCase— 字段matchValue、block。defaultBlock用于无匹配时兜底。
循环结构
循环必须设置护栏,避免脚本无限执行。AI 输出循环时应同时说明退出条件。
Repeat— 固定次数循环。times是次数;timesVarKey不为空时从变量读取次数;block是循环体;intervalMillis是每轮间隔。WhileVar— 变量条件循环。字段:key、op、value、block、intervalMillis、maxIterations、estimateIterations;op支持LT、LE、EQ、NE、GE、GT。WhileVision— 视觉条件循环。字段:condition、block、intervalMillis、timeoutMillis、maxIterations、estimateIterations。Break— 跳出当前循环。Continue— 跳过本轮剩余动作并进入下一轮。
兜底、竞速与复用
复杂脚本应通过 TryCatch 和子流程降低重复逻辑。Race 适合两个候选条件谁先满足就继续的场景。
Block— 结构分组。字段:block、config;不改变语义,只提高可读性或批量配置。TryCatch— 失败兜底。tryBlock中动作失败后进入catchBlock。Race— 并行竞速。leftBlock和rightBlock同时启动,先完成的一路生效,另一路取消。SubFlowDef— 子流程定义。字段:name、params、block;定义本身不按顺序执行。CallSubFlow— 调用子流程。字段:targetName、paramBindings。ParamBinding— 字段name、value;SubFlowParam— 字段name、defaultValue、required、description。
跳转与事件监听
跳转适合少量兜底路径;大量跳转会降低可维护性。事件监听适合在动作生命周期中触发提示、变量写入或子流程。
Label— 跳转标签。字段:name。Goto— 跳转到标签或节点。字段:target。运行时先在当前 block 查找,找不到再向外层冒泡;不支持跳进某个子块。EventListener— 字段包括eventName、labelTarget、targetSubFlow、paramBindings、async、writeEventToVars、eventNameVar、actionTypeVar、reasonVar、targetType、actionTargetId、actionTargetPath、action、actionConfig、variableNode。EventTargetType—LABEL、SUB_FLOW、ACTION、INLINE_ACTION、VARIABLE。