规格探测:面板已在顶部仍回顶滑动导致读出空规格(8580,任务551/552) #334

Open
opened 2026-09-22 11:21:12 +08:00 by ila · 0 comments
Owner

来源与原始需求摘要

2026-09-22,线上采购任务 551、552(PDD 商品 8580,设备 8)在规格探测阶段读出空结果后失败,报 PURCHASE_SPEC_NOT_MATCHED“没有找到可采购的 PDD 颜色或尺码”。用户现场观察:“规格面板向下滑动两次,看不到颜色和尺码文字”。用户要求建单并由子 Agent 实施。

当前事实(main 433a254,2026-09-22)

  • 551(Agent 0.9.59)、552(0.9.60)结果相同:Agent 本地保存的探测结果 status=completed_partial、dimensions=[],missing 含 color、size、title、shopName、salesText、reviewCount。服务端 probedCandidates 判定不完整 → NoMatch。
  • 同一启动方式(https 商品链接,flags 0x10008000)打开 8580 商品页,2 秒内标题、价格、“颜色 款式”入口均正常加载,页面加载不是原因。
  • 探测流程:PurchaseRehearsalExecutor 打开规格面板后,AgentForegroundService.collectPurchaseProbe 对当前屏幕调用 PddProductDetailCollector.collect。
  • 本地复现(真机导出的 8580 规格面板样本 + 记录动作的假驱动,临时测试未提交):采集器首先执行 2 次 swipeSpec(DOWN)(moveSpecPanelToTop,约 1605 行),随后右滑 2 次、点击 3 个颜色、再上下滑读尺码。静止样本下能读出颜色 3 个、尺码 6 个。
  • moveSpecPanelToTop 在第一次循环时无条件滑动,需连续两次视口签名一致才停止,因此即使面板已在顶部也至少滑 2 次。

推断(未验证)

面板打开时已在顶部,此时“手指向下”滑动无法再滚动列表,底部弹层被整体下拖,颜色/尺码标题移出可见区,后续解析得到空维度。需在修复后通过真机或诊断证实。

目标

  1. 规格面板已在顶部时不做“回顶”滑动:若首个规格标题(颜色类)已可见且位于面板规格区顶部,直接跳过 moveSpecPanelToTop 的滑动。
  2. 滑动后若可见规格标题/维度反而消失(面板被拖动),停止滑动并明确失败或恢复,不得把空结果当作“完成”上报。
  3. 规格探测读不到任何规格维度时,Agent 报明确失败(如 PURCHASE_SPEC_PROBE_EMPTY“规格探测未读取到任何颜色或尺码”),不再以 spec_probe_completed 上报空结果;服务端对空探测结果给出同样明确的错误,而不是“规格不匹配”。
  4. 探测诊断:滑动次数、滑动前后可见的规格标题数量/维度数、面板类型;不含个人信息。

非目标

不改规格匹配(服务端 AI 决策,#46)、不改下单/地址/支付流程、不改 #331/#332 的面板识别与去重逻辑;不使用 OCR/VLM;不保存原始控件树或截图。

子项目影响

Android(主要);Server(空探测结果错误码与提示,purchase/lifecycle.go resolveProbedSpecs/probedCandidates 附近)。如新增错误码,同步 docs/08-agent-api-contract.md 对应 Wiki。

验收

  1. 单测:面板已在顶部(首个颜色标题可见)→ 不调用回顶滑动,仍能读出颜色和尺码。
  2. 单测:面板不在顶部 → 仍按原逻辑回顶,行为不变。
  3. 单测:模拟滑动后标题消失 → 停止滑动并明确失败,不返回空的成功结果。
  4. 单测:探测零维度 → Agent 报 PURCHASE_SPEC_PROBE_EMPTY(或等价明确错误);服务端对空探测给出明确错误,不再是“没有找到可采购的 PDD 颜色或尺码”。
  5. 既有采集/采购/探测测试无回归;Android 全量单测和受影响 Server 包测试通过。
  6. 真机回归(需单独授权):8580 及至少 2 款以前采集正常的商品。

风险

影响所有商品的采集与采购规格探测,高风险;用户已授权实施代码与单测,真机/发布另行授权。回退:还原采集器滑动判断与错误码变更。

文档影响

更新业务规则(探测空结果处理);新增错误码时同步 Agent API 契约。

## 来源与原始需求摘要 2026-09-22,线上采购任务 551、552(PDD 商品 8580,设备 8)在规格探测阶段读出空结果后失败,报 `PURCHASE_SPEC_NOT_MATCHED`“没有找到可采购的 PDD 颜色或尺码”。用户现场观察:“规格面板向下滑动两次,看不到颜色和尺码文字”。用户要求建单并由子 Agent 实施。 ## 当前事实(main 433a254,2026-09-22) - 551(Agent 0.9.59)、552(0.9.60)结果相同:Agent 本地保存的探测结果 `status=completed_partial`、`dimensions=[]`,missing 含 color、size、title、shopName、salesText、reviewCount。服务端 `probedCandidates` 判定不完整 → NoMatch。 - 同一启动方式(https 商品链接,flags 0x10008000)打开 8580 商品页,2 秒内标题、价格、“颜色 款式”入口均正常加载,页面加载不是原因。 - 探测流程:`PurchaseRehearsalExecutor` 打开规格面板后,`AgentForegroundService.collectPurchaseProbe` 对当前屏幕调用 `PddProductDetailCollector.collect`。 - 本地复现(真机导出的 8580 规格面板样本 + 记录动作的假驱动,临时测试未提交):采集器首先执行 **2 次 `swipeSpec(DOWN)`**(`moveSpecPanelToTop`,约 1605 行),随后右滑 2 次、点击 3 个颜色、再上下滑读尺码。静止样本下能读出颜色 3 个、尺码 6 个。 - `moveSpecPanelToTop` 在第一次循环时无条件滑动,需连续两次视口签名一致才停止,因此即使面板已在顶部也至少滑 2 次。 ## 推断(未验证) 面板打开时已在顶部,此时“手指向下”滑动无法再滚动列表,底部弹层被整体下拖,颜色/尺码标题移出可见区,后续解析得到空维度。需在修复后通过真机或诊断证实。 ## 目标 1. 规格面板已在顶部时不做“回顶”滑动:若首个规格标题(颜色类)已可见且位于面板规格区顶部,直接跳过 `moveSpecPanelToTop` 的滑动。 2. 滑动后若可见规格标题/维度反而消失(面板被拖动),停止滑动并明确失败或恢复,不得把空结果当作“完成”上报。 3. 规格探测读不到任何规格维度时,Agent 报明确失败(如 `PURCHASE_SPEC_PROBE_EMPTY`“规格探测未读取到任何颜色或尺码”),不再以 `spec_probe_completed` 上报空结果;服务端对空探测结果给出同样明确的错误,而不是“规格不匹配”。 4. 探测诊断:滑动次数、滑动前后可见的规格标题数量/维度数、面板类型;不含个人信息。 ## 非目标 不改规格匹配(服务端 AI 决策,#46)、不改下单/地址/支付流程、不改 #331/#332 的面板识别与去重逻辑;不使用 OCR/VLM;不保存原始控件树或截图。 ## 子项目影响 Android(主要);Server(空探测结果错误码与提示,`purchase/lifecycle.go` `resolveProbedSpecs`/`probedCandidates` 附近)。如新增错误码,同步 `docs/08-agent-api-contract.md` 对应 Wiki。 ## 验收 1. 单测:面板已在顶部(首个颜色标题可见)→ 不调用回顶滑动,仍能读出颜色和尺码。 2. 单测:面板不在顶部 → 仍按原逻辑回顶,行为不变。 3. 单测:模拟滑动后标题消失 → 停止滑动并明确失败,不返回空的成功结果。 4. 单测:探测零维度 → Agent 报 `PURCHASE_SPEC_PROBE_EMPTY`(或等价明确错误);服务端对空探测给出明确错误,不再是“没有找到可采购的 PDD 颜色或尺码”。 5. 既有采集/采购/探测测试无回归;Android 全量单测和受影响 Server 包测试通过。 6. 真机回归(需单独授权):8580 及至少 2 款以前采集正常的商品。 ## 风险 影响所有商品的采集与采购规格探测,高风险;用户已授权实施代码与单测,真机/发布另行授权。回退:还原采集器滑动判断与错误码变更。 ## 文档影响 更新业务规则(探测空结果处理);新增错误码时同步 Agent API 契约。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#334