<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Mulish:300,300italic,400,400italic,700,700italic%7CFredericka%20the%20Great:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20JP:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20SC:300,300italic,400,400italic,700,700italic%7CInconsolata:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext">AI 驱动的亚马逊选品流水线:从 MCP 筛选到 Excel 报表 - AI 应用 | 完美世界 = 荒天帝

一套可靠的 AI 选品系统,不应只是 “搜索商品后让模型打分”,而应把数据检索、规则过滤、视觉分析、侵权预警、浏览器采集和报表交付组织成可验证、可恢复的工程流水线。

本文基于一个亚马逊美国站选品项目的代码结构,梳理其设计思路、执行顺序和改进方向。文中的模块名用于说明架构;账号、密钥、内网地址和真实人员信息均已移除。

第三方平台页面、接口和自动化政策可能变化。实施前应确认当前版本、账号权限、调用配额和平台规则,并优先使用获准的官方能力。

# 一、项目要解决什么问题

人工选品通常需要反复完成以下工作:

  1. 根据关键词搜索大量商品;
  2. 判断标题、主图和使用场景是否符合目标类目;
  3. 分析价格趋势与异常波动;
  4. 排查品牌、角色和知识产权风险;
  5. 打开第三方分析页面补充数据;
  6. 汇总为带图片、可审阅的 Excel 报表。

这个项目把上述过程拆成三层:

层次主要职责
数据检索层通过 MCP 工具获取商品、价格趋势和流量关键词
AI 与规则筛选层使用 Dify 工作流、确定性规则和词库逐步缩小候选集
采集与交付层通过受控浏览器补充页面证据,最终写入 Excel

核心目标不是让 AI 代替所有判断,而是让确定性规则、模型判断和人工复核各自承担合适的职责。

# 二、总体架构

关键词与业务参数
MCP 商品搜索
逐轮候选集
标题分析 → 主图分析 → 价格趋势 → 风险词检测
ASIN 清单与检查点
第三方数据导出
浏览器采集与视觉分析
数据校验、图片嵌入与 Excel 报表

项目采用 “逐轮处理” 而不是一次加载全部商品。每轮搜索完成后立即筛选,并把通过的 ASIN 交给后续阶段。这种设计有三个好处:

  • 降低一次性内存占用;
  • 让长任务尽早产出结果;
  • 单轮失败时可以从检查点恢复,不必全部重跑。

# 2.1 建议的代码分层

原项目的活动代码集中在 scrpit_test/ 。从长期维护角度看,建议逐步迁移为更清晰的结构:

src/
├── config/             # 配置模型、参数校验、密钥引用
├── adapters/
│   ├── mcp/            # 商品、Keepa、流量词等 MCP 适配器
│   ├── dify/           # 文本与图片工作流适配器
│   ├── browser/        # 浏览器会话与页面适配器
│   └── excel/          # 报表输出与回滚
├── domain/             # 商品、价格序列、筛选结果等领域模型
├── pipeline/           # 阶段编排、状态机、检查点
├── policies/           # 类目、价格、侵权和失败策略
└── observability/      # 日志、指标、审计与通知

这样可以把平台变化限制在适配器中,避免页面选择器、业务规则和 Excel 写入逻辑互相耦合。

# 三、三阶段流水线

# 3.1 阶段一:MCP 搜索与多层筛选

主编排器以生成器方式逐轮获取商品。逻辑步骤编号与实际执行顺序并不完全相同,当前推荐顺序是:

执行顺序逻辑步骤能力说明
1Step 1MCP 商品搜索分页获取候选商品并写入本轮原始文件
2Step 2Dify 文本分析根据标题判断类目、场景和初步价值
3Step 3暂停五点描述筛选当前直接放行
4Step 5暂停上架时长移动到后续采集阶段
5Step 6Dify 视觉分析先用主图过滤明显不合适的商品
6Step 4MCP + 统计规则对缩小后的集合执行价格趋势分析
7Step 7MCP + 词库获取流量词并进行知识产权风险预警
8Step 8本地输出生成 JSON、ASIN 清单和检查点

主图分析提前到价格趋势之前,可以减少较昂贵的数据请求,但需要用真实数据验证 “节省配额” 是否会牺牲召回率。

# 为什么暂停步骤不能被悄悄忽略

Step 3 和 Step 5 虽然暂时跳过,仍应在结果中明确记录:

{
  "step": "description_filter",
  "status": "skipped",
  "reason": "disabled_by_policy",
  "policy_version": "2026-08"
}

否则下游使用者容易把 “未执行” 误认为 “已通过”。

# 3.2 阶段二:第三方分析数据导出

阶段二读取本轮 ASIN 清单,通过受控浏览器进入第三方分析工具并下载竞品数据。

关键控制点包括:

  • 只操作明确授权的账号和店铺;
  • 使用稳定的任务 ID 关联输入清单与下载文件;
  • 记录运行前后的下载目录快照;
  • 校验导出文件中的 ASIN 覆盖率;
  • 不按文件修改时间盲目选择 “最新文件”;
  • 下载文件进入隔离目录后再解析。

如果导出数量低于预期阈值,应把本轮标记为 “不完整”,而不是直接进入最终报表。

# 3.3 阶段三:浏览器采集与 AI 分析

阶段三读取导出的 Excel,为每个 ASIN 补充页面数据和图片证据:

打开商品页
→ 校验 ASIN 和站点
→ 获取流量关键词
→ 采集价格与销量图表
→ 下载主图和必要截图
→ 识别变体与上架信息
→ 执行风险规则和 AI 分析
→ 增量写入中间结果
→ 生成最终带图报表

验证码、MFA 和安全挑战应转交人工处理,不应通过模型或脚本绕过。自动化恢复后,需要重新校验 ASIN、账号和页面状态。

# 四、核心模块职责

# 4.1 配置中心

配置层应负责:

  • 命令行参数和环境变量解析;
  • 关键词、节日和日期区间映射;
  • 并发、限流、超时和重试参数;
  • 允许域名、目标站点和输出路径;
  • 策略版本与功能开关;
  • 必填项、格式和互斥项校验。

配置不应直接保存真实密钥。推荐只保存 “密钥名称” 或安全存储引用。

# 4.2 MCP 适配器

MCP 适配器统一包装:

  • 商品搜索;
  • Keepa 或同类价格序列;
  • 流量关键词;
  • 商品详情。

适配器应把平台响应转换为稳定的内部模型,例如:

@dataclass
class ProductCandidate:
    asin: str
    marketplace: str
    title: str
    image_url: str | None
    price_currency: str
    source_timestamp: datetime

上层流水线不应直接依赖第三方返回字段。

# 4.3 Dify 工作流客户端

Dify 客户端承担文本和图片工作流调用,但不应该成为业务规则的唯一来源。

建议为每次调用记录:

  • 工作流与 Prompt 版本;
  • 输入内容哈希;
  • 模型输出原文;
  • 结构化解析结果;
  • 解析失败原因;
  • 调用耗时和重试次数。

模型输出必须经过 JSON Schema 或等价结构校验,不能仅靠正则从自由文本中 “猜” 结果。

# 4.4 价格趋势分析

原有逻辑包含最低价、月内跌幅、跨月跌幅、整体趋势和异常点等规则。更稳妥的做法是把规则配置化:

price_policy:
  minimum_price: 10
  first_month_drawdown_limit: 0.20
  month_to_month_drop_limit: 0.08
  overall_drop_limit: 0.08
  currency: USD
  timezone: America/Los_Angeles

还应明确:

  • 缺失天数如何处理;
  • 促销价、优惠券和变体价是否纳入;
  • 使用均值、中位数还是加权价格;
  • 异常点剔除前后是否保留两份结论;
  • 数据不足时返回 “无法判断”,而不是默认通过。

统计检验只能辅助解释,不能替代业务阈值与数据质量检查。

# 4.5 知识产权风险预警

词库匹配适合作为低成本预警层,但不等同于法律结论。

推荐采用:

  1. 标准化大小写、连字符和 Unicode;
  2. 词边界与短词例外;
  3. 品牌、角色、作品和高风险主题分组;
  4. 标题、关键词、图片 OCR 分别记录命中来源;
  5. 白名单、别名和误报复核;
  6. 定期更新词库版本。

最终结果应写成 “风险提示,需要复核”,而不是 “确认侵权”。

# 五、并发、限流与重试

项目同时使用异步任务、线程池和浏览器并发。并发越高不一定越快,必须同时受以下资源约束:

资源需要控制的内容
MCP每分钟配额、突发限制、分页大小
Dify工作流并发、上传大小、总超时
浏览器标签页数量、内存、渲染稳定性
Excel文件锁、写入互斥、图片内存
网络连接池、DNS、代理和总带宽

重试策略应按错误类型决定:

错误类型示例策略
瞬时错误超时、限流、临时网络失败指数退避并限制次数
数据错误字段缺失、金额格式异常记录并进入人工复核
身份错误ASIN、账号或站点不匹配立即停止当前任务
安全挑战CAPTCHA、MFA人工接管
页面漂移选择器或字段结构改变熔断并维护适配器
输出错误文件占用、写入校验失败回滚,不继续覆盖

非幂等动作不能自动重试。

# 六、检查点与断点续跑

检查点文件是长任务可恢复的关键,但仅保存 “已处理列表” 还不够。建议包含:

{
  "run_id": "run_demo_001",
  "round": 1,
  "step": "price_filter",
  "input_hash": "<sha256>",
  "policy_version": "2026-08",
  "completed_asins": [],
  "failed_asins": [],
  "created_at": "<ISO-8601>",
  "updated_at": "<ISO-8601>"
}

恢复前必须校验输入哈希、策略版本和代码版本。否则旧检查点可能把已经变化的商品或规则错误地标记为完成。

检查点应先写临时文件,再通过同卷原子替换提交,避免进程中断留下半个 JSON。

# 七、Excel 报表的可靠写入

最终报表不仅是展示结果,也是交付物。推荐流程:

  1. 先生成结构化中间数据;
  2. 校验 ASIN 唯一性、站点、币种和必填字段;
  3. 把图片下载到受控缓存并验证类型与大小;
  4. 写入临时工作簿;
  5. 重新打开并校验工作表、行数、主键和公式;
  6. 为已有文件创建备份;
  7. 原子替换正式文件;
  8. 记录文件哈希、运行 ID 和生成时间。

外部文本以 = + - @ 开头时,需要防范 Excel 公式注入。图片、URL 和模型输出也应视为不可信输入。

# 八、Prompt 设计原则

标题和主图筛选可以采用分层 Prompt:

第一层:一票否决条件
→ 明显不属于目标场景
→ 高风险品牌或角色元素
第二层:核心保留条件
→ 节日或主题氛围
→ 设计功能
→ 目标符号或使用场景
第三层:价值分级
→ 可扩展的高优先级
→ 形态单一的普通优先级
→ 证据不足,人工复核

Prompt 中应要求模型输出 “结论 + 证据 + 置信度 + 不确定性”,并保留结构化 Schema。业务阈值和禁止项仍应由代码配置控制。

# 九、安全配置示例

公开文档只能使用占位符:

MCP_URL=https://mcp.example.com/mcp
MCP_API_KEY=<FROM_SECRET_STORE>
DIFY_BASE_URL=https://dify.example.com/v1
DIFY_APP_KEY=<FROM_SECRET_STORE>
MODEL_API_KEY=<FROM_SECRET_STORE>
BROWSER_ACCOUNT=<FROM_SECRET_STORE>
BROWSER_PASSWORD=<FROM_SECRET_STORE>

推荐优先级:

系统凭据库或密钥服务
→ CI/CD 加密变量
→ 仅限本机且不进入版本控制的环境文件

还应执行:

  • .env 加入 .gitignore
  • 日志按字段白名单脱敏;
  • URL 不记录密钥查询参数;
  • 截图和下载文件设置访问权限与留存期限;
  • 泄露过的密钥立即吊销和轮换;
  • 测试环境与生产环境使用不同凭据。

# 十、安全的运行方式

示例命令使用匿名参数,不包含密钥或人员信息:

python run.py `
  --keyword "Halloween decor" `
  --operator "test-user" `
  --marketplace "US" `
  --month "2026-09" `
  --date-range "7-10" `
  --max-rounds 1 `
  --dry-run

推荐按以下顺序晋级:

配置校验
→ 单元测试
→ 录制数据回放
→ 单轮 dry-run
→ 单轮只读执行
→ 人工检查结果
→ 小批量金丝雀
→ 正式批量

# 十一、验收清单

# 数据与规则

# 稳定性

# 输出与安全

# 结语

AI 选品流水线的价值,不只在于减少人工点击,更在于把选品逻辑变成可审阅的规则、证据和数据契约。

当 MCP 负责稳定取数、AI 负责处理非结构化判断、确定性代码负责校验与安全边界、人工负责授权和疑难复核时,这套系统才具备持续演进的基础。