格致GEZHI · GZ
3F · 工作室工作室

只放完全自己做出来的东西:平台级项目、飞书技能包、技术点拆解,外加一篇平台白皮书。

工作室UNIT S31 · 让品类策略长出牙齿:从一份文档到 PLM 校验规则

STUDIO · SPEC SHEET · UNIT S31

让品类策略长出牙齿:从一份文档到 PLM 校验规则

品类管理方法设计 胡安更新于 2026-09

角色业务发起+独立交付
场景品类策略系统落地
技术栈飞书 Aily · Python 流水线 · PLM 属性组合校验
成果规格外物料禁止生成,全链路留痕可追溯
封面:让品类策略长出牙齿——从一份文档到 PLM 校验规则的三代工具
图 · 封面 · 三代工具,把一份给人看的策略文档,变成 PLM 里新物料绕不过去的校验规则

两张纸之间,隔着一次人工翻译

在某大型家电集团做品类管理,都知道两张纸之间的鸿沟。上面一张是品类策略文档,管理层的语言——这个品类今年买什么、不买什么、跟哪些供应商走、要防什么供应风险。下面一张是规格标准,执行层的语言——具体到物料的属性字段、参数约束、组合规则,以及它们在产品生命周期管理(PLM)系统里怎么设校验。策略是「方向」,规格是「准绳」。

这个翻译环节我亲手做过多年,痛点闭着眼睛能数出三个:

  1. 。通读策略、翻成属性、对着物料数据核、再整理成规格表,一版要做 2-3 天。
  2. 质量看人。策略里一句「优先高可靠方案」,落到执行层是哪几个参数区间、哪些材质约束,不同人翻出来不一样。漏一条约束,下游就按错的规格执行,等发现时物料可能已经进 BOM 了。
  3. 策略没有牙齿。就算规格表做出来了,它在 PLM 里也不生效——新增物料靠审核员记着策略去把关,人力占用多,把关作用反而弱,策略之外的规定外规格照样能生成出来。

所以当工具链成熟,我前后迭代了三代来收编这个环节:第一代解决「慢」,把翻译做成工作流;第二代解决「质量看人」,把流程固化成流水线并用协议锁死编造;第三代解决「没有牙齿」,让产物直接落进 PLM 变成校验规则。这篇文章把三代一次讲完——它最终回答的只有一个问题:一份策略,怎么才能不只是纸。

两张纸之间的鸿沟:上层品类策略文档的管理语言,下层规格标准的执行语言,中间是一次质量看人的人工翻译
图 · 策略是方向,规格是准绳,中间隔着一次质量看人的人工翻译

第一代:把翻译做成工作流

Aily 工作流能力一成熟,我第一个就想收编这个环节。整套系统是平台上的两节点工作流:一个 Agent 节点加一个 Python 代码节点。流程五步:策略要点结构化输入 → 大模型解析出属性、约束、组合关系 → 三级属性匹配 → 自动生成规格管理表、PLM 校验规则和文档报告 → 全流程留痕。从粘贴策略要点到拿到成套产出,30 分钟——痛点一的答案。

哪些给模型,哪些必须留人工

这是我拆得最用心的地方,原则一句话:模型做「读和写初稿」,代码做「匹配和格式」,人做「拍板」。

  • 交给模型:非结构化文档的理解、要点抽取、字段归类、初稿生成。这是它的主场,让它读透「优先高可靠方案」背后对应的工程含义。
  • 交给代码:属性匹配和输出生成。三级匹配算法——先精确匹配属性名,不行走语义匹配,再不行给模糊候选。输出规格表和 PLM 校验规则由代码按固定模板生成,格式永远整齐。
  • 必须留人工:模糊匹配给出的候选必须人确认——机器可以说「这两个属性看起来是一回事」,但「是不是一回事」的最终责任在人;以及发布前的最后一道审核。系统生成的是草稿,按下去的按钮必须是人的。

prompt 调了三次弯路才顺

第一,强制结构化输出:prompt 里写死输出格式,模型必须按字段吐 JSON,自由发挥的文字一律不要——没有这一步,后面的代码节点根本接不住。第二,建术语映射知识库:把策略层的说法和执行层的参数对应关系整理成对照表喂进去,「高端」对应哪些参数区间、「高可靠」对应哪些材质和寿命约束,不再指望模型自己猜。第三,教它区分硬约束和偏好描述:策略里「必须」「禁止」要变成校验规则,「优先」「倾向」只能进备注——这两类混在一起,是早期版本最大的错误来源。

这一代很快,也够用了一阵子。但它是对话式触发、单次生成,产出稳定性依赖当次的模型状态,过程经验散落在一次次对话里攒不下来。痛点二和痛点三,它都没有真正回答。

三层分工:模型读和写初稿,代码做匹配和格式,人做拍板;三级匹配算法精确→语义→模糊候选
图 · 三层分工:模型读初稿,代码管格式,人拍板——责任边界画清楚,谁也不能越界

第二代:六步流水线与七条铁律

第二代把整件事固化成一个技能包:6 个脚本、约 4000 行 Python,版本号迭代到 v67.40,一个月的更新日志里留下 60+ 条记录——每一条都是一次真实踩坑。

先说它防的是什么。生成型智能体最大的风险不是笨,是装懂:拿不到数据就编一份,脚本报错就自己悄悄换条路走。对治装懂的办法,不是在提示词里反复恳求「请诚实」,而是把约束写成人机协议。说明文件里有一节叫「核心铁律(违反即失败)」,最要紧的五条原文节选:

铁律协议原文(节选)
封装黑盒只做一件事:生成并执行 python3 <脚本路径> 命令。严禁用内置 Bash、fetch、MCP 工具替代脚本。脚本报错时严禁自行修复,把原始输出反馈给用户
强制落盘严禁仅在聊天界面输出 JSON
禁止预检所有 URL 可访问性、权限、文档检查均由脚本内部处理,智能体不预检
禁止复用历史数据用户每次提供的策略文档格式和内容可能不同。即使脚本报错「无法解析文档」,也必须如实反馈给用户
禁止凭空编造严禁从常识或历史经验猜测属性值、从同品类其他策略文档推断、不报错直接编造数据继续执行

每一条铁律都对应一次线上事故。

六步流水线,坑都在细节里

流水线六步,每步都有真坑:取品类信息(品类名里带竖线会被 shell 拆成管道命令,脚本把拆散的参数重新拼接还原);导出物料明细(先用官方 API 拿真实字段顺序再重排数据,has_more 不可靠就改用返回记录数判断);分析物料属性(逐字段做值分布统计,空值字段也生成记录,防止下游漏字段);解析策略文档(按表格 8 秒、云文档 30 秒、多维表格 10 秒的顺序探测分发;平台改写链接 token 大小写导致取不到文档,脚本就对 token 前十个字符逐个翻转大小写重试——不抱怨平台,自己试出来);属性映射与建表生成报告与思维导图

第二代六步流水线:黑盒封装、两阶段人机握手、组合 5000 条硬上限加 truncated 诚实标记、三道防线
图 · 第二代:六步流水线,黑盒封装 + 两阶段人机握手 + 5000 组合硬上限

第五步是全流水线最精巧的一步。脚本调不了 AI,就把流程设计成两阶段握手协议:第一次运行脚本,输出映射提示后主动退出——说明文件里明确注明这是「正常现象」,中途退出不是失败;AI 补写映射文件;第二次运行读取映射,建表写数。组合表的生成最后卡 5000 条硬上限(从最初的 50000 降下来,防止笛卡尔积把内存和 API 双双打爆)。超限不隐瞒:打 truncated 标记,报告里插一条黄色警告,提示精简属性值或补充约束后重新生成。

提示词工程上有一条教训值得单独说。v60 的更新日志原文:「脚本生成的 AI prompt 中移除『内容为空时尝试自行搜索』的提示(这是导致 AI 自行搜索知识库的根本原因)」——提示词里一句好心的降级建议,反而诱发智能体越权找数据。删掉一句话,比加十条「禁止乱搜」有效。后来还有一条「先引用再写入」:凭记忆写 token 会大小写失真,于是强制 AI 先在回复里用代码块逐字引用链接,再写入文件——代码块等于引用原文等于保真,写文件等于凭记忆等于失真。

这套流水线后来有了平台化入口:授权策略文档后,输入品类与文档链接即可发起任务,下方的任务历史里每次执行都留下「已完成」状态——使用者不必知道背后有六个脚本。

管控规则页(示意重绘):授权横幅、品类搜索与策略文档链接输入、生成按钮、最近任务历史
图 · 平台化入口(示意重绘):贴上品类与策略文档链接即可发起,任务历史里每次执行留痕

产物:一份按推理链组织的报告

流水线跑完,交出来的是一份「系统管控规则报告」。它的五个章节不是目录,是推理链——每一章的输出是下一章的输入。

第 1 章品类基本信息是唯一没有 AI 参与的一章:品类名称、生成时间、文档版本、策略文档链接,模板自动填充。别小看策略文档链接这个字段——它是追溯依据,策略改了就必须重新生成报告,报告永远绑定生成那一刻的策略版本。第 2 章物料明细分析盘点现状:从采购库拉全量物料,按「在产 + 可采购」筛选,逐属性做值分布统计。第 3 章差异分析做双向追问(下面细拆)。第 4 章管控规则输出出白名单和约束。第 5 章交三张多维表格,全部以发起人的身份创建,链接永久可分享。

报告五章节推理链:基本信息、物料明细分析、差异分析、管控规则输出、附件
图 · 五章节不是目录,是推理链:每一章的输出是下一章的输入

先盘家底:93 颗物料的账本

拿一个真实品类跑一遍:某片式连接器品类。在册 93 颗物料,按「在产/正常 + 可采购」筛选后剩 44 颗——将近一半是冻结停用的历史遗留,这一步就把分析范围收掉了一半。

44 颗的现状是什么样?型号属性有 44 种值,每颗一个——没有任何两颗料共用一个型号,这是典型的「一颗料一个名字」长尾;管脚数量有 24 种不同的值,其中 12 种值全库只有一颗在用;更有意思的是高度、长度、宽度三个属性,44 颗里 42 颗的值是 0.0——报告的注意事项里专门写了一句大实话:0.0 通常表示该物料未维护这个属性。也就是说这个品类的尺寸规格管理,此前基本靠图纸不靠字段。

这就是第 2 章的价值:还没开始管,先把你家底的数据质量盘清楚了。

盘家底:93 颗在册筛到 44 颗可采购,44 颗 44 个型号一颗料一个名字,尺寸属性 42/44 是 0.0 未维护
图 · 盘家底:一半是历史遗留,剩下的里 42/44 尺寸属性是 0.0——数据质量先于规则

差异分析是双向追问,不是单向比对

第 3 章的匹配是双向的。正向:策略里的 5 个核心属性(接口方向、Pin 间距、引脚数、基座形态、是否高刷)逐个去 PLM 字段里找——3 个匹配上了,而且是语义级匹配:策略写「接口方向」,系统字段叫「插接方向」;策略写「Pin 间距」,系统叫「管脚间距」。匹配不上的 2 个不会静默丢弃,而是标记「确认是否需要在 PLM 新增字段」。

反向:系统里的 19 个字段策略完全没覆盖(环保要求、焊接工艺、排数、有无卡锁……),逐一标记「确认是否增加管控」。双向提示是这份报告最值钱的设计——单向生成只会把策略抄一遍,双向追问才把「策略与系统的边界」这个问题摊在桌面上。

值层面同样如此:策略说间距只允许 0.5mm 和 1mm,实际物料里还有 0.4、1.9、1.27;策略允许 13 种引脚数,实际在用的有 15 种——82 脚、98 脚这些策略之外的规格,报告不替你决定杀留,统一标「需确认映射关系」,交品类负责人拍板。语义匹配是 AI 判断的,可能出错,所以每一处都留了「待确认」列。

双向差异分析:正向策略 5 个核心属性 3 个语义匹配 2 个待确认,反向系统 19 个字段策略未覆盖,值层面 13 种对 15 种
图 · 双向追问:策略管不到的、系统没有的,两头都要人拍板

白名单:规则的最终形态

确认完差异,第 4 章输出规则的最终形态。这个品类的白名单长这样:管脚间距允许 0.5mm、1mm 两个值;引脚数允许 1、10、12、15、20、30、38、41、51、60、68、80、96 共十三个值;插接方向允许立式、卧式;其余值一律禁选,新设计不允许使用

约束关系单独成表、带编号可追溯:CON001 按信号用途分组定间距——小信号用 0.5mm、另一组线材用 1.0mm;CON002 收敛特殊与近似规格——3Pin 这类特殊规格去掉,15/16Pin 这类近似规格只留 15Pin;CON003 规定部分部件的立式/卧式按整机平台需求缩减。约束的意义在组合管理上显形:属性组合 = 各属性允许值的笛卡尔积,再用约束过滤掉无效组合——没有约束,13 个引脚数乘 2 个间距乘 2 个方向就是 52 种合法组合;有约束,才是真正想管住的那几种。

白名单与约束:间距两个值、引脚数十三个值、方向两个值,约束关系 CON001-003 带编号,笛卡尔积 52 种组合经约束过滤
图 · 允许值白名单 + 带编号的约束,才是规则的最终形态

落地:导入 PLM,规则才长出牙齿

报告只是中间产物,导入 PLM 之后规则才真正生效——痛点三的答案在这里。

对新增物料:属性组合约束写进 PLM,新申请的物料必须落在白名单组合内,规格外的直接禁止生成;确有特殊需要,走《通用化规则外新增零部件评估申请单》审批——例外存在,但例外的代价足够高。对存量物料:按属性组合关系自动匹配,标记出规格内和规格外,规格外的推进优化淘汰。

把关方式就此换了一层:之前,策略靠人执行,新增物料时靠审核员记着策略去把关,人力占用多、把关作用弱;现在,策略翻译成系统可识别的属性组合约束,规格外的物料直接禁止生成。把关从「人的记性」变成「系统的硬约束」。

维护节奏也写死了:策略文档更新、物料明细重大变化、属性值要调整——三种情况任一发生就重新生成报告;属性值管理表由品类负责人维护、禁止随意增删(不在白名单里的值将无法新增物料,所以白名单必须覆盖完整);建议每季度重跑一次,保持报告与策略的时效性。

落地路径:报告到规格管理表到导入 PLM,新增物料被拦截走评估申请单,存量物料被标记推进优化淘汰
图 · 导入 PLM 之后,规则才对每一颗新物料生效——例外存在,但代价足够高

三代复盘:可带走的方法

三代各自踩的坑,合并成一份清单。

第一代教我的:动手前先花一天蹲点规格工程师,看他们拿到策略文档后第一件事做什么——我第一版按自己的理解拆流程,交付时才发现人家真正卡的是属性映射,返工了一次。术语知识库从第一天就建,而不是靠 prompt 硬记术语——知识库是资产,prompt 里塞术语是负债,换模型就清零。把「模糊匹配必须人工确认」设计成产品的一部分,而不是上线后发现错配再打补丁——人对系统的信任很难二次建立。输出模板先冻结再调模型,两头同时动,出了问题分不清是谁的锅。

第二代教我的:防装懂靠协议不靠恳求,铁律要写成「违反即失败」的硬约束;出了幻觉先找根因,很多时候删掉提示词里一句降级建议,比加十条禁令有效;生产级的成色藏在细节里——has_more 不可靠、token 大小写被平台改写、品类名带竖线拆成管道命令,这些坑一条条写进版本日志,才有了 v67.40。

第三代教我的:一是数据质量先于规则——42/44 的尺寸属性是 0.0,规则再严也管不住没维护的字段,上规则之前先补数据;二是语义匹配必须人确认——「接口方向」和「插接方向」是不是一个字段,AI 给判断、人签字;三是策略本身会过时——实际在用的 15 种引脚数里有 4 种在策略白名单之外,是杀是留,逼着品类负责人把五年没更新过的策略重新想了一遍。报告生成是一次性的,但它逼出来的策略盘点是持续的。

回头看,这三代做的事其实是同一件:在「品类策略」和「规格管理」两个世界之间当翻译。市面上教你怎么调 prompt 的教程很多,没人教你怎么在两种管理层语言之间做翻译——后者只能靠在业务里泡出来的经验。这也是我认为业务人员做 AI 落地反而有优势的原因:工具是通用的,翻译能力是稀缺的。

如果你也要做类似的事,四条可以直接搬:

  1. 脚本能做的绝不交给模型自由发挥——黑盒封装加强制落盘,模型只在语义理解和结构化输出两个点上出手;
  2. 翻译类产物按推理链组织——现状盘点、双向差异分析、白名单输出,双向追问比单向生成值钱;
  3. 语义匹配让 AI 判断、人签字确认,例外通道保留但把代价抬到足够高;
  4. 上规则之前先盘数据质量——0.0 就是没维护,规则再严也管不住空字段。
信息图:策略的天花板是能不能变成校验规则;数据质量先于规则;双向追问;导入才生效
图 · 三句话记住策略落地这件事

如果只记一句话:策略的天花板,不是写得有多好,而是它能不能变成一条系统校验规则。