跳转至

任务路线 Trace

任务路线 Trace 用来判断路线有没有命中、回放到哪一步、为什么失败,以及是否降级到视觉执行。

task_map_root_lookup

表示系统正在检查这个任务有没有可用路线。

{
  "task_id": "task-20260506-001",
  "state": "TASK_MAP_ROOT_LOOKUP",
  "route_id": "schedule:morning-checkin",
  "task_map_mode": "manual",
  "ts": "2026-05-06T09:00:01.700+0800",
  "event": "task_map_root_lookup"
}
字段 说明
state 当前处于路线检查阶段。
route_id 本次任务用于查找路线的内部标识。
task_map_mode 当前路线模式。off 通常表示未开启路线。

task_map_root_lookup_miss

表示没有找到可用路线,任务会继续走普通流程。

{
  "task_id": "task-20260506-001",
  "route_id": "schedule:morning-checkin",
  "reason": "map_missing",
  "ts": "2026-05-06T09:00:01.720+0800",
  "event": "task_map_root_lookup_miss"
}
字段 说明
reason 未命中的原因。map_missing 表示没有保存过路线,map_unusable 表示路线不可用。

task_map_root_lookup_hit

表示找到了可用任务路线。

{
  "task_id": "task-20260506-001",
  "route_id": "schedule:morning-checkin",
  "segment_count": 1,
  "step_count": 4,
  "ts": "2026-05-06T09:00:01.730+0800",
  "event": "task_map_root_lookup_hit"
}
字段 说明
segment_count 路线片段数量。
step_count 路线中的步骤数量。

fsm_routing_task_map_begin

表示开始回放某一段任务路线。

{
  "task_id": "task-20260506-001",
  "package": "com.example.app",
  "segment_id": "segment-0",
  "steps": 4,
  "ts": "2026-05-06T09:00:05.100+0800",
  "event": "fsm_routing_task_map_begin"
}
字段 说明
package 正在回放路线的目标 App。
segment_id 当前路线片段。普通用户通常不需要关心。
steps 这一段路线包含多少步。

fsm_routing_task_map_step_start

表示开始执行路线中的某一步。

{
  "task_id": "task-20260506-001",
  "package": "com.example.app",
  "segment_id": "segment-0",
  "step_id": "step-2",
  "source_action_id": "action-2",
  "index": 2,
  "op": "TAP",
  "ts": "2026-05-06T09:00:06.300+0800",
  "event": "fsm_routing_task_map_step_start"
}
字段 说明
index 当前是路线中的第几步,从 0 开始。
op 动作类型,例如 TAPSWIPEINPUTBACKWAIT
step_id / source_action_id 内部调试用,反馈问题时保留即可。

fsm_routing_task_map_step_end

表示路线中的某一步执行结束。判断路线失败时,这条最重要。

{
  "index": 2,
  "step_id": "step-2",
  "source_action_id": "action-2",
  "op": "TAP",
  "picked_stage": "locator:text",
  "picked_bounds": [120, 1800, 960, 1920],
  "picked_point": [540, 1860],
  "result": "ok",
  "reason": "",
  "ts": "2026-05-06T09:00:06.520+0800",
  "event": "fsm_routing_task_map_step_end"
}
字段 说明
result 这一步是否成功。常见值:oktap_failswipe_failresolve_failunsupported
reason 失败原因。为空通常表示成功。
picked_stage 系统用什么方式找到了目标,例如文字、结构、兜底点等。
picked_bounds 找到的控件区域。
picked_point 实际点击坐标。

如果导入的任务路线里包含需要本机适配的语义点击步骤,这一步还可能出现:

字段 说明
adaptation_status 语义步骤在本机的适配状态,例如已适配或适配失败。
portable_kind 这一步当前是可迁移语义步骤,还是已经沉淀成了本机可执行步骤。

这类字段通常只在“导入别的设备导出的任务”后第一次回放路线时出现。

llm_prompt_semantic_adaptation

表示路线里有一个语义点击步骤还没有适配到本机,系统准备调用模型根据截图找到目标位置。

{
  "task_id": "task-20260506-001",
  "route_id": "schedule:morning-checkin",
  "segment_id": "segment-0",
  "step_id": "step-2",
  "prompt": "You are adapting a portable Android route step...",
  "ts": "2026-05-06T09:00:06.360+0800",
  "event": "llm_prompt_semantic_adaptation"
}
字段 说明
route_id 本次查找和保存路线时使用的内部路线标识。
segment_id 当前路线片段。
step_id 当前需要适配的步骤。
prompt 发给模型的语义定位提示词。内容较长,排查模型定位问题时有用。

llm_response_semantic_adaptation

表示语义适配模型已经返回结果。

{
  "task_id": "task-20260506-001",
  "route_id": "schedule:morning-checkin",
  "segment_id": "segment-0",
  "step_id": "step-2",
  "response": "{\"result\":\"point\",\"x\":540,\"y\":1860}",
  "ts": "2026-05-06T09:00:07.020+0800",
  "event": "llm_response_semantic_adaptation"
}
字段 说明
response 模型原始返回。成功时通常会给出目标点;失败时可能返回无法匹配或目标不明确。

task_map_semantic_adaptation_materialized

表示语义点击步骤已经成功适配到本机,并保存成后续可直接回放的本机路线步骤。

{
  "task_id": "task-20260506-001",
  "route_id": "schedule:morning-checkin",
  "segment_id": "segment-0",
  "step_id": "step-2",
  "portable_kind": "materialized",
  "adaptation_status": "adapted",
  "ts": "2026-05-06T09:00:07.180+0800",
  "event": "task_map_semantic_adaptation_materialized"
}
字段 说明
portable_kind 适配后的步骤类型。成功后通常表示已经变成本机可执行步骤。
adaptation_status 适配结果。成功时通常表示已适配。

看到这条 trace 后,同一台设备下次再跑这条任务路线时,通常不需要再次调用模型做语义定位。

task_map_semantic_adaptation_failed

表示语义点击步骤没有适配成功。

{
  "task_id": "task-20260506-001",
  "route_id": "schedule:morning-checkin",
  "segment_id": "segment-0",
  "step_id": "step-2",
  "reason": "semantic_adaptation_no_match:target not found",
  "ts": "2026-05-06T09:00:07.200+0800",
  "event": "task_map_semantic_adaptation_failed"
}
字段 说明
reason 适配失败原因,例如截图失败、页面控件缺失、模型认为没有匹配目标或目标不唯一。

如果这里失败,任务路线通常会继续降级到视觉执行。常见处理方式是:确认导入任务的描述是否清楚、目标页面是否一致、当前页面是否被弹窗或广告遮挡。

fsm_routing_task_map_fallback

表示路线回放失败,任务降级到视觉执行。

{
  "task_id": "task-20260506-001",
  "package": "com.example.app",
  "segment_id": "segment-0",
  "failed_index": 2,
  "reason": "task_map_locator_missing_fallback",
  "ts": "2026-05-06T09:00:07.000+0800",
  "event": "fsm_routing_task_map_fallback"
}
字段 说明
failed_index 第几步失败。可以结合 step_start / step_end 看具体动作。
reason 降级原因,例如控件找不到、坐标兜底失效、弹窗遮挡等。

fsm_routing_task_map_done

表示路线回放成功。

{
  "task_id": "task-20260506-001",
  "package": "com.example.app",
  "segment_id": "segment-0",
  "steps": 4,
  "ts": "2026-05-06T09:00:08.500+0800",
  "event": "fsm_routing_task_map_done"
}

如果后面紧跟 fsm_routing_task_map_finish_after_replay,说明路线成功后任务直接结束。