SkillAgentSearch skills...

geo-analyzer

GEO(生成式引擎优化)品牌分析工具。自动向豆包、Kimi、DeepSeek 三个 AI 搜索引擎提问,分析品牌在 AI 回答中的出现率、情绪、信源引用、竞品对比,生成交互式 HTML 报告。当用户需要分析品牌在 AI 搜索引擎中的表现、GEO 优化、AI 搜索品牌监测、品牌 AI 可见度分析时使用。触发词:GEO分析、品牌AI搜索分析、AI搜索引擎优化、品牌可见度、GEO、geo analyzer。

Install / Use

npx skills add redfox-data/redfox-community --skill geo-analyzer

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

90/100

Supported Platforms

Universal

Our assessment of geo-analyzer

geo-analyzer scores 90/100 on our quality scale, 1462nd of 4,616 Development & Engineering skills we index (top 32%).

Its SKILL.md is 6.9 KB long, well organised into 16 sections with 11 code examples: a thorough specification that gives an agent plenty to work with.

It has 412 GitHub stars, a meaningful sign that others use it.

Substance
29/30
Structure
20/20
Description
15/15
Adoption
11/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 11 days ago, so geo-analyzer is actively maintained.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-10-05. Automated pattern scan on 2026-10-05. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

geo-analyzer compared with similar skills

All 4 of these similar skills score higher than geo-analyzer; compare them before choosing.

SkillScoreStarsUpdatedFormat
geo-analyzer (this skill)by redfox-data9041211d agoSKILL.md
Agent-Reachby Panniantong10091.8k20d agoCLAUDE.md
headroomby headroomlabs-ai10074.5ktodayCLAUDE.md
ai-job-searchby MadsLorentzen10045.0ktodayCLAUDE.md
claude-howtoby luongnv8910041.8k5d agoCLAUDE.md

Frequently asked questions

How do I install geo-analyzer?
Run npx skills add redfox-data/redfox-community --skill geo-analyzer. The install tabs above show the steps for each supported agent.
Which AI agents does geo-analyzer work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is geo-analyzer safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is geo-analyzer still maintained?
The repository was last updated 11 days ago, so geo-analyzer is actively maintained.

name: geo-analyzer description: GEO(生成式引擎优化)品牌分析工具。自动向豆包、Kimi、DeepSeek 三个 AI 搜索引擎提问,分析品牌在 AI 回答中的出现率、情绪、信源引用、竞品对比,生成交互式 HTML 报告。当用户需要分析品牌在 AI 搜索引擎中的表现、GEO 优化、AI 搜索品牌监测、品牌 AI 可见度分析时使用。触发词:GEO分析、品牌AI搜索分析、AI搜索引擎优化、品牌可见度、GEO、geo analyzer。

品牌GEO分析

简介

帮助品牌了解自己在 AI 搜索引擎(豆包、Kimi、DeepSeek)中的表现。系统自动向三个 AI 平台提出相同问题,分析品牌出现率、情绪倾向、信源引用、竞品对比,生成可视化 HTML 报告。

鉴权

前往 红狐hub 获取 API Key,通过以下方式配置:

# 方式一:配置文件
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }

# 方式二:终端环境变量
export REDFOX_API_KEY="ak_xxxx..."

依赖

pip3 install requests

完整工作流

Step 0: 输入收集

向用户收集以下信息(使用 AskUserQuestion 或直接从用户消息中提取):

必填信息:

  • 品牌名称: 用户要分析的品牌名(如"元气森林"、"大疆"、"蔚来")
  • 品类/行业: 品牌所属品类(如"无糖饮料"、"无人机"、"新能源汽车")

可选信息:

  • 品牌别名: 品牌的其他常见称呼(如"小红书"的别名"RED"、"小红书App")
  • 竞品列表: 用户已知竞品(如"可口可乐"、"百事可乐")
  • 自定义问题列表: 如果用户已有问题列表,直接使用,跳过 Step 1

关键规则:

  • 如果用户只提供了品牌名没有品类,必须追问品类
  • 如果用户提供了问题列表,跳过 Step 1 直接进入 Step 2
  • 竞品和别名可以为空

Step 1: 问题生成(用户未提供问题时)

如果用户没有提供问题列表,需要生成 5 个热门问题。

1.1 搜索品类热度

调用任一 websearch skill 搜索品类相关信息:

python3 ~/.agents/skills/doubao-websearch/scripts/doubao_search.py "{品类} 消费者最关心的问题"
python3 ~/.agents/skills/kimi-websearch/scripts/kimi_search.py "{品类} 品牌推荐 常见问题"

1.2 AI 生成 5 个问题

结合搜索结果和品类知识,生成 5 个用户最可能在 AI 搜索引擎中提问的问题。

问题类型必须覆盖以下四类(每类至少 2 个):

| 类型 | 示例 | 说明 | |------|------|------| | 推荐类 | "{品类}哪个品牌好?"、"推荐几款好用的{品类}" | 测试品牌是否进入推荐列表 | | 对比类 | "{品牌A}和{品牌B}哪个好?"、"{品类}品牌对比" | 测试品牌在直接对比中的表现 | | 评价类 | "{品牌}怎么样?"、"{品牌}值得买吗?" | 测试品牌单独评价的倾向 | | 场景类 | "{场景}用什么{品类}好?"、"新手适合用哪个{品类}?" | 测试品牌在特定场景下的可见度 |

问题生成规则:

  • 问题必须是用户真实可能搜索的自然语言
  • 不要在问题中直接包含用户品牌名(推荐类和场景类),除非是评价类问题
  • 评价类问题中可以包含品牌名
  • 问题长度控制在 10-30 字
  • 不要生成过于相似的问题

1.3 确认问题列表(必须执行)

将生成的 5 个问题展示给用户,使用 AskUserQuestion 询问确认。必须等待用户明确同意后,才能进入 Step 2 批量搜索。如果用户要求修改,重新调整问题列表并再次确认。

Step 2: 批量搜索

将 5 个问题同时提交到 3 个 AI 平台进行联网搜索。

python3 scripts/geo_search.py --queries '["问题1","问题2",...,"问题10"]' --platforms doubao,kimi,deepseek

脚本自动完成:

  1. 批量提交 15 个搜索任务(3平台 x 5问题)
  2. 并行轮询所有任务,每 5 秒检查一次
  3. 最长等待 8 分钟
  4. 输出 output/search_results.json

输出文件结构:

{
  "queries": ["问题1", "问题2", ...],
  "platforms": ["doubao", "kimi", "deepseek"],
  "total_tasks": 30,
  "completed": 28,
  "failed": 2,
  "results": [
    {
      "question": "问题1",
      "query_index": 0,
      "platform": "doubao",
      "content": "AI回答全文...",
      "sources": [{"title": "...", "url": "...", "domain": "..."}],
      "status": "completed"
    }
  ]
}

等待提示: 搜索过程约需 3-5 分钟,告知用户耐心等待。

Step 3: 确定性分析

运行分析脚本执行确定性分析(品牌提及检测、域名提取、频次统计):

python3 scripts/geo_analyze.py \
  --brand "品牌名" \
  --aliases '["别名1","别名2"]' \
  --competitors '["竞品A","竞品B"]' \
  --search-results output/search_results.json

输出两个文件:

  • output/deterministic.json — 确定性分析结果(提及率、域名统计等)
  • output/ai_analysis_template.json — AI 分析模板(待填充)

Step 4: AI 分析(Agent 执行)

这是核心步骤。Agent 需要读取搜索结果,对每份 AI 回答执行深度分析。

4.1 读取搜索结果

读取 output/search_results.json,获取所有 15 份 AI 回答。

4.2 逐份分析

对每份状态为 completed 的回答,分析以下字段:

  1. brand_rank (int | null): 品牌在回答的推荐列表或排名中的位置。如果回答列举了"推荐5个品牌",品牌排第几?未提及则为 null。
  2. brand_context (str): 品牌被提及时的一句话上下文摘要。未提及则为空字符串。
  3. sentiment (str): 回答对该品牌的整体情绪倾向。
    • "positive": 正面/推荐/强调优势
    • "neutral": 中性/客观描述
    • "negative": 负面/强调劣势/不推荐
    • 未提及则为 "neutral"
  4. sentiment_reason (str): 情绪判断的依据,引用回答中的原文或概括原因。
  5. competitors_mentioned (list[str]): 回答中提及的所有竞品品牌名称。不限于已知竞品,发现新竞品也列出。
  6. competitor_details (list[dict]): 对每个被提及的竞品,提供其排名和情绪信息。格式为列表,每项含:
    • name (str): 竞品品牌名
    • rank (int | null): 竞品在推荐列表中的排名,无排名则为 null
    • sentiment (str): 竞品的情绪倾向 (positive/neutral/negative)
  7. key_claims (list[str]): 关于该品牌的关键描述或评价(2-3条简短摘要)。

分析规则:

  • 情绪判断基于回答中对品牌的整体描述,不是单句话
  • 如果回答只是列举品牌名没有评价,sentiment 为 "neutral"
  • 如果回答明确推荐该品牌或强调其优势,sentiment 为 "positive"
  • 如果回答指出该品牌的缺点或不推荐,sentiment 为 "negative"
  • competitors_mentioned 应包含回答中出现的所有同品类品牌,即使用户没有列为竞品
  • competitor_details 中每个竞品的 rank 和 sentiment 基于回答中对竞品的描述判断
  • brand_rank 只在回答有明确的品牌排序时填写(如"第一名是XX,第二名是YY"),无排序则为 null

4.3 写入 AI 分析结果

将所有分析结果写入 output/ai_analysis.json,格式如下:

[
  {
    "question": "问题1",
    "query_index": 0,
    "platform": "doubao",
    "brand": "品牌名",
    "competitors": ["竞品A", "竞品B"],
    "brand_rank": 3,
    "brand_context": "品牌被提及时的上下文摘要",
    "sentiment": "positive",
    "sentiment_reason": "回答中明确推荐该品牌",
    "competitors_mentioned": ["竞品A", "竞品C"],
    "competitor_details": [
      {"name": "竞品A", "rank": 1, "sentiment": "positive"},
      {"name": "竞品C", "rank": null, "sentiment": "neutral"}
    ],
    "key_claims": ["关键描述1", "关键描述2"]
  }
]

关键规则:

  • 只包含 status 为 completed 的回答
  • 每份回答一个 JSON 对象
  • query_index 和 platform 必须与 search_results.json 中的对应
  • 必须输出合法 JSON

Step 5: 合并分析与报告生成

5.1 合并分析

将确定性分析与 AI 分析合并,计算完整指标(GEO 得分、情绪分布、平均排名等):

python3 scripts/geo_analyze.py \
  --brand "品牌名" \
  --aliases '["别名1"]' \
  --competitors '["竞品A","竞品B"]' \
  --search-results output/search_results.json \
  --ai-analysis output/ai_analysis.json

输出 output/analysis_result.json(包含所有指标数据)。

5.2 生成 HTML 报告

python3 scripts/geo_report.py \
  --analysis output/analysis_result.json \
  --search-results output/search_results.json

输出 output/geo_report.html。

Step 6: 交付

  1. 交付 HTML 报告文件: output/geo_report.html
  2. 输出关键发现摘要(3-5 条核心结论),格式参考:
GEO 分析完成 — {品牌名} 在三大 AI 搜索引擎中的表现:

1. 跨平台提及率: {X}%({被提及数}/{总问题数})
   - 豆包: {X}% | Kimi: {X}% | DeepSeek: {X}%

2. GEO 综合得分: {X}/100
   - {最佳平台} 表现最佳({X}分),{最差平台} 表现最弱({X}分)

3. 情绪分布: 正面 {X}% | 中性 {X}% | 负面 {X}%
   - {如果有负面,指出主要负面原因}

4. 竞品对比: 共发现 {N} 个竞品
   - 提及率最高的竞品: {竞品名}({X}%)
   - 您的品牌提及率排名: 第 {N} 位

5. 信源引用: TOP3 引用域名为 {域名1}、{域名2}、{域名3}
   - 品牌官网是否被引用: {是/否}

完整报告: output/geo_report.html

错误处理

| 情况 | 处理方式 | |------|---------| | 未配置 REDFOX_API_KEY | 提示用户前往红狐hub获取 API Key | | 搜索任务部分失败 | 继续分析已完成的回答,在报告中标注失败项 | | 搜索全部超时 | 提示用户稍后重试,可能是 API 负载过高 | | AI 分析结果缺失 | 仅生成确定性分析报告(提及率、域名统计),情绪等模块标注"待分析" | | 品牌名太短导致误匹配 | 提示用户提供品牌别名以提高匹配精度 |

文件结构

geo-analyzer/
├── SKILL.md                        # 本文件
├── scripts/
│   ├── geo_search.py               # 批量搜索调度器
│   ├── geo_analyze.py              # 分析编排器
│   ├── geo_report.py               # 报告生成器
│   └── lib/
│       ├── platforms.py            # 3平台适配器
│       ├── analyzer.py             # 分析逻辑库
│       └── report_template.py      # HTML 模板库
├── output/                         # 输出目录
│   ├── search_results.json         # 搜索结果
│   ├── deterministic.json          # 确定性分析
│   ├── ai_analysis_template.json   # AI 分析模板
│   ├── ai_analysis.json            # AI 分析结果(Agent 写入)
│   ├── analysis_result.json        # 完整分析结果
│   └── geo_report.html             # 最终报告
└── references/
    └── geo-metrics.md              # GEO 指标定义说明

Related Skills

View on GitHub
GitHub Stars412
CategoryDevelopment
Updated11d ago
Forks55

Languages

Python

Trust signals

88/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium