{
"variables": {},
"execute": []
}
schedule、if、whileadb(通过 method 区分)src/pages/processing/func/ 目录下的脚本文件名即为标签名{
"type": "schedule",
"condition": {
"interval": "1s",
"repeat": -1
},
"interval": []
}
interval: 执行间隔("1s", "2m", "3h")repeat: 重复次数(-1 表示无限循环)统一格式:
{
"type": "adb",
"method": "input|click|locate|swipe|scroll|press|string-press",
"inVars": [],
"outVars": []
}
| method | 说明 | inVars |
|---|---|---|
input |
输入文本 | [0]: 文本内容 |
click |
点击 | [0]: 位置坐标(字符串格式:"{\"x\":123,\"y\":456}" 或 "123,456") |
locate |
定位 | [0]: 图片/文字,outVars[0]: 保存位置 |
swipe |
滑动 | [0]: 方向(up-down/down-up/left-right/right-left) |
scroll |
滚动 | [0]: 方向(up/down) |
press |
图像匹配并点击 | [0]: 图片路径 |
string-press |
文字识别并点击 | [0]: 文字内容 |
{
"type": "if",
"condition": "{变量} == '值'",
"ture": [],
"false": []
}
支持操作符:== != > < >= <=
数值比较:
{
"type": "if",
"condition": "{count} > 5",
"ture": [{"type": "echo", "value": "count大于5"}],
"false": []
}
字符串比较:
{
"type": "if",
"condition": "{message} == \"hello\"",
"ture": [{"type": "echo", "value": "消息是hello"}],
"false": []
}
布尔值判断:
{
"type": "if",
"condition": "{isReady} == true",
"ture": [{"type": "echo", "value": "已准备好"}],
"false": [{"type": "echo", "value": "未准备好"}]
}
或直接使用布尔变量:
{
"type": "if",
"condition": "{isReady}",
"ture": [{"type": "echo", "value": "已准备好"}],
"false": []
}
{
"type": "while",
"condition": "{变量} > 0",
"ture": []
}
注意:
ture是body的别名。
{ "type": "delay", "value": "2s" }
{ "type": "set", "variable": "{name}", "value": "value" }
{ "type": "echo", "value": "当前消息: {{lastMessage}}" }
或使用 inVars:
{ "type": "echo", "inVars": ["{lastMessage}", "{lastRole}"] }
value: 直接文本,支持 {{variable}} 格式的变量替换(双花括号用于字符串拼接)inVars: 变量名数组,输出所有变量的值注意:
log标签已废弃,请使用echo标签。
{
"type": "random",
"inVars": ["1", "100"],
"outVars": ["{randomNum}"]
}
inVars[0]: 最小值(字符串格式的数字或变量引用)inVars[1]: 最大值(字符串格式的数字或变量引用)outVars[0]: 输出变量(number 类型,可以是整数或小数)传统格式(已过时,建议使用上述格式):
{
"type": "random",
"variable": "num",
"min": 1,
"max": 100,
"integer": true
}
"variables": {"name": "value"}"{name}" 在字段中引用"outVars": ["{name}"] 或 "variable": "{name}"number:数值类型(整数或小数),例如:1、3.14、-5.2string:字符串类型,例如:"hello"、""bool:布尔类型,只能是 true 或 false(不是字符串)1、3.14),类型为 number"text"、""),类型为 stringtrue、false),类型为 bool示例:
{
"variables": {
"count": 0, // number 类型
"message": "", // string 类型
"isReady": false // bool 类型
}
}
"1s", "2m", "3h""2026/1/14 01:21""09:00"扩展标签由 src/pages/processing/func/ 目录下的脚本文件决定,每个脚本文件名即为标签名。
常用标签:
ocr-chat: OCR识别对话内容
inVars: [好友RGB颜色, 我的RGB颜色, 区域坐标](RGB格式:"(r,g,b)",区域坐标:JSON字符串)outVars: [聊天记录变量](输出 chat-history.txt 格式的JSON字符串)read-last-message: 读取最后一条消息(输出文本和发送者角色)smart-chat-append: 智能合并历史聊天记录和当前聊天记录,自动检测并去除连续重合部分后返回新的聊天记录字符串
inVars: [历史记录, 当前记录]outVars: [合并后的记录]read-txt: 读取文本文件内容
inVars: [文件路径](相对于工作流目录,如 "history/chat-history.txt")outVars: [文件内容变量]save-txt: 保存字符串为文本文件
inVars: [内容, 文件路径](路径相对于工作流目录)outVars: []image-center-location: 图像中心点定位
inVars: [模板图片路径](相对于工作流目录的 resources 文件夹)outVars: [位置坐标变量](输出JSON字符串格式:{"x":123,"y":456})image-region-location: 图像区域定位(在完整截图中查找区域图片的位置)
inVars: [截图路径, 区域图片路径](都相对于工作流目录的 resources 文件夹,如 "ScreenShot.jpg" 和 "ChatArea.png")outVars: [区域坐标变量](返回四个顶点坐标:{topLeft: {x, y}, topRight: {x, y}, bottomLeft: {x, y}, bottomRight: {x, y}})resources/ 文件夹下已有的截图文件进行匹配image-area-cropping: 图像区域裁剪(从当前屏幕截图裁剪指定区域)
inVars: [区域坐标, 保存路径](区域坐标:JSON字符串格式,保存路径相对于工作流目录的 history 文件夹)outVars: []history/ScreenShot.jpg,然后根据区域坐标裁剪并保存到指定路径