Pipeline 基础
2026/7/8大约 3 分钟
Pipeline 基础
Pipeline 由一组节点组成。每个节点描述“什么时候执行、执行什么、执行后去哪里”。
提示
更多内容可参考 MaaFramework 任务流水线(Pipeline)协议
刚开始阅读 pipeline 时,可以先记住三个核心部分:
- 判断当前画面是否符合预期,也就是
recognition。 - 识别成功后执行动作,也就是
action。 - 决定下一步去哪里,也就是
next。
最小的可点击节点大概是这样:
{
"recognition": {
"type": "OCR",
"param": {
"expected": ["确定"],
"roi": [425, 468, 190, 35]
}
},
"action": "Click"
}这表示:只有在指定区域识别到“确定”时,才点击识别到的位置。不要先写点击,再希望它点对;应该先证明画面上有什么,再决定点哪里。
更完整的规则见 Pipeline 规范。
节点是什么
节点是 pipeline 的最小执行单元。一个节点可以只负责判断状态,也可以在识别成功后执行点击、启动应用或跳转到后续节点。
节点名应能说明它属于哪个任务、做什么动作、面向什么目标。例如:
StartGame_ClickStart:开始游戏流程中点击开始。Award_Task_Verify:EnterTaskPage:奖励任务中确认进入任务页面。Status_In_MainMenu:判断当前是否在主界面。
常见字段
desc:节点说明,便于日志和维护。recognition:识别方式,可以是 OCR、TemplateMatch、And、Or 或引用其它识别节点。action:识别成功后的动作,例如 Click、StartApp。next:后续节点列表。post_delay:动作后的等待时间。max_hit:限制节点命中次数,常用于避免子流程重复执行。
字段不一定每个节点都有。比如状态节点通常只有 recognition,入口节点可能只有 next。
识别方式
常见识别方式包括:
- OCR:识别文字,适合按钮文案、提示文本和状态文字。
- TemplateMatch:识别图片模板,适合图标、按钮、标签页状态。
- And:要求多个条件同时成立。
- Or:多个条件中任意一个成立即可。
- 引用其它节点:复用
UI_*、Status_*等通用识别节点。
写识别时,要尽量选稳定区域。OCR 的文字和 ROI 应来自实际游戏画面;模板图应裁剪到稳定识别区域。
动作与跳转
action 只应该在识别成功后执行。点击动作尤其要注意:点击目标必须来自当前节点识别结果,或来自已经参与识别的 UI 节点。
next 表示后续流程。阅读 next 时要确认两件事:
- 成功后会继续到哪个节点。
- 失败或结束后是否能回到稳定状态。
[JumpBack] 常用于“能处理就处理,处理不了就回到当前流程继续”的可选步骤。
读节点的顺序
看一个节点时,建议按这个顺序读:
- 先看节点名,判断它属于哪个任务或通用分类。
- 再看
desc,确认节点目的。 - 看
recognition,确认它依赖哪些视觉条件。 - 看
action,确认识别成功后做什么。 - 看
next,确认成功、失败或收尾路径。
如果读不懂一个节点的目的,优先补 desc、拆节点或调整命名,而不是继续往里面塞更多识别和动作。
