# 工作原理:从域名到证据 适用于当前 `src/product` 实现;计划版本 **v0.2.0-rc.1,UNPUBLISHED**。本文说明产品怎样取得和处理回答,不代表 Phase 6 的真实调用、截图或发布验收已经完成。 **打破 SEO / GEO 报告黑盒,把证据交还给用户。** 当前测量 AI 回答和引用,不提供传统搜索排名监测。 输入一个域名,查看不同 AI 如何描述你、提到哪些竞争对象、关联哪些关键词,以及回答中实际返回了哪些来源。每一次比较,都能回到对应模型的原始回答。 我们公开的是本次回答及其证据,无法据此读出模型内部的思考过程,也不能保证再次运行得到完全相同的答案。 ## 本文案例的状态 以 [R02:vercel.com](../examples/cases/R02/README.md) 作为流程阅读入口。它是运行前选定的应用部署案例,保存了三个模型的初始 D 回答和三次后续测量。九条 K 观察中三条结构化解析失败,失败原文仍保留;三次运行均为部分完成,不能写成三次全部成功。至少一次由真实到期任务触发,验收后任务已暂停。各次请求、词表来源、费用、截图与原文见案例证据。 案例分类用于索引,不发送给模型。[研究计划](../examples/study-plan.json) 固定 20 个输入、两路离线模型和一路联网模型,R02/R04 各执行三次持续测量。R02 回答语言为 en。原文和结论以案例目录的版本化结果与证据为准;本轮没有将旧 Alpha、测试 Fixture 或历史案例改名后计为新实测。完整调用上界与筛选规则见 [测量方法](measurement-methodology.md)。 ## 1. 保存项目与测试条件 创建项目会规范化域名,保存品牌显示名、别名和默认回答语言。当前 `primaryDomain` 本身也是规范化后的值,所以研究计划还应独立保留用户原始输入。创建项目不抓取官网,不发模型推理。 从实际模型目录选择 OpenRouter 路由和 `off`(不联网)或 `provider_native`(Provider 原生联网)。模型目录能力表示允许选择的配置,不保证下一次请求可用。随后保存一个 Baseline,即监测配置快照;后续运行记录其 ID 和版本。 当前一个模型 ID 在同一份模型选择中只能出现一次;同一模型的联网/不联网对照需使用不同配置或运行,并明确保留各自条件。参数默认 temperature 为 0、maxTokens 为 900。temperature 为 0 也不构成逐字重现保证。 ## 2. 域名认知 D:点名后的描述 D 的内部协议名为 `domain-recognition/v1`。模型收到规范化域名、语言和固定协议指令;项目品牌名、别名、竞品名单、官网正文、案例分类以及其他模型回答不进入这个 Prompt。 域名已被点名,所以 D 回答复述域名不能证明“自然发现”或“关键词推荐”。联网 D 允许 Provider 自己搜索;调用方仍不注入官网介绍。 初始认知运行按模型分别保存: - 域名识别声明 `domainRecognition`,包括 recognized、not_recognized、unknown。 - 本次输出的完整性/确定性 `analysisStatus`,以及缺失或不合法字段记录 `fieldIssues`。 - 品牌、业务、类别、实际列出的竞品、目标关键词和逐竞品关键词。 - Provider 返回的引用、回答中出现的普通 URL、引用与字段的可追溯关联。 - 实际模型、请求参数、搜索执行信息、原始响应、原始回答、用量、费用或费用未知、时间和错误。 这些是一次 API 回答中的观察,不是经过事实核查的公司资料。空竞品数组只表示这次没有列出竞品;某词被关联也不是搜索热度或商业价值。 ## 3. 回答、解析和报告各自保存 初始认知服务先写入含原文的 `response_saved` Attempt,再解析结构化内容。请求失败、响应截断、字段缺失、解析失败和模型明确回答 unknown 是不同状态。不能把“仅恢复出部分字段”写成“模型部分认识品牌”。 有原文时,可以本地重新分析并产生 AnalysisRevision;这不重新调用 Provider。需要重新请求时会新增 Attempt,可能产生费用。当前初始认知在解析失败且 Provider 明确标记截断时,还会自动用 2000 输出上限再请求一次;两次请求条件不同、都必须计入账本。 认知报告从终态 Run 中每个模型的当前 Attempt 生成,保留 `sourceAttemptMap` 和记录 Hash。竞品按规范化名称与 host 精确分组;报告不访问官网、不调用其他模型写结论。一个模型失败不会抹去其他模型的原文。 认知详情页可以显示最新本地分析修订,但报告构建当前仍读取原始 Attempt 归档。重新分析后不能直接假定报告已采用修订,需核对报告来源。见 [证据模型](evidence-model.md)。 ## 4. 从认知报告建立待测范围 WatchSet 是版本化的对象和关键词集合。初次建议来自项目中每个认知 Run 的最新已保存报告:目标对象来自项目配置,竞品来自报告竞品分组,关键词来自目标品牌关键词分组。每项保留来源记录 ID。没有域名的竞品保留为待确认身份,不发独立竞品域名 D。 当前 WatchSet 关键词检查把大小写/首尾空白规范化后,排除包含监测对象名称、别名或域名的词。它并未完成通用的歧义判断,也没有自动“每案例至多两个关键词”的研究规则。Phase 6 在 [案例层](../examples/lib/study.mjs) 另按至少两个不同模型的同词关联、精确原文证据、身份子串排除与确定性排序筛选,K 前冻结每例词表;不能把这层保障当作默认 WatchSet 服务的能力。 已有 active WatchSet 时,新草稿从原范围复制,避免无提示引入后来报告里的新词;它并不会自动合并新发现。模型或配置改变后需确认新范围。没有合格词时保留 D 结果,K 应说明“本次没有足够信息建立关键词测试”。 ## 5. 关键词选型 K:未点名时出现谁 K 协议为 `keyword-discovery/v1`。请求只包含一个冻结关键词、语言和中性产品选型指令,不发送目标或竞品的名字、域名、别名和期待答案。 模型返回结构化 mentions,包含产品/组织名称、域名、提及或推荐关系,以及证据片段和先后状态。本地在回答返回后按名称/别名或域名精确匹配 WatchSet;只能唯一匹配时赋予 `matchedObjectId`。范围外对象保留在明细中,不强行归入某个竞品。 “提及”不等于“正面推荐”。“首先提到/推荐”只描述回答中报告的顺序,不能解释为模型内部首先想到谁。当前正面关系和 unique/tied 等状态由被测模型结构化输出提供,指标还没有强制要求片段与偏移全部核验成功;阅读顺序结论时需要查看原文。 持续测量的一个 Run,会对选中模型分别执行所有有确认域名的对象 D,以及所有合格词 K,再乘以 repetitions。**它不是只运行 K 的接口**;初始 D 也不会自动成为这个 Run 的图表样本。不要把“一例一个目标域名”误算成“一例仅一次请求”。 ## 6. 一个回答怎样进入图表 路径为 `MeasurementRun → MeasurementModelRun → ProbeRun → ProbeAttempt → 协议结果 → MeasurementMetricPoint`。一份 K 回答可以同时支持目标与竞品的多个指标;不能按被提及对象数放大回答样本量。 每个点记录 `numerator`、`denominator`、`planned`、`failed`、`value`、`samples`。样本明细同时列出命中、未命中与排除项,可以沿 `probeRunId` 和 `attemptId` 打开原文。没有可判定分母通常为 null;真实未命中才是有效分母下的 0%。关键词关联次数有单独的计数显示规则,见 [完整公式](measurement-methodology.md)。 初始认知报告不直接变成测量曲线,图表统计来自 `measurements/` 中的独立 D/K Probe。D 的 unknown 与 K 的 unknown 在当前代码中分母处理不同,不应使用一个通用“成功样本率”替代。 测量的设计意图是一项计划探针只取第一次尝试,重试不增加样本。当前实现仍存在首次 Attempt 与按 Probe 覆盖的结果/引用混用风险;统计缓存和图表断线也有已知缺口。因此不能仅凭曲线形状声称已经完成严格的首次尝试统计验收。 ## 7. 重复、调度与模型变化 手工测量和定时测量复用同一个测量服务。调度器到期先保存 Occurrence,再建立 source 为 scheduled 的 Run。真实定时证据至少需要任务配置、计划时间、唯一 Occurrence、实际 Run、Attempt 和最终状态;手动点击运行或一次 scheduler HTTP 200 都不能替代这条证据链。 添加模型后可单独测量从未出现在历史 modelScope 的模型;新模型没有历史补点。移除选择不会删除旧报告或原始证据,但只有保存新 Baseline 后,默认后续运行才使用新的模型集合。旧任务遇到配置变化可进入 incompatible;范围变更和错过时间的调度行为仍有缺口,见 [限制](limitations.md)。 图表时间取实际 Run 开始时间,当前长期筛选是滚动 7/30/90 天或全部时间,没有每日自动去重。三次同条件观察只说明那三次及其时间跨度,不证明统计稳定、品牌排名或 GEO 优化的因果效果。 ## 复核与重新测量 复核是读取既有原文、参数、引用路径、Hash 与公式;重新测量是再次请求模型,两者应分别标记。读取报告、构建本地统计、重新分析已存回答均无需模型推理,但构建报告/统计会写入派生文件,读取模型目录仍可能访问外网。 当前公开案例数据缺失时,任何公式演示都应保留空状态,不以示例数值填充实测。技术定位见 [架构](ARCHITECTURE.md),安装与费用边界见 [Docker 部署](deployment/docker.md)。