「还需要人工确认 → 效果和以前一样」这一句不成立:AI 匹配 与 创建采购 在图搜之前的流程里本来就是批量的两次点击,图搜没有新增任何点击。图搜消除的是每个商品 4~6 步手工(开 PDD、拍照搜索、肉眼挑、打开商品、点采集、回 Admin 手动关联)。
AI 匹配
创建采购
但用户描述的真实摩擦成立,只是原因不同:图搜是异步的,Agent 在手机上跑几分钟,采购员必须离开页面、稍后回来、重新勾选、再点 AI 匹配。旧流程虽然全手工但一气呵成,现在被切成两段,中间靠人记着回来。这个断层是图搜引入的。
[必须] 因此自动匹配必须接在图搜任务完成之后(与 autoLinkImageSearch 同一个钩子)。曾考虑在图搜批量结果对话框加一个匹配按钮,该方案不成立:该对话框在任务创建后立刻弹出,此时 Agent 一个都还没执行。
[必须]
autoLinkImageSearch
图搜采集完成并成功建立关联后,自动对该任务覆盖的 SYB 明细触发一次规格匹配,使其尽可能到达「采购就绪」。
pending
mappingTargetsValid
BatchSpecMatch
图搜找到商品(未核)→ 自动关联 → AI 匹配规格(无置信度门槛)→ 采购就绪
[必须] #200 已明确取消 SYB 批量入口的置信度门槛:
// #200:在 SYB 批量入口,AI 只要返回了可保存的规格结果,就由后续的 // 候选与可售 SKU 组合校验决定是否放行;置信度仅保留为审计信息。 autoConfirm := qualification.Deterministic != nil || (matched.Source == aimatching.SourceAI && strings.TrimSpace(matched.Decision.Reason) != "")
所以不能以「置信度阈值会兜住」来论证安全性。真实案例:订单 260911QDM57K2C 的明细 14561,虾皮尺码 L 50-55公斤 需匹配 PDD 的 L 95-105(斤),AI 要自行完成单位换算;颜色 黑色 微喇長褲夏款 对 黑色 微喇夏天款长裤 是繁简加词序差异。两者都可能对,但没有人看过。
L 50-55公斤
L 95-105
黑色 微喇長褲夏款
黑色 微喇夏天款长裤
补偿控制只剩 image_search_linked 标记,它已显示在虾皮/SYB 商品页、批量采购预览与采购任务列表(#279 第 5 条)。本工单将其语义从「商品是机器找的」扩展为「商品由图搜找到、规格由 AI 自动匹配,均未经人工确认」,界面文案同步调整。
image_search_linked
task/result_service.go
SYBProductIDs
purchase.Service.BatchSpecMatch
task
purchase
SubmitResult
source='image_search'
后端钩子 + 现有界面的文案调整,属显示文案,执行最小界面检查。
go build ./...;go test ./app/goauto/task/... ./app/goauto/purchase/...;Web 构建。
go build ./...
go test ./app/goauto/task/... ./app/goauto/purchase/...
[必须] app/goauto/sybimport 存在 12 个先于本工单的失败用例(#285),前后失败集合必须一致,不得新增。
app/goauto/sybimport
图搜链路行为变化,需更新 docs/08-agent-api-contract.md 中 #275~#280 章节的「结果自动关联」一节。
docs/08-agent-api-contract.md
No dependencies set.
The note is not visible to the blocked user.
原始需求
事实澄清
「还需要人工确认 → 效果和以前一样」这一句不成立:
AI 匹配与创建采购在图搜之前的流程里本来就是批量的两次点击,图搜没有新增任何点击。图搜消除的是每个商品 4~6 步手工(开 PDD、拍照搜索、肉眼挑、打开商品、点采集、回 Admin 手动关联)。但用户描述的真实摩擦成立,只是原因不同:图搜是异步的,Agent 在手机上跑几分钟,采购员必须离开页面、稍后回来、重新勾选、再点 AI 匹配。旧流程虽然全手工但一气呵成,现在被切成两段,中间靠人记着回来。这个断层是图搜引入的。
[必须]因此自动匹配必须接在图搜任务完成之后(与autoLinkImageSearch同一个钩子)。曾考虑在图搜批量结果对话框加一个匹配按钮,该方案不成立:该对话框在任务创建后立刻弹出,此时 Agent 一个都还没执行。目标
图搜采集完成并成功建立关联后,自动对该任务覆盖的 SYB 明细触发一次规格匹配,使其尽可能到达「采购就绪」。
非目标
创建采购仍然必须由人点击。这是整条链上唯一的人工检查点。pending,人工确认;mappingTargetsValid复核(#283)。BatchSpecMatch现有的匹配与自动确认逻辑。风险:这条链将没有任何人工环节
[必须]#200 已明确取消 SYB 批量入口的置信度门槛:所以不能以「置信度阈值会兜住」来论证安全性。真实案例:订单 260911QDM57K2C 的明细 14561,虾皮尺码
L 50-55公斤需匹配 PDD 的L 95-105(斤),AI 要自行完成单位换算;颜色黑色 微喇長褲夏款对黑色 微喇夏天款长裤是繁简加词序差异。两者都可能对,但没有人看过。补偿控制只剩
image_search_linked标记,它已显示在虾皮/SYB 商品页、批量采购预览与采购任务列表(#279 第 5 条)。本工单将其语义从「商品是机器找的」扩展为「商品由图搜找到、规格由 AI 自动匹配,均未经人工确认」,界面文案同步调整。方案
task/result_service.go现有autoLinkImageSearch之后追加一个钩子:关联确实写入时,取图搜快照里的SYBProductIDs,调用既有purchase.Service.BatchSpecMatch。task包目前不依赖purchase,purchase也不依赖task,直接引用不构成循环依赖。SubmitResult失败。采集已经完成,不能因为后续的可选增强而回滚。source='image_search'且本次确实写入关联的任务触发;关联被乐观并发谓词拒绝时不触发。设计证据
后端钩子 + 现有界面的文案调整,属显示文案,执行最小界面检查。
验收
创建采购仍需人工点击,未出现任何自动下单路径。验证
go build ./...;go test ./app/goauto/task/... ./app/goauto/purchase/...;Web 构建。[必须]app/goauto/sybimport存在 12 个先于本工单的失败用例(#285),前后失败集合必须一致,不得新增。文档影响
图搜链路行为变化,需更新
docs/08-agent-api-contract.md中 #275~#280 章节的「结果自动关联」一节。