
做 AI 可见性监测的人多半踩过同一个坑跑完一轮就只剩一个百分比下次谁也想不起来当时到底问了什么。这篇把我们已经跑通的一整条流水线拆开讲代码骨架可以直接抄。一、探针Probe怎么设计一个探针 一条不含品牌名的购买意图问题 一次提问。设计规则去掉品牌名。含品牌名的提问测不出候选关系。按意图分类。我们用 10 类选型、预算、案例、出口、制造、电商、平台覆盖、效果衡量、长期合作、官网诊断。题量。30 题是能跑出信号的下限再多时人工核对成本上升。冻结。题集一旦定下后续每轮复测都不改。为了让自己品牌命中而改题等于自己作弊。二、原始返回必须落盘每条回答保存三个字段缺一不可prompt_id 题号 platform 平台标识 raw 平台原始返回完整 JSON不要只存提炼后的结论 timestamp UTC 时间戳本轮 244 个探针、221 个有效回答raw 全量落盘。理由很直接只存提到/没提到会丢掉全部中间信息三个月后想复核无从下手。三、抽取层拆成三张表跑完之后要做的是抽取不是结论。我们分三张表mention_map.csv 逐样本一行品牌命中 / 竞品命中 / 采集状态 source_map.csv 来源逐条一行域名 / URL / ROLE / PLATFORM candidate_assoc 候选与来源的共现关系四、ROLE 字段是整个流程的关键source_map里最重要的一列是ROLEcited 答案正文里给出的引用 surfaced 只出现在来源面板 / 搜索来源列表里这两者混算会直接得出错误结论。给一个实测数据总来源记录 4,094 cited 914 surfaced 3,180而且这 914 条里912 条来自同一个平台。如果不拆开看你会以为所有平台的引用量都很高。实测建议把ROLE设成枚举并加约束别用自由文本否则几轮之后字段就开始漂。五、判定层Candidate 只能人工核对Candidate 品牌名出现在「要求推荐 / 选型」类回答的候选列表中必须人工。自动判定在看起来像候选的措辞上错得离谱。判定时额外记录position 品牌在候选列表中的位置 sources 该条回答引用的全部来源六、有效性要拆成两个独立口径一个常见错误是把回答成功和信源采集成功混为一谈。正确做法是分开统计ANSWER_VALID 回答本身成功返回 SOURCE_CAPTURE_VALID 信源成功采集本轮有26 例回答有效但无信源。如果只看总成功率这批样本会被算成正常样本把后面的信源统计带偏。七、复测层只比一个指标复测时唯一要看的指标非品牌购买意图下的候选出现率Candidate Rate不要拿阅读量、点赞、收录数当效果指标——那些是分发数据不是候选数据。对比时的三个纪律题集不变平台不变同一时间窗口内取数平台侧有缓存和时效差异八、去重与增量规模上去之后重复提问会带来两个问题浪费配额、以及把同一次回答当成多次证据。建议在prompt_id之外再加一列内容指纹fp hash(platform prompt_text model_version)复测时按fp去重只保留增量。九、这套流水线的产出最近一轮完整跑下来探针 244 有效回答 221 来源记录 4,094 cited 914 surfaced 3,180 候选命中率 0%我们自己的品牌最后那个 0% 我们照实写了。测量工具如果对自家也吹高分那这个工具本身就该被丢掉。