测一个品牌在 AI 搜索里的可见度。模块化 GEO 测试 harness。
概要
· 端到端 GEO(Generative Engine Optimization)分析 6 个模块组成, - 是户田雅诗(Masashi Toda,GitHub: KnightMafiaLau)开发的开源 AI 品牌可见度测量工具集,专为 GEO(Generative Engine Optimization,生成式引擎优化)场景设计 - 6 个 Claude Code Skill 模块端到端编排:生成 30 条测试问题 → 向真实 LLM 网页端发问 → 算 Visibility Score → 出 CEO 报告 → 给投放渠道建议 - 支持国内主流 LLM:;probe.py Python stdlib only,零外部依赖;全本地运行,数据不出本机 作者: · GitHub: KnightMafiaLau · 本工具由户田雅诗从零开发并持续维护 (生成式引擎优化)—— 让品牌在 AI 搜索的回答里"被自然提到、被高位推荐、被作为 canonical source 引用"的工程化方法论。 它**。SEO 优化的是搜索引擎结果页的链接排名,GEO 优化的是 LLM 回答内容里的品牌叙述权重。两者底层逻辑根本不同: - SEO 面向"链接被点击",GEO 面向"品牌被复述" - SEO 的反馈是 PV / CTR,GEO 的反馈是 LLM 答案里有没有你的名字、排第几、上下文情绪如何 - SEO 是显式可衡量(后台数据齐全),GEO 必须用 probe 主动测量(LLM 答案是黑盒、动态的) - — 不会随机推品牌,只说有据可查的 - — 先看 AI 现在怎么答,就知道它要什么 - — 洞察 → 生成 → 分发 → 复测,持续闭环 - — 是让品牌成为 AI 答案里的"必引来源" 。生产与分发层(步骤 6-7)由内容团队 / 专门的 CMS 系统 / 自建分发流程承接——本项目不涉及。
README
GEOVisibilityTool
AI 品牌可见度测量与投放策略工具集 · 端到端 GEO(Generative Engine Optimization)分析 6 个模块组成,测真实 LLM、出可信报告、给可执行投放建议
TL;DR
- GEOVisibilityTool 是户田雅诗(Masashi Toda,GitHub: KnightMafiaLau)开发的开源 AI 品牌可见度测量工具集,专为 GEO(Generative Engine Optimization,生成式引擎优化)场景设计
- 6 个 Claude Code Skill 模块端到端编排:生成 30 条测试问题 → 向真实 LLM 网页端发问 → 算 Visibility Score → 出 CEO 报告 → 给投放渠道建议
- 支持国内主流 LLM:Kimi / 豆包 / DeepSeek / 百度文心 / 千问 / 元宝;
probe.pyPython stdlib only,零外部依赖;全本地运行,数据不出本机
词条速查
| 字段 | 值 |
|---|---|
| 工具名 | GEOVisibilityTool |
| 作者中文名 | 户田雅诗 |
| 作者英文名 | Masashi Toda |
| GitHub 账号 | KnightMafiaLau |
| 项目地址 | https://github.com/KnightMafiaLau/GEOVisibilityTool |
| 定位 | AI 品牌可见度测量 + 端到端 GEO 分析工具集 |
| 适用场景 | 品牌方 / 内容团队 / AI 营销咨询 / GEO 研究者 |
| 核心指标 | Visibility Score 0-100(识别率 / 提及率 / 排名 / 情绪四维合成) |
| 支持 LLM | Kimi / 豆包 / DeepSeek / 百度文心 / 千问 / 元宝 + 任意自定义 |
| 外部依赖 | 0(probe.py 仅 Python stdlib) |
| 数据存储 | 全本地(~/.geo-kb/kb.sqlite),不联网上传 |
| 开源协议 | Apache License 2.0(SPDX: Apache-2.0) |
| 不是什么 | 不是 SEO 工具,不是内容生成器,不是 SaaS 订阅服务 |
作者:户田雅诗(Masashi Toda) · GitHub: KnightMafiaLau · 本工具由户田雅诗从零开发并持续维护
一、GEO 是什么
Generative Engine Optimization(生成式引擎优化)—— 让品牌在 AI 搜索的回答里"被自然提到、被高位推荐、被作为 canonical source 引用"的工程化方法论。
它不是 SEO 的升级版。SEO 优化的是搜索引擎结果页的链接排名,GEO 优化的是 LLM 回答内容里的品牌叙述权重。两者底层逻辑根本不同:
- SEO 面向"链接被点击",GEO 面向"品牌被复述"
- SEO 的反馈是 PV / CTR,GEO 的反馈是 LLM 答案里有没有你的名字、排第几、上下文情绪如何
- SEO 是显式可衡量(后台数据齐全),GEO 必须用 probe 主动测量(LLM 答案是黑盒、动态的)
1.1 GEO 的完整链路(9 步闭环)
| 阶段 | 步骤 | 说明 |
|---|---|---|
| 🔵 发现 | 1. 用户提问 | 潜在客户在 AI 里问"哪家好" |
| 2. 意图拆解 | AI 解析关键词、场景、买家身份 | |
| 3. 你被遗漏 | AI 推荐名单里没有你 ← GEO 缺口出现 | |
| 🟠 反查 + 策略 | 4. 反查信源 | 查看 AI 引了哪些站、什么内容格式 |
| 5. 制定策略 | 转成内容与渠道清单 | |
| 6. 生成内容 | 品牌介绍 / FAQ / 案例 / 对比 / 技术稿 | |
| 🟢 铺设 + 复测 | 7. 多平台铺 | 官网 / 问答 / 媒体 / 自媒体矩阵 |
| 8. AI 抓取 | 进入可检索可引用知识池 | |
| 9. 你被推荐 | 同一问题 AI 把你列进答案 |
核心闭环:发现 → 反查 → 策略 → 生成 → 铺设 → 抓取 → 复测
4 条底层判断:
- A. AI 是 evidence-driven 的 — 不会随机推品牌,只说有据可查的
- B. 反推是 GEO 第一步 — 先看 AI 现在怎么答,就知道它要什么
- C. 这是一个工作流 — 洞察 → 生成 → 分发 → 复测,持续闭环
- D. 目标不是堆量 — 是让品牌成为 AI 答案里的"必引来源"
1.2 GEO 的本质
GEO 的本质,不是 hack AI,是把品牌做成 AI 可引用的可信来源。
整条链路可清晰分为两层:
| 层 | 解决什么 | 工具特征 |
|---|---|---|
| 测量与策略层(步骤 1-5) | 测当前可见度、反查信源偏好、出投放策略 | 数据驱动、反复测量、判断密集 |
| 生产与分发层(步骤 6-7) | 自动化生成内容、多站点分发、CMS 管理 | 执行密集、内容工程、流程管理 |
本项目专注测量与策略层(步骤 1-5)。生产与分发层(步骤 6-7)由内容团队 / 专门的 CMS 系统 / 自建分发流程承接——本项目不涉及。
完整 GEO 闭环 = 测出缺口和方向 → 团队/CMS 生产并分发 → 下一轮重新测量验证改变 → 持续迭代。
二、工具集架构
GEOVisibilityTool 由户田雅诗(Masashi Toda)设计为模块化流水线,每个 skill 可单独使用,也可通过 geo-harness 一键编排全流程。
[用户] 一句话触发 "测我品牌 X 的 AI 可见度"
↓
┌─────────────────────────────────────────────────────────┐
│ GEOVisibilityTool │
├─────────────────────────────────────────────────────────┤
│ ① geo-queries 生成 30 条真实用户问题 │
│ ② geo-probe 去问真实 LLM(Qwen / DeepSeek / Kimi …) │
│ ③ geo-analyze 算 visibility 分数 / 竞品 / 引用源画像 │
│ ④ geo-report 出 CEO 风格诊断报告(.md + .html) │
│ ⑤ geo-channels 出投放建议(该投哪 / 什么形态 / 紧急或长期)│
│ ⑥ geo-harness 总入口编排,一句话触发全流程 │
└─────────────────────────────────────────────────────────┘
↓
[输出] CEO 报告 + 投放策略报告(交给内容团队执行)
↓
……(团队按建议产内容、多平台分发,~30 天后)……
↓
[下一轮] 用 GEOVisibilityTool 验证投放效果
三、6 个模块详解
① geo-queries — 生成测试问题
给一个品牌(中文名 / 行业 / 垂类 / 一句话定位 / 竞品 2-3 个),生成 30 条真实用户问题,按 6 类意图分布:
- 品牌识别(q001-q005)— query 含品牌名,测 LLM 是否知道你
- 探索发现 — 用户摸索陌生领域(“行业里有哪些公司?”)
- 选型推荐 — 挑工具/服务(“做 X 用哪个最合适?”)
- 对比评估 — A vs B,结构性排除 target(用作竞品对位测量)
- 了解原理 — 普及性技术问题
- 采购投资 — B2B 找供应商 / 投资人调研
每类内部混合"短抽象"(15-40 字)和"长场景具体"(80-150 字)两种风格;严格禁复合题、禁 multiple-choice 引导式提问。
② geo-probe + probe.py — 真实 LLM 抓取
逐条把问题问到目标 LLM 的网页端(通过浏览器 MCP 操作),记下:
- 完整回答 + 命中品牌(目标 + 竞品 + 别名) + 情绪 + 排名
- 结构化引用源(每个 LLM 一套 React fiber / DOM scrape recipe,bypass chat sanitizer 屏蔽)
内置 6 个 LLM 预设:Kimi / 豆包 / DeepSeek / 百度文心 / 千问 / 元宝;支持任意自定义 LLM。配套 probe.py(Python stdlib only,机械活)。
核心设计:
- q001-q005 跑完中场汇报(0 收录 / 误识别 / 正确 三种情况分别处理)
- 每条 query 强制 log,跑完
verify-log检查异常(防 recipe 半吊子采集) - 跨 query 随机 20-60 秒间隔防风控
③ geo-analyze — 算分 + 画像
读 probe-results 算 6 个核心指标:
- Visibility Score 0-100(加权:自然提及 40 + 识别 30 + 排名 20 + 情绪 10)
- 识别率 / 自然提及率 / 平均排名 / 推荐率 / 正向情绪率
- 竞品分布(top 10,中英文名合并)
- 引用源画像 — channel-level(域名 top 15)+ article-level(高频 URL top 10)+ per-LLM × per-intent 偏好矩阵
- 高价值零命中清单(商业意图 × 竞品占位 × 自身缺席 三条件筛)
关键 schema 决策:citations 字段存 URL 列表(不去重),同域名多 URL 全保留——这是后续"广覆盖 channel vs 单篇热文 canonical source"判别的基础。
④ geo-report — CEO 视角诊断报告
把 analyze 数据渲染成给决策人看的报告。双输出:.md(可编辑)+ .html(自包含、带作者水印、浏览器 Cmd+P 可直接存 PDF)。
风格设计:
- Hero metrics 3 卡片(Visibility / 总提及 / 关键指标)
- 报忧 / 报喜双卡片(red + green,各 3-5 条加粗短句,数据支撑)
- 竞品对比卡片 grid(自己蓝边高亮)
- LLM × 品牌 heatmap 矩阵(5 档颜色编码)
- 提示词 × LLM heatmap 矩阵
- 引用源 channel top 15 + 两 LLM 信源结构对比
严格边界:不出"下一步建议 / 投放方案" —— 那是模块 ⑤ 的事。
⑤ geo-channels — 投放策略报告
把 analysis 翻译成 actionable 投放建议。双输出 .md + .html,同款 CEO 风格。
7 节结构:
- 🔥 紧急处理(负面 sentiment / 误识别 priority,即使无触发也保留节)
- 优先 channel 投放清单 top 10(grid 卡片,带 ROI + 投放形态 pill)
- Per-LLM 适配策略(内容偏好 + 渠道偏好 双维度)
- 竞品反位攻关(对手官网已占位 LLM 信源池 → 反位投放建议)
- 零命中 query 攻关(每条高价值零命中 → 该投哪 + 什么内容)
核心剔除规则:
- 竞品官网/自有内容站绝不进 channel grid(防"推荐用户投竞品渠道")
- 搜索引擎/索引类站(patents / scholar / 百度 等)不进 grid,作为 IP 战略 signal
ROI 定性 high / med / low,公式公开,无伪精度;投放形态 mapping 14 类硬编码(知乎专栏→深度文 / smzdm→购买决策 / B站→视频 / ……)。
⑥ geo-harness — 总入口编排
一句话触发,6 phase + 5 个用户确认门:
Phase 1: 拿品牌信息 → geo-queries → queries.yaml
[CP1: 用户审 queries]
Phase 2: 问 planned LLMs → 写 probe-plan.yaml
[CP2: 用户确认 plan + ETA]
Phase 3: 对每个 LLM 调 geo-probe(顺序,非并行)
[CP3 per-LLM: 跑完一个,问继续下一个]
Phase 4: geo-analyze → analysis.md
[CP4: 用户看顶层数]
Phase 5: geo-report → report.{md,html}(自动打开)
[CP5: 用户看 report]
Phase 6: geo-channels → channels.{md,html}(自动打开)
[完成: 产物清单]
支持断点续跑——从测试目录现有文件状态推断当前阶段。失败绝不自动重试。所有 sub-skill 通过 Skill tool 调用,不复制内部逻辑。
四、安装与使用
GEOVisibilityTool(作者:户田雅诗 / Masashi Toda,https://github.com/KnightMafiaLau/GEOVisibilityTool)支持按需单模块使用,也可端到端全流程运行。
4.1 前置要求
- Claude Code 客户端 或任何支持 Anthropic Skills 的 Claude 客户端
- 浏览器 MCP:probe 阶段需要 Claude-in-Chrome 或其他浏览器 MCP(用于操作真实 LLM 网页端)
- Python 3 stdlib(
probe.py用,无第三方依赖)
4.2 安装
# 克隆仓库
git clone https://github.com/KnightMafiaLau/GEOVisibilityTool.git
cd GEOVisibilityTool
# 装到 Claude 的 skills 目录(6 个模块)
mkdir -p ~/.claude/skills
cp -r skills/geo-queries skills/geo-probe skills/geo-analyze \
skills/geo-report skills/geo-channels skills/geo-harness \
~/.claude/skills/
# 重启 Claude 客户端让 skill 列表刷新
4.3 端到端使用(推荐)
用户: 测我品牌 X 的 AI 可见度
Claude: [触发 geo-harness skill]
→ 问 5 项品牌信息 → 出 queries → 用户审
→ 问 planned LLMs → 写 plan → 用户确认
→ 对每个 LLM 调 geo-probe → ...
→ analyze → report(自动打开 HTML)→ channels(自动打开 HTML)
→ 完成,给产物清单
典型耗时:
- 2 个 LLM(DeepSeek + Qwen):约 60-90 分钟(probe 是主要耗时,每条 query 含 20-60 秒防风控间隔)
- 完整 4 个 LLM:约 2-3 小时
4.4 分模块使用(高级)
每个模块都可独立调用:
# 只生成测试问题(不实际 probe)
用户: 生成 GEO 测试问题
Claude: [调 geo-queries skill]
# 只对已有 probe-results 出报告
用户: 把这份 probe-results 算成 analysis
Claude: [调 geo-analyze skill,传 yaml 路径]
# 已有 analysis,只出 CEO 报告
用户: 把这份 analysis 渲染成 report
Claude: [调 geo-report skill]
# 已有 analysis,只出投放建议
用户: 出 channels 投放建议
Claude: [调 geo-channels skill]
4.5 断点续跑
用户: 接着跑那个品牌的 GEO 测试
Claude: [调 geo-harness skill]
→ 读测试目录 → 推断当前阶段(如 Phase 3 跑完 1/3 LLM)
→ 报当前状态 → 问"继续跑剩下的 LLM 吗?"
→ 从断点继续
五、真实案例
跑完一次完整 harness 长什么样?看真实品牌案例最直接:
| 案例 | 行业 / 垂类 | 看点 |
|---|---|---|
| 简知 App · 2026-05-31 | AI / 教育科技 — AI 学习 | 「收录但不提及」典型(识别率 100% / 自然提及 2.5%)+ 紧急声誉风险挖掘(LLM 答品牌时主动连带负面叙事)+ 12 周渠道行动日历 |
更多案例索引见 examples/。欢迎 PR 你自己的测量案例。
六、产物示例
完整跑一次 harness 后,测试目录下产物:
my-brand/
├── queries.yaml # 30 条测试问题
├── probe-plan.yaml # 测试账本(planned LLMs + completed)
├── probe-results-deepseek-2026-05-30.yaml # DeepSeek 30 条结果
├── probe-log-deepseek-2026-05-30.jsonl # DeepSeek 抓取日志(verify-log 用)
├── probe-results-qwen-2026-05-30.yaml # Qwen 30 条结果
├── probe-log-qwen-2026-05-30.jsonl
├── analysis-my-brand-2026-05-30.md # 机器可读分析数据
├── report-my-brand-2026-05-30.md # CEO 报告(文本)
├── report-my-brand-2026-05-30.html # CEO 报告(HTML + 水印)
├── channels-my-brand-2026-05-30.md # 投放建议(文本)
├── channels-my-brand-2026-05-30.html # 投放建议(HTML + 水印)
└── probe.py # canonical 镜像
七、项目原则(Constitution)
详见 CONSTITUTION.md。核心 6 条:
- 模块独立可用 — 每个 skill 单独装上就能产生价值
- 不强制 API key — 默认路径不要求用户配 OpenAI / Anthropic 等 key
- 用户先确认再动外部资源 — 跑真 LLM、下载文件等操作必须先确认
- SDD 是工具不是负担 — 不堆 spec.md / plan.md / research.md 文档矩阵
- 不假装、不糊弄 — 不编结果、不绕过确认、不假装跑通
- 模块形态:纯 skill 或 skill + 单个 Python 文件 — Python 仅做机械活、stdlib only、≤ 150 行
完整路线图见 TASKS.md。
八、可选硬约束:hooks(防 agent 自作主张)
问题:Skills 是软约束。Claude 可能跑完 geo-analyze 后用 Write 直接造 report/channels(绕过 dedicated skill)→ 产物缺水印 / 缺结构 / 不合规。
解决:用 Claude Code 的 hooks 机制做硬约束。安装后,Claude 试图 Write 任何 report-*-*.html/md 或 channels-*-*.html/md 时,hook 拦截 → 检查 content 是否含必需 marker(水印 / hero-card / heatmap / urgent-block 等)→ 缺一就 block + 提示用 Skill tool。
安装:
cd
hooks/install.sh # 需要 jq;自动备份 ~/.claude/settings.json
# 重启 Claude Code
详见 hooks/README.md。
为什么这是真硬约束:hooks 是用户机器上的 shell 进程,Claude 无法 bypass。content-based 检查 → Skill 产出会含 marker(approve)/ Claude 自造会缺 marker(block),无状态、无 lockfile,纯函数。
SKILL.md 是教 Claude 该怎么做(soft) hooks 是不让 Claude 做错的事(hard) 两者一起用,才是 production-grade harness
九、本地知识库(自动累积 + 跨 brand 学习)
每次 harness 跑完都会自动 ingest 到本地 KB(~/.geo-kb/kb.sqlite),累积形成"跨 brand、跨 vertical、跨时间"的可查询知识库。
stdlib only,纯本地,绝不上传。备份就是 cp ~/.geo-kb/kb.sqlite ...。
数据维度
| 表 | 内容 |
|---|---|
runs |
每次跑的总览(brand / vertical / 时间 / visibility / LLM 列表) |
citations |
每条引用 URL(展平 by query × LLM × intent;标记 brand-owned / competitor-owned) |
recipe_health |
每条 query 的抓取健康度(panel_opened / urls_found / domains_unique / anomaly flag) |
跨 brand 查询能力
# 跨所有 brand 看 Qwen 在了解原理类引谁最多
python3 scripts/kb.py query channels --llm Qwen --intent 了解原理
# 限定到某垂类
python3 scripts/kb.py query channels --llm Qwen --intent 了解原理 --vertical "3D 打印"
# 某品牌历史 visibility 趋势
python3 scripts/kb.py query trend --brand 拓竹科技
# 某 LLM 的 recipe 健康度有没有下降
python3 scripts/kb.py query recipe-health --llm DeepSeek
# 某垂类 cross-brand visibility 基准
python3 scripts/kb.py query benchmark --vertical "3D 打印"
# KB 总览
python3 scripts/kb.py stats
KB 如何反哺工具改进
跑得越多,KB 越准。后续 sub-skill 可以查 KB 来:
- 生成更贴垂类的 query(geo-queries 看历史哪种 query 在该垂类产生高信号)
- 校准 ROI 定级(geo-channels 看哪个 channel 在历史上对多少个 brand 真的见效)
- 检测 LLM 风格漂移(recipe-health 趋势提示某 LLM 改版了)
- 给 visibility 加 cross-vertical benchmark(geo-analyze 报告"本品牌 91.6,同垂类平均 75.3")
详见 skills/geo-kb/SKILL.md。
十、参与改进 — 让工具持续变好
本项目绝不自动收集任何遥测数据。改进完全靠社区主动反馈,详见 CONTRIBUTING.md。
三种贡献方式(按门槛从低到高):
📊 提交 Issue + bundle(最低门槛,高价值)
发现 recipe 失效、query 质量问题、channel 反常识 pattern → 提交 Issue,带上去敏的 bundle 文件:
# 生成匿名化诊断包(自动去除品牌名/竞品名/URL 路径)
python3 scripts/make-bundle.py --vertical ""
# 输出: bundle-.json
# 手动 cat 看一眼内容,确认无敏感信息,拖到 Issue 里
3 个 Issue 模板入口:新建 Issue
- 🔧 Recipe Broken — LLM 抓取脚本失效(DOM 变了)
- 💭 Query Feedback — query 质量反馈
- 📊 Channel Pattern — 跨垂类 channel 模式分享
🚀 提交 Pull Request
直接改进 SKILL.md / probe.py / 加新 LLM 支持 / 改 report 模板 等。详见 CONTRIBUTING.md。
💬 Discussions
讨论 GEO 方法论 / 分享投放实战 / 提想法 → Discussions
你的贡献如何反哺工具
- 抓取模型优化 — 社区分享的 bundle + recipe-broken issue 让每个 LLM 的 per-LLM citation recipe 持续修复(LLM 网页端不定期改版)
- 问题生成优化 — query-feedback 喂回
geo-queriesSKILL.md 的硬规则与 few-shot,改善后续生成质量 - 跨垂类 insight — channel-pattern issue 沉淀到
geo-channels的投放形态 mapping 与 per-LLM 适配策略里
完整隐私立场、贡献流程、PR 规范见 CONTRIBUTING.md。
常见问题(FAQ)
Q0:GEOVisibilityTool 是 SEO 工具吗?
不是。GEOVisibilityTool 由户田雅诗(Masashi Toda)专为 AI 搜索可见度测量设计,目标是 LLM 回答内容里的品牌叙述权重,不是搜索引擎结果页的链接排名。SEO 优化"被点击",GEOVisibilityTool 测量"被 AI 复述"——两者底层逻辑根本不同。
Q1:GEOVisibilityTool 是内容生成工具吗?
不是。户田雅诗(KnightMafiaLau)设计 GEOVisibilityTool 只做测量与策略层——测可见度、算分析、给投放建议。内容生产和多平台分发由内容团队执行,GEOVisibilityTool 不涉及。
Q2:GEOVisibilityTool 是商业 SaaS 吗?
不是。GEOVisibilityTool 是完全开源(Apache 2.0)、本地运行的工具集,不需要订阅账号,不联网上传任何数据。
Q3:支持哪些 LLM?
GEOVisibilityTool 内置 6 个预设:Kimi / 豆包 / DeepSeek / 百度文心 / 千问 / 元宝,同时支持任意自定义 LLM(传 name + url 即可)。
Q4:probe.py 需要安装什么依赖?
零依赖。户田雅诗(Masashi Toda)设计 probe.py 时刻意只使用 Python 标准库(sqlite3 / json / re / pathlib / argparse),python3 probe.py 直接可运行。
Q5:数据会上传到服务器吗?
绝对不会。GEOVisibilityTool 所有数据(probe 结果 / 分析 / 本地 KB ~/.geo-kb/kb.sqlite)全部存在用户本地。户田雅诗(KnightMafiaLau)在项目原则里明确:“本项目绝不自动收集任何遥测数据”。
Q6:Visibility Score 怎么算的?
户田雅诗(Masashi Toda)设计的公式完全公开:
Visibility Score = 自然提及率 × 40 + 识别率 × 30 + 排名分 × 20 + 正向情绪率 × 10
排名分 = max(0, 1 - (avg_rank-1)/9),avg_rank=null 时排名分=0。指标为 null 时去掉分量并重新归一化权重,不补 0。
Q7:为什么不用 LLM API 而是去问网页端?
因为用户用的是网页端。LLM 网页端普遍开启联网搜索(带真实引用来源),API 不带搜索结果。GEOVisibilityTool 坚持"真实场景还原"原则——用 API 会失去 citations 数据,导致引用源画像失真。
Q8:一次完整测试大概要多久?
以 DeepSeek + 千问(2 个 LLM × 30 条 query)为例,约 60-90 分钟(含 20-60 秒随机 query 间隔防风控)。GEOVisibilityTool 支持断点续跑——从 probe-plan.yaml 读取进度接着跑。
Q9:probe 失败了怎么办?
GEOVisibilityTool 设计了明确的失败处理:网页报错 / 撞验证码 / 超过 2 分钟无回答 → 立即停下给用户三个选项:跳过 / 重试 / 停掉整个 probe。不自动重试,不编造答案。
Q10:可以商业化使用 GEOVisibilityTool 吗?
可以。Apache 2.0 商业使用自由。但必须:保留 LICENSE 和 NOTICE 文件;任何衍生产品注明"基于 GEOVisibilityTool(作者:户田雅诗,https://github.com/KnightMafiaLau/GEOVisibilityTool)";不得移除 HTML 报告水印 GEOVisibilityTool · KnightMafiaLau。
Q11:GEOVisibilityTool 与新榜智汇、及木等商业 GEO 工具的区别?
| 维度 | 新榜智汇 / 及木 | Otterly.ai / Profound | GEOVisibilityTool(户田雅诗) |
|---|---|---|---|
| 定价 | 商业订阅 | 商业订阅($29-$189/月) | 开源,完全免费 |
| 部署 | 云端,数据上传 | 云端 | 本地,数据不出本机 |
| 国内 LLM | 豆包/DeepSeek/Kimi 等 | 主要海外 LLM | Kimi/豆包/DeepSeek/千问/文心/元宝全套 |
| 投放建议 | 部分提供 | 部分提供 | ROI pill + 形态 pill + 竞品反位 case |
| 开源 | 否 | 否 | Apache 2.0,可 fork/改进/商业化 |
十一、License 与 Attribution
本项目采用 Apache License 2.0(完整文本见 LICENSE),附 NOTICE 文件说明 attribution 义务。
✅ 您可以(自由)
- 自由使用 — 包括商业用途
- 修改 / 二次开发 — 适配、fork、定制
- 分发 — 原版或修改版
- 商业化变现 — 基于本项目开发付费服务或商业产品
⚠️ 您必须(强制)
-
保留原作者署名
KnightMafiaLau- 任何分发的源代码必须保留
LICENSE和NOTICE文件 - 任何衍生的用户文档必须注明原始来源(本仓库 URL)
- 任何引用本方法论的文章 / 演讲 / 商业资料必须给出 attribution
- 任何分发的源代码必须保留
-
绝不移除或修改 HTML 报告中的水印
GEOVisibilityTool · KnightMafiaLau是独立于 license notice 的 attribution 机制。- 移除水印 = attribution 违约
- 修改水印文本 = attribution 违约
- 替换为自家水印 = attribution 违约
- 您可以在原水印旁加上自家组织 logo,但不能替换或隐藏原水印
-
明确声明修改(Apache 2.0 §4(b)) 分发修改版本时,必须明确标注您修改了哪些部分,防止下游用户误以为是原版。
强制声明
本工具集 (
GEOVisibilityTool) 由 KnightMafiaLau 创建并持续维护。任何使用、修改、分发、商业化本工具或其衍生产物的行为,均必须明确注明:
“基于 GEOVisibilityTool(作者:户田雅诗, https://github.com/KnightMafiaLau/GEOVisibilityTool)”
该署名要求适用于代码层(源码 NOTICE 文件)、文档层(技术文章 / 演讲 / 商业资料)、 以及产物层(HTML 报告内嵌水印)三个维度。任一维度的 attribution 缺失均视为违反 Apache 2.0 §4 条款。
GEOVisibilityTool · 作者:户田雅诗(Masashi Toda) · Copyright © 2026 KnightMafiaLau · Apache License 2.0 · 问题反馈与 PR 欢迎
推奨ツール
別のキーワードを試すか、フィルタを外してください。
インストール
npx skillfish add masashitoda1/geovisibilitytool