节点参考
结构动作与流程控制字段
说明 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。