拆解一份好GEO报告的技术骨架:八项检测、五维量化与动态复测
一份好的GEO检测报告,底层不是「把各平台截图贴在一起」,而是一条可复现的工程管线:用固定问题集驱动各AI平台实测,把结果沉淀进统一的结果池,再经量化模型与复测对比产出可解释的结论。本文拆解睿贤AGEO智能体报告系统的四层技术骨架,并给出可运行的代码骨架。
一、为什么多数报告只是「截图合集」
行业里常见两类弱报告:
1. 一次性快照报告:某天对几个平台问几个问题,记下「被引/未被引」,交付即结束。它测的是概率分布里的一次抽样,无法区分偶然与趋势(详见上一篇行业洞察)。
2. 平台汇总报告:把豆包、DeepSeek、文心等各自的结果横向拼起来给总分。但各平台引用逻辑不同(如文心偏百家号、豆包偏头条系),直接加总会掩盖「某平台专项缺失」,也无法支撑「按平台独立出建议」。
好报告要解决的,是「可复测、可解释、可对比」三个工程问题。
二、四层技术骨架
1. 动态实测方法论:企业判定档案驱动,替代盲测
不靠拍脑袋出题,而是先建「企业判定档案」——从行业、地域、渠道、竞品池四个维度锁定品牌的真实购买意图问题集。同一品牌每次都用同一组问题实测,结果才可比。这把「测什么」从随机变成确定。
2. 八项检测架构:6检测 + 1建议 + 1复测对比
按AI平台独立执行,每家平台跑完6项检测后独立出优化建议,最后用第8项做N次复测对比:
- 检测1–6:品牌可见度、信源归属、答案准确性、竞品声量、场景覆盖、交易锚点
- 建议:基于本平台6项结果生成P0/P1/P2行动项
- 复测对比:N次复测每次都与基线对比,看优化是否真的改变了AI答案
关键决策:按平台独立执行、不做跨平台汇总。因为汇总会让「文心的问题」被「豆包的好」平均掉。
3. 信源归因引擎:把12家大模型的引用源统一解析、归并、量化
每家的引用格式不同——Perplexity用 `citations` 数组、ChatGPT用 `source_links`、文心豆包用 `web_references`。引擎做四件事:
- 解析:适配各平台引用字段,抽出原始URL
- 归并:二级域名归一、短链展开、URL→平台映射
- 量化:按平台统计引用占比,定位「品牌在哪类信源上缺位」
- 归因:识别答案里被引用的具体段落,回答「为什么被引」
(该引擎的完整拆解见睿贤此前发布的「信源归因引擎」系列。)
4. 五维100分量化模型(开发中)
把可见度落成可解释的分数:品牌力 / 信源力 / 品牌锚点 / 场景覆盖 / 交易锚点,各维0–100,加权得总分。模型当前标注「开发中」,用于把分散的检测结果收敛成一张可跨期对比的体检表。
三、代码骨架:把「一次实测」变成「会进化的档案」
下面是报告生成器的核心骨架(Python伪代码,展示结构而非完整实现)。它把「平台适配器」与「报告板块」经结果池解耦,换平台或换板块都不影响整体:
from dataclasses import dataclass, field
from typing import Dict, List
@dataclass
class ProbeResult:
platform: str # 豆包 / DeepSeek / 文心 ...
question: str
cited: bool # 品牌是否被引用
sources: List[str] # 抽取出的引用URL
snippet: str # AI答案片段
@dataclass
class ResultPool:
"""结果池:平台适配器的产出统一落这里,与报告板块解耦"""
runs: Dict[str, List[ProbeResult]] = field(default_factory=dict)
def add(self, platform: str, results: List[ProbeResult]):
self.runs.setdefault(platform, []).extend(results)
def cite_rate(self, platform: str) -> float:
rs = self.runs.get(platform, [])
return sum(r.cited for r in rs) / len(rs) if rs else 0.0
@dataclass
class FiveDimScore:
brand: int; source: int; anchor: int
scene: int; trade: int # 五维(开发中)
def total(self) -> int:
return round((self.brand + self.source +
self.anchor + self.scene + self.trade) / 5)
def build_report(pool: ResultPool, baseline: ResultPool | None) -> dict:
"""按平台独立出分与建议,不与其它平台汇总"""
report = {}
for platform in pool.runs:
score = FiveDimScore( # 真实模型由检测项映射,此处示意
brand=round(pool.cite_rate(platform) * 100),
source=len({s for r in pool.runs[platform] for s in r.sources}),
anchor=0, scene=0, trade=0)
delta = None
if baseline and platform in baseline.runs:
delta = score.total() - baseline.total() # N次复测对比
report[platform] = {
"score": score.total(),
"cited_pct": round(pool.cite_rate(platform) * 100, 1),
"vs_baseline": delta,
"advice": suggest(score), # P0/P1/P2 行动项
}
return report
def suggest(s: FiveDimScore) -> List[str]:
if s.source < 30:
return ["P0: 补强百度百科/百家号/官网三类权威信源的一致性"]
return ["P1: 维持当前信源节奏,扩大场景覆盖"]
要点:结果池只认 `platform + question + cited + sources`,任何新平台只要实现「产出ProbeResult」就能接入;报告板块只读结果池,不关心平台怎么抓的。这就是为什么「换平台」或「改某板块」不会拖垮整份报告。
四、三个工程决策,决定报告靠不靠谱
- 结果池解耦:平台适配器与报告板块经结果池隔离,单板块改动不影响整体。
- 统一问题集复测:N次复测用完全相同问题集,才谈得上「对比」。
- 按平台独立出建议:不把文心的问题藏进豆包的平均分里。
做到这三点,报告才从「截图合集」变成「可进化的档案」——下一次优化后复测,你能直接看到哪一维涨了、哪个平台动了。
> 说明:五维量化模型与部分检测项当前标注「开发中」,文中代码为结构示意,实际评分由企业判定档案与检测结果映射。信源归因引擎已落地,详见睿贤此前发布的同主题技术文。
← 返回行业洞察