用 Codex 写 Listing,产品资料包比提示词重要
让 AI 写 Listing 效果不好,多数时候不是提示词不够精妙,是它手上只有一个产品名。先把产品资料整理成结构化的事实表,再让 Codex 按固定格式生成标题、五点、描述和搜索词,质量会直接上一个台阶。规则里必须写死一条:只能使用资料里出现过的数字,否则它会写出听起来合理但你从没提供过的参数,那是实打实的虚假宣传风险。多站点要用各站点的关键词表重新生成,而不是把一版翻译过去。
先讲结论:问题在资料,不在提示词
「让 AI 写 Listing」是最早被尝试、也最容易失望的一个用法。
写出来的东西通常没错,但也没用——一段放之四海皆准的漂亮话,换个产品也能用。于是很多人得出结论:这活还是得人来。
真实原因往往不是模型不行,是它手上只有一个产品名。它不知道你的产品参数、不知道竞品在写什么、不知道你要投哪些词、不知道差评里对手没解决什么问题。
所以这篇的重点不是提示词怎么写,是资料怎么准备。资料准备好了,剩下的部分反而是最简单的。
产品资料包该有什么
动手之前,先把资料整理成一个目录:
ops/content/product-vc2000/
├── .codex/
│ └── config.toml
├── AGENTS.md
├── product/
│ ├── specs.md 产品参数:尺寸、重量、材质、功率、认证
│ ├── facts.md 可量化事实:续航几小时、噪音几分贝、承重几公斤
│ ├── scenarios.md 使用场景和目标人群
│ └── differences.md 和竞品的差异,以及差评里对手没解决的问题
├── keywords/
│ └── keywords.csv 关键词、搜索量、竞争度
├── competitors/
│ └── top10.md 排名前十的竞品 Listing 原文
└── output/
权限配置很简单,这个活不需要联网:
sandbox_mode = "workspace-write"
approval_policy = "on-request"
[sandbox_workspace_write]
network_access = false
竞品资料是上一篇调研阶段抓的,这里直接用现成的,所以这个目录不需要网络。能不开网络就不开,这是一贯的原则。
facts.md 是最关键的一份
这份文件最容易被跳过,也最影响最终质量。
写的时候有个判断标准:每一条都要能被验证或反驳。
- 「续航强劲」不是事实,「满电续航 45 分钟」是
- 「静音设计」不是事实,「运行噪音 62 分贝」是
- 「适合宠物家庭」不是事实,「配备防缠绕宠物毛刷头,适用于中长毛猫狗」是
为什么这么较真?因为现在的商品页有两类读者。
一类是关键词检索,要的是词的覆盖。另一类是 AI 问答式的商品推荐,买家不再只输入「无线吸尘器」,而是问「有没有适合养猫家庭、能吸地毯、噪音小一点的吸尘器」。回答这种问题的系统,需要的不是关键词密度,而是可以核对的产品事实。
两类读者要的东西不一样,但同一份写得具体的资料能同时喂饱两边。所以不用做两套内容,把一套做扎实就行。
规则里必须写死的一条
AGENTS.md 里有一条约束比其他所有规则加起来都重要:
## 事实约束
- 只能使用 `facts.md` 和 `specs.md` 里出现过的数字,不得自行推算或估计
- 资料里没有的参数,标注「资料缺失」,不要凭常识补
- 不使用绝对化用语,例如最好、第一、100% 有效
- 不做医疗、疗效、安全性方面的功效声明
没有第一条,它会很自然地写出「续航长达 60 分钟」这种听起来合理、但你从没提供过的数字。
这类内容一旦上架,就是实打实的虚假宣传风险。而且它极难被发现——因为读起来完全正常,只有你自己知道那个数字是编的。
测试方法:故意把 facts.md 里的某个参数删掉,让它重新生成一遍。正确的表现是那个位置标注「资料缺失」,而不是填一个合理的数。如果它填了,说明这条约束没起作用,回去改写法。
生成规则怎么写
剩下的部分就是把输出格式定死:
## 标题
- 结构:品牌 + 核心词 + 关键属性 + 适用场景 + 规格
- 长度按目标站点的字符限制,不要超
- 主关键词出现在前 80 个字符内
- 同一个词不重复出现三次以上
## 五点描述
五条各承担不同任务,不要五条都在讲卖点:
1. 核心利益:解决什么问题,带一个可量化的事实
2. 关键参数:尺寸、容量、功率等硬指标,写具体数字
3. 使用场景:谁在什么情况下用,覆盖长尾搜索意图
4. 差异点:竞品差评里没解决的那个问题,正面回答
5. 兼容性与售后:适配范围、包装清单、保修
每条开头用全大写短语概括,后面接完整句子。
## 产品描述
用完整句子写,覆盖 `scenarios.md` 里的每个场景。
这一段重点是把「什么情况下适合、什么情况下不适合」写清楚。
明确写出不适合的场景,不要回避。
## 搜索词
- 只放标题和五点里没有出现过的词
- 不放品牌词、不放竞品品牌、不放与产品无关的热词
- 按目标站点的字节限制截断
「五条各承担不同任务」这一条值得强调。默认情况下它会写出五条都在夸产品的五点描述,信息重复、覆盖面窄。明确分工之后,五条能覆盖利益、参数、场景、差异、售后五个不同维度。
「明确写出不适合的场景」也是反直觉但有效的一条。写清楚边界的商品页,退货率通常更低,而且在 AI 问答里更容易被准确推荐——因为它知道什么时候不该推荐你。
多站点不是翻译
一份产品资料要投多个站点时,最省事的做法是把主站的 Listing 翻译一遍。能用,但会丢掉不少东西。
真正要跟着换的有四样:
- 计量单位:英寸和厘米、磅和公斤,不是换算问题,是当地人习惯用哪个
- 使用场景:同一个产品在不同市场的典型用法可能不同,家庭结构、住房面积、气候都不一样
- 关键词:每个站点的搜索习惯不同,直译过去的词可能根本没人搜
- 合规表述:不同市场对功效宣称、认证标识、警示语的要求不同
所以本地化的正确输入是产品资料包加上这个站点自己的关键词表,而不是「主站 Listing 加翻译」。
目录组织上,给每个站点一份关键词表:
keywords/
├── us.csv
├── jp.csv
└── de.csv
然后按站点分别生成,输出到 output/us/、output/jp/ 这样的子目录。
这也是子代理的好场景:每个站点派一个子代理并行生成,互不干扰。注意让它们各写各的输出目录,避免并行写冲突。
上架前的人工核对清单
生成的 Listing 一律是草稿。上架前至少核这几项:
- 所有数字能不能在产品资料里找到出处
- 有没有绝对化用语和功效宣称
- 有没有出现竞品品牌词
- 类目是否有特殊限制,比如某些类目禁止在标题里写促销信息
- 认证和警示语是否齐全
- 字符数和字节数是否在站点限制内
**这份清单不适合交给 AI 自己检查后自己放行。**它可以帮你把疑似问题标出来,但最后按下发布的必须是人——合规责任落在账号上,不落在工具上。
对应的禁止动作也要写进规则:
## 禁止动作
- 不调用任何平台接口,不修改线上 Listing
- 生成的内容一律视为草稿,上架前必须人工核对
什么时候该重写 Listing
Listing 不需要天天改。值得重写的时机就几个:
- 产品本身有实质变化,比如加了新配件、改了材质
- 差评里出现了新的高频问题,说明商品页没讲清楚
- 关键词表有明显更新,出现了新的高搜索量词
- 进入新站点
频繁改 Listing 反而会让数据变得不可读——你分不清转化率的变化是页面改的,还是市场本身在动。
下一步
内容生成之后是数据维护。下一篇讲独立站:商品信息、库存和 SEO 字段怎么批量维护,以及写操作的边界该卡在哪里。




