用途
该技能用于审计 GEO(生成式引擎优化)与 AI 搜索可见性。适用场景是用户想要衡量某个组织在 AI 回答、引用、搜索痕迹、地图或相关 fan-out 查询中的表现。工作流包含四个阶段:提示词集、审计执行、审计包、分析。
审计前准备
先运行位于 ../docs/credentials-and-tooling.md 的共享 preflight 检查。若存在 .seo-context.md,读取并复用它提供的站点、市场、竞争对手和内容优先级背景。从项目证据中解析规范域名,仅对仍然未知且影响较大的 GEO 输入提出一个精简的检查点问题。如果用户跳过某个问题,需说明所做的假设与限制;不得编造优先级、市场、转化价值或编辑权限。
需要收集:目标域名、品牌词,以及可选的竞品域名;一个提示词文件或 2–10 条初始提示词;国家与语言;要运行的提供商与聊天机器人。
工具与凭据
ChatGPT 的默认方式是浏览器采集,需要 Chrome、bun、一个 ChatGPT 登录账号,以及在专用 profile 中的 Fanout Fox 扩展,无需 API key。API 提供商(用于 Perplexity、Gemini 或按需)采用 env 认证模式,可使用 BRIGHTDATA_API_KEY,或同时使用 DATA_FOR_SEO_LOGIN 与 DATA_FOR_SEO_PASSWORD。不要在采集方法之间静默切换。如有缺失,按共享设置规则处理,并在采集前等待用户确认访问权限。提供商相关的设置与采集行为见 references/provider-collection.md。
阶段 1:提示词集
生成前先检查是否已有提示词文件。优先使用用户提供的路径、prompts.txt、geo-audit-report/test-prompts.txt 以及既往 GEO 跟踪文件。对找到的文件做摘要,并询问是运行、改进还是替换。若没有可用列表,则根据站点定位、待办任务(jobs-to-be-done)、受众、替代方案、重要页面和地域来构建提示词,提示词指南见 references/prompt-design.md。在提示词列表及其路径确认之前,不要开始采集。提示词应体现真实用户意图而非标语,覆盖有用角度,并与现有或期望的内容相关联。
阶段 2:审计执行
采集前先选择采集方法。对 ChatGPT,默认使用浏览器采集器:它在真实的 chatgpt.com 会话中运行提示词并导出 Fanout Fox 捕获,提供模型、fan-out 查询以及每个检索来源。对 Perplexity 或 Gemini,或在浏览器设置不可用时,使用 Bright Data;仅当它是可用提供商或用户明确要求时,使用 DataForSEO。需说明所选方法及其保真度权衡:浏览器方法通过提供商参考文档中所述的临时变通方式解析真实引用。不要静默切换方法。
设置、聊天机器人选择、凭据、命令示例、时序、原始数据保留、可恢复性和限制,参见 references/provider-collection.md。使用以下脚本:
- geo-audit-report/scripts/chatgpt-browser/run.ts 用于采集 ChatGPT 回答与 Fanout Fox 捕获到 {run-dir}/raw/。始终先列出 Fanout Fox 工作区,检查客户端是否拥有自己的工作区;必要时创建或移动归档错误的捕获,然后向运行传入 --workspace。
- geo-audit-report/scripts/normalize-chatgpt-browser.py 用于从这些原始文件构建运行的 results.json。
- geo-audit-report/scripts/brightdata-geo.py
- geo-audit-report/scripts/dataforseo-geo.py
- geo-audit-report/scripts/normalize-brightdata-geo.py 用于从已有的原始 Bright Data 导出重建一次运行。
保留原始 payload,写入带日期的运行文件夹,若采集失败则明确停止。将采集与仪表盘工作分开,以免把部分提供商输出当作完成的报告呈现。
阶段 3:审计包
将 results.json 视为 geo-audit-v3 契约,而非松散的提供商导出。保留最终回答提及、真实引用、引用候选、搜索来源、附带链接、地图位置、竞品实体、提供商元数据和采集诊断。防御性归一化:缺失数组以空值加 missing 状态处理;安全的强制转换会被记录;未知提供商字段保留在 provider_metadata.unknown_fields 下;格式错误的记录可被单独拒绝;没有可靠的 cited 标志时绝不推断为真实引用。
证据状态、产物布局、被跟踪的提示词、仪表盘模板、呈现规则和验证检查,参见 references/artifacts-dashboard.md。审计包有两层:
- 每次运行的不可变带日期 results.json 与原始提供商 payload
- 一个根级 report-analysis.json,覆盖所有已完成的运行
- 一个面向客户端的页面 {out-dir}/report/index.html,由 scripts/publish-dashboard.mjs 从所有已完成运行重建
保持页面路径在各次运行间稳定。当证据需要时,在共享模板内新增区块;保留其布局、视觉令牌与证据含义。如果客户已有定制仪表盘,先检查其源码并在发布通用模板前保留有用内容。构建失败时保留上次发布的页面,并解释失败原因。
每次发布前,把旧回答与新回答一起阅读,并更新 report-analysis.json。保持一个当前计划,包含 3–6 条建议。依据最新证据重新评估旧行动,淘汰过时项,并为每条保留的行动引用支持它的运行或提示词。仪表盘会拒绝未覆盖最新运行的综述。带日期的 JSON 保留为历史记录;每次运行的 manual_recommendations 是遗留背景,不是页面上的独立计划。
阶段 4:分析
采集完成后阅读每个已完成的带日期 results.json。把跨运行结论和唯一当前行动计划写入 report-analysis.json,然后用证据支撑。需覆盖:搜索 → 检索 → 地图 → 提及 → 引用 的漏斗;按聊天机器人和提示词划分的可见性;把真实引用与引用候选、搜索来源分开;哪些回答触发了搜索;fan-out 查询,包括聚合查询摘要;来源类型模式(在出现时包括 UGC 和 YouTube);把回答、引用、搜索和地图竞品作为独立渠道;基于捕获证据的经复核建议。渠道解读、fan-out 字段、缺失或格式错误证据的披露以及 GEO Playbook 指南,参见 references/analysis.md。向用户给出 {out-dir}/report/index.html 的精确绝对路径。如果 JSON 契约不可用或仪表盘构建失败,需明确披露,而不要把完整包当作已交付。
运行默认值
不要强制开启或关闭 ChatGPT 网页搜索;报告它是否被触发。ChatGPT 浏览器方法提供模型、fan-out 查询和完整检索来源;在 Fanout Fox 能再次标记被引用来源之前,其真实引用来自一个临时变通方式。自 2026 年 10 月起 Bright Data 不再返回 ChatGPT 模型或 fan-out 查询,但保留真实引用与地图。DataForSEO 支持 ChatGPT 与 Gemini,但痕迹保真度较弱。浏览器运行文件夹命名为 YYYY-MM-DD(或 YYYY-MM-DD-HHMMSS),以便仪表盘能识别。当采集器支持时保留 results.partial.json,并通过 collection_diagnostics 披露部分运行、警告、被拒绝记录和不可用渠道。密钥保存在用户机器上;绝不在聊天中打印或索取。使用相对资源路径,使仪表盘导出在从 file:// 打开时也能正常工作。