| name | alibaba-product-clone-variation |
| description | 国际站同款商品批量差异化改写。用户提供一个源商品(链接或 productId)作为参考,再指定一组目标商品 ID,AI 读取源商品的标题与卖点,按 20%-30% 比例对目标商品的卖点进行改写,使每条 listing 文案彼此不同,避免同款商品被搜索引擎和 AI 抓取时去重,从而扩大曝光覆盖。当用户提到"同款差异化""多 listing 改写""卖点克隆""批量伪原创""一拖多改写""同款不同文案""避免重复 listing""差异化复制商品"等场景时务必使用本技能。即使用户没有用"克隆"这个词,只要意图是"用一个商品的内容去重写另一批商品"也要触发。 |
国际站商品同款差异化改写
把一个源商品的卖点,按 20%-30% 的差异化比例改写后,批量套用到多个目标商品上,让每条 listing 在保持产品事实一致的前提下,文案表述彼此不同。
为什么需要这个技能
国际站上同款产品常常需要发多条 listing(不同关键词、不同市场、不同定价梯度)。如果这些 listing 的卖点、描述完全雷同,搜索引擎和 AI 抓取时会判为重复内容并去重,导致大部分 listing 拿不到曝光。
把每条 listing 的描述做 20%-30% 的差异化改写,就能让每条都被独立索引,整体覆盖更多长尾词和买家搜索意图。但人工逐条改写成本极高,本技能用 AI 做这件机械但需要语义控制的工作。
关键约束:产品的硬性属性(规格、参数、材质、尺寸、电压等数字与事实)必须逐字保留,只改描述方式。否则改出来的 listing 与实物不符,会被买家投诉甚至下架。
涉及的 MCP 工具
本技能通过 accio-mcp-cli 调用以下三个工具:
| 工具 | 用途 | 关键入参 |
|---|
list_products | 查询源商品的标题、卖点、类目 | queryDTO.productId |
list_risk_brand_name | 查询该类目下的风控品牌词,避免改写时踩雷 | catIdList(叶子类目 ID 数组) |
batch_edit_product | 把改写结果写入目标商品 | editList(productId + productTitle + productSellingPoint) |
调用约定:MCP 入参直接以 JSON 对象传入,不需要包 --json 包装。
写入范围说明:batch_edit_product 只支持改写 productTitle 和 productSellingPoint。FAQ、公司简介这类内容不在本技能写入范围内 — 即使源商品有 FAQ/公司简介,本技能也只读取作为上下文参考,不写回目标商品。如果用户问起,向用户说明这一限制。
完整流程
按顺序执行,前一步失败就停下来与用户沟通,不要硬往后走。
第 1 步:从用户输入解析源商品 productId
用户可能提供以下任一形式:
- 完整链接,如
https://www.alibaba.com/product-detail/xxx_1601234567890.html
→ 取最后一个下划线 _ 之后、.html 之前的数字
itemId= 参数,如 https://post.alibaba.com/product/publish.htm?itemId=1601234567890
→ 取 itemId= 后的数字
- 裸 productId 数字,直接用
如果都解析不出,主动询问用户确认 productId,不要猜。
第 2 步:查询源商品信息
调用 list_products:
{"queryDTO": {"productId": <源商品productId>}}
从返回中提取以下字段供后续使用:
data.title.defaultText — 商品标题
data.structuredDescDTO.productSummary.defaultText — 卖点(核心改写对象)
data.categoryQueryResultDTO.leafId — 叶子类目 ID(下一步查风控词用)
data.structuredDescDTO.faq — FAQ(仅作上下文参考,不写回)
data.structuredDescDTO.companyProfile — 公司简介(仅作上下文参考,不写回)
如果商品查不到(已下架、ID 错误等),告知用户并请其确认,不要继续。
第 3 步:展示源商品并索取目标商品 ID
向用户展示源商品的关键信息,用结构化的方式:
📦 源商品参考信息
- 商品 ID:{productId}
- 标题:{title}
- 类目 ID:{leafId}
- 卖点:
1. {sellingPoint1}
2. {sellingPoint2}
...
然后询问:
请提供需要改写的目标商品 ID 列表(用逗号或空格分隔,例如 1601111, 1601222, 1601333)。
我会为每个目标商品生成与源商品风格一致、但彼此差异 20%-30% 的卖点版本,核心属性保持不变。
等用户给出 ID 列表后再继续。如果用户只给了 1 个目标 ID,提醒一下"差异化的价值主要体现在多条 listing 之间互相不同,单个目标也可以做但收益有限"。
第 4 步:查询类目风控词
用第 2 步拿到的 leafId 调用 list_risk_brand_name:
{"catIdList": [<leafId>]}
从 model.result.content.brand_names 取出风控词列表,作为下一步改写的禁用词。
如果此接口失败,不要终止流程,改为用兜底方式继续:跳过此步,并在最终展示给用户的结果末尾加一句"⚠️ 未能获取类目风控品牌词,请人工复核改写文案是否含有违规品牌"。
第 5 步:差异化改写
详细改写规则、禁用词清单、格式要求见 variation-rules.md。在生成前必须先读取该文件,否则容易漏掉敏感词、字符数、格式约束。
简要原则:
- 属性逐字保留:所有数字、单位、材质、规格不能动
- 每个目标商品的改写策略不同:不要让所有目标商品长得像同一个模板
- 整体差异控制在 20%-30%:太少没意义,太多会失真
- 避开风控品牌词与敏感词
为每个目标商品产出独立的改写版本。
第 6 步:展示改写结果,等待用户确认
按目标商品逐个展示,标注每条卖点的改写策略,让用户能一眼看出动了什么:
🔄 目标商品 1:productId = 1601111
卖点(差异化版本):
1. {改写后卖点1} ←【同义替换】
2. {改写后卖点2} ←【句式重构】
3. {改写后卖点3} ←【保持原文】
4. {改写后卖点4} ←【场景补充】
差异化比例:~25%
🔄 目标商品 2:productId = 1601222
...
展示完后明确询问:
以上是差异化改写结果,确认无误请回复"确认写入",需要调整请告诉我具体哪一条怎么改。
没有得到用户明确确认前,绝对不调用 batch_edit_product。 这是写操作,覆盖用户原有 listing 内容,不可逆。
第 7 步:批量写入
用户确认后调用 batch_edit_product:
{
"editList": [
{
"productId": <目标商品ID>,
"productTitle": "<标题,默认与源商品一致>",
"productSellingPoint": "<改写后卖点,多条用 \\n 分隔>"
}
]
}
一次性把所有目标商品打包提交。如果接口对单条返回成功/失败状态,按条记录。
第 8 步:展示写入结果
以表格形式展示每条目标商品的写入结果:
| 商品 ID | 差异化比例 | 状态 | 操作链接 |
|---|
| 1601111 | ~25% | ✅ 成功 | 管理页 |
| 1601222 | ~22% | ✅ 成功 | 管理页 |
| 1601333 | ~28% | ❌ {错误信息} | 编辑页 |
写入失败的商品,附上其单独的编辑页链接,方便用户手动处理。
错误处理对照表
| 场景 | 处理方式 |
|---|
| URL 无法解析出 productId | 询问用户提供裸 ID |
| 源商品查询失败(已下架/ID 错) | 告知用户原因,不继续 |
| 风控词接口失败 | 跳过,最终结果加风控复核提示 |
写入返回 Param is blank | 必填项为空,提示用户对应字段 |
写入返回 CheckProductScore fail | 改写后质量分降低,建议调整文案 |
| 写入返回未知错误 | 原文展示给用户,附编辑页链接由用户处理 |
| MCP 网络错误 | 自动重试一次,仍失败则停下来报告 |
不可违反的安全规则
- 写入前必须用户确认。
batch_edit_product 是不可逆的覆盖操作。
- 不猜 productId。无法解析就问,不替用户决定。
- 不动产品事实。规格、参数、材质、数字单位逐字保留。
- 不写 FAQ / 公司简介。
batch_edit_product 不支持,不要承诺给用户。
- 不踩风控词。改写文案必须避开类目风控品牌词与敏感词清单(见 references)。