auto-geo
官方面向AI可见性的GEO优化内容发布引擎
你可以用 Auto Geo MCP 做什么?
- 审计任何页面的AI引用就绪状态 — 对URL运行
auto-geo doctor,获取一份评分报告,检查TL;DR存在性、问题格式标题、实体密度、JSON-LD等。 - 从目标查询生成GEO优化页面 — 使用
auto-geo write生成经过验证、可发布的JSON页面,符合完整的七块引用架构。 - 重写现有页面以通过所有GEO检查 — 将URL提供给
auto-geo fix,接收一个重新生成的版本,预计在引用就绪审计中获得8/8的分数。 - 衡量AI引擎是否实际引用你的域名 — 针对Perplexity、ChatGPT、Gemini、Claude或Grok运行
auto-geo check,查看哪些跟踪查询将你的域名作为来源返回。 - 跟踪引用覆盖率随时间的变化趋势 — 使用
auto-geo history查看逐次运行的覆盖率百分比、每个引擎的差异,以及哪些查询被新引用或丢失。 - 发现高意图查询以进行跟踪 — 让
auto-geo prompts discover分析你的域名,并提出你应在AI搜索结果中竞争的问题。
文档
auto-geo
让你的品牌在 ChatGPT、Claude、Gemini、Perplexity 和 Grok 中被提及的开源 GEO 引擎。
审计、生成、修复并追踪大语言模型引用的页面——一个基于文件的 CLI 工具,MIT 许可。
当有人向 ChatGPT、Perplexity、Claude、Gemini 或 Google AI Overviews 提出你的业务应该回答的问题时,这些引擎会引用_你的_域名吗?auto-geo 是实现这一目标并证明其正在发生的完整闭环:
auto-geo init # set up the system once
auto-geo doctor # audit any page for citation readiness
auto-geo write # generate publish-ready pages from target queries
auto-geo fix # rewrite an existing page so it passes the audit
auto-geo check # measure: do AI engines actually cite you?
auto-geo history # track citation coverage over time
一切都基于文件且可提交——追踪的提示词、检查历史、配置。无需服务器、无需账户、无需数据库。只需一次安装:
npm i -g auto-geo
由 Shadow 构建——一家媒体研究实验室,致力于打造下一代 AI 驱动的媒体智能与传播技术,并与那些让 OpenAI、TikTok、Meta、Amazon 和 Lovable 声名鹊起的团队合作。Shadow 使用
auto-geo发布内容至 shadow.inc/resources。
目录
- 快速入门
- 什么是 GEO?
- 工作流程
auto-geo init— 设置系统auto-geo doctor— 审计任何页面的引用就绪度auto-geo write— 根据查询生成页面auto-geo fix— 重写页面以提升引用就绪度auto-geo prompts— 管理你追踪的提示词auto-geo check— 衡量实际的引用覆盖率auto-geo history— 引用覆盖率随时间的变化- 配置
- 页面架构
- 代理友好的输出
- LLM 友好
- 贡献
- 许可证
快速入门
0. 安装一次(或通过 npx auto-geo@latest 一次性运行任何命令)
npm i -g auto-geo
1. 设置 — 配置、.env.local 密钥槽和 .auto-geo 工作区
auto-geo init
2. 向 .env.local 添加 API 密钥(每个命令都会自动加载)
3. 审计任何页面 — 你的或竞争对手的
auto-geo doctor https://example.com/some-page
4. 追踪你希望 AI 引擎引用你的提示词
auto-geo prompts add "最佳媒体监控工具" "什么是 GEO"
5. 衡量 — 每次运行都会自动保存到历史记录
auto-geo check
6. 观察覆盖率随时间的变化
auto-geo history
需要 Node >=18.17。后续升级使用 npm i -g auto-geo@latest。其他安装方式:
brew install shadowresearch/tap/auto-geo # Homebrew (macOS / Linux) mise use -g npm:auto-geo # mise
每个版本都提供适用于 macOS、Linux 和 Windows 的独立可执行文件(无需 Node)。
什么是 GEO?
生成式引擎优化是一门让你的页面成为 AI 搜索引擎在回答问题时引用的对象的学科。它是 SEO 的继任者:你不再竞争链接列表中的排名,而是竞争在_答案内部被引用_。
胜出的页面不是博客文章。实证研究将引用概率与特定的形态联系起来:
- 架构,而非散文。 命名、经过验证的区块——TL;DR、引言、问题格式的 H2 部分、相关指南、关键要点、FAQ、披露声明。AI 引擎提取结构化块;严格的结构能改善提取效果。
- 答案优先。 每个部分都以一个 40-60 词的“答案胶囊”开头,在任何支持性段落之前完整回答该部分的问题。
- 问题格式的标题。 H2 标题以用户实际向 AI 引擎提问的方式编写。
- 实体密集。 命名实体(公司、人物、产品)密度高——与约 4.8 倍更高的引用概率相关。
- 源自 Schema。 Article + FAQPage JSON-LD 从结构中发出,而非手工编写。
auto-geo 将这种形态编码在一个严格的 schema 中(参见 docs/sop.md — 完整的标准操作程序),根据它审计任何 URL,生成符合该形态的新页面,然后通过衡量引擎是否实际引用你来完成闭环。
工作流程
┌──────────────────────────────────────────────────────┐
│ auto-geo init │
│ config · .env.local · .auto-geo/ workspace │
└──────────────────────────────────────────────────────┘
│
┌──────────┼──────────────┬─────────────────┐
▼ ▼ ▼ ▼
doctor write fix prompts
audit a generate rewrite an track the queries
page new pages existing page that matter to you
│ │ │ │
└──────────┴──────────────┴────────┬────────┘
▼
check ──── saves every run ────┐
measure actual ▼
citations history
coverage over time,
newly cited / lost
doctor 衡量_就绪度_(此页面的形态是否适合被引用?)。check 衡量_结果_(它是否真的被引用了?)。history 将结果转化为趋势线。
auto-geo init — 设置系统
auto-geo init # 交互式(几个问题) auto-geo init --yes # 非交互式模板
一个命令搭建一切:
| 文件 | 说明 |
|---|---|
| auto-geo.config.json | 你的默认设置 — 域名、提供商、模型、作者。可提交;绝不包含机密信息。 |
| .env.local | API 密钥槽。每个命令都会自动加载。将其加入 Gitignore。 |
| .auto-geo/prompts.txt | 你追踪的提示词 — 每行一个,允许 # 注释。 |
| .auto-geo/checks/ | 每次检查运行,保存为 JSON。历史记录背后的数据。 |
交互流程结束时,会询问你想要追踪的提示词,因此一个新项目可以在一次操作中从零开始建立可衡量的引用基线。init 永远不会覆盖现有的 .env.local,并且在没有 --force 的情况下拒绝覆盖现有配置。
auto-geo doctor — 审计任何页面的引用就绪度
对任何 URL 运行——你的、竞争对手的、站点地图中的每个页面——并获得一份关于 AI 引擎所寻找的引用信号的结构化报告。
auto-geo doctor https://example.com/some-page
✓ TL;DR present (52 words, in range)
✗ Question-format H2 headings (2 of 6 are question-format; SOP §3 targets all)
✓ Article JSON-LD present
✗ FAQPage JSON-LD present (No FAQPage JSON-LD block detected)
✓ Entity density (12.3/1k words)
✗ Image cadence (0 images for 1247 words)
✓ Answer-first first paragraph
✓ No self-link in related guides
Score: 5 / 8 checks pass — moderate GEO posture
Top 3 fixes (ranked by citation lift):
1. Add a FAQPage JSON-LD block. Each Q is a citable extraction target.
2. Convert 4 statement-form H2 headings to question form.
3. Add 2 images with descriptive alt text (entity + context).
整个站点地图 — 平均分、得分最低的页面、最常见的失败项
auto-geo doctor --site https://example.com/sitemap.xml --max-pages 50
用于 CI / 仪表盘的 JSON
auto-geo doctor https://example.com/page --json
如果分数 ≥ 75%,退出码为 0,否则为 1 — 据此控制部署。参见 docs/doctor.md 获取完整的检查参考。
auto-geo write — 根据查询生成页面
给它你的域名和你希望被引用的查询;返回经过验证、可发布的 JSON 文件——每个查询一个结构化页面,符合完整的 GEO 架构。
auto-geo write
--query "什么是 GEO"
--query "GEO 与 SEO 对比"
--out ./resources
✓ "what is GEO" → ./resources/geo.json (validated, ~$0.06)
✓ "GEO vs SEO" → ./resources/geo-vs-seo.json (validated, ~$0.06)
Total: 2 pages · 2 ok · ~$0.12 spent · 31s elapsed
系统提示词编码了 GEO SOP——TL;DR 长度、答案胶囊窗口、禁止使用的最高级词汇、FAQ 结构——并且输出通过 Vercel AI SDK 的 generateObject 在类型系统级别被约束到 schema,并在验证失败时进行有界的自我修正循环。默认:gpt-5.4 (OpenAI) 或 claude-sonnet-4-6 (Anthropic),根据你设置的任何 API 密钥自动检测。
试运行 — 计划 + 成本估算,不调用 LLM
auto-geo write --query "什么是 X" --dry-run
从文件批量处理,使用 anthropic,一次 4 页
auto-geo write --queries-file queries.txt --provider anthropic --concurrency 4
有了配置文件 (auto-geo init),--domain、作者字段和提供商会从配置中获取——一个简单的 --query 就是你所需要的。参见 docs/write.md。
auto-geo fix — 重写页面以提升引用就绪度
doctor 告诉你哪里出了问题,而 fix 生成一个通过所有 8 项检查的 GEO 优化重写版本——获取、审计、重新生成,并根据 write 使用的相同 schema 进行验证。
auto-geo fix https://www.example.com/some-blog-post --out ./fixed.json
Score (before): 3 / 8
Generating rewrite via openai gpt-5.4...
Score (projected): 8 / 8 — strong GEO posture
→ ./fixed.json (validated)
auto-geo fix https://example.com/page --provider anthropic # 改用 Claude auto-geo fix https://example.com/page --dry-run # 仅审计 + 成本估算
参见 docs/fix.md。
auto-geo prompts — 管理你追踪的提示词
你追踪的提示词是你希望 AI 引擎通过引用你的域名来回答的问题。它们存放在 .auto-geo/prompts.txt(纯文本,可提交)中,并且是 check 默认运行的内容。
auto-geo prompts add "最佳媒体监控工具" "什么是 GEO" auto-geo prompts # 编号列表 auto-geo prompts rm 2 # 按索引 — 或按精确文本
不知道要追踪什么?让引擎为你提议提示词集 — discover 获取你的主页,查看你已追踪的内容,并让 LLM 生成你应该竞争的高意图查询:
auto-geo prompts discover --dry-run # 预览提议 auto-geo prompts discover --count 15 # 追加 15 个(绝不覆盖,绝不重复)
prompts add(和 discover)在首次使用时引导工作区,因此你甚至不需要 init 即可开始追踪。
auto-geo check — 衡量实际的引用覆盖率
对于每个提示词,询问一个真实的 AI 搜索引擎,并报告你的域名是否在引用之列。这是 doctor 所预测的真实情况。
auto-geo check # 追踪的提示词,域名来自配置
using 3 tracked prompts from .auto-geo/prompts.txt
[1/3] ✗ "what is GEO" — not cited (5 sources)
[2/3] ✓ "how do I get cited by ChatGPT" — cited (2 sources)
[3/3] ✓ "open source GEO tools" — cited (1 source)
Coverage: 2/3 queries (67%) · 3 page citations total · ~$0.012 spent
saved → .auto-geo/checks/2026-06-10T13-22-05--perplexity.json (auto-geo history)
引擎:perplexity(默认)、openai、anthropic、gemini、xai(别名 grok),或 --engine all — 它会运行每个已设置 API 密钥的引擎,并报告每个引擎的覆盖率以及联合汇总。
使用显式查询而非追踪的集合
auto-geo check --domain shadow.inc --query "什么是 GEO"
你拥有密钥的每个引擎,联合覆盖率
auto-geo check --engine all
CI:当关键查询未引用你时,使部署失败
auto-geo check --queries-file geo/critical-queries.txt && deploy
用于代理 / 仪表盘的流式 JSON
auto-geo check --ndjson
每次运行都会自动保存到 .auto-geo/checks/(使用 --no-save 可退出)。如果覆盖率 > 0%,退出码为 0,如果为 0%,则为 1。参见 docs/check.md 了解输出形状、扇出查询捕获、域名匹配规则以及 --format geo-audit 互操作模式。
auto-geo history — 引用覆盖率随时间的变化
保存每次运行的回报:一条趋势线。逐次运行的覆盖率,包含每个引擎的变化量,以及你开始或停止被引用的确切提示词。
auto-geo history
2026-06-01 08:30 perplexity 33% · 1/3 cited $0.01
2026-06-08 09:15 perplexity 67% ↑34 2/3 cited $0.01
Since last run (perplexity · 2026-06-01 08:30 ▸ 2026-06-08 09:15)
✓ newly cited open source GEO tools
✗ lost (none)
2 runs · .auto-geo/checks
趋势比较同类项——每次运行都相对于_相同引擎选择器_的上一次运行进行衡量。--engine all 过滤到多引擎运行;--limit N 控制深度;--json 以机器可读的方式发出行 + 变化量。参见 docs/history.md。
配置
使用 auto-geo init 设置一次,可在任何地方覆盖。优先级从高到低:
- CLI 标志
- 环境变量(根据设置的 API 密钥自动检测提供商)
auto-geo.config.json(从当前工作目录向上查找 — 对单体仓库友好)- 内置默认值
// auto-geo.config.json — 可提交,无机密信息 { "domain": "https://www.example.com", "basePath": "/resources", "provider": "openai", "model": "gpt-5.4", "engine": "perplexity", "concurrency": 4, "author": { "name": "Jane Doe", "jobTitle": "内容主管", "bio": "Jane 撰写关于生成式引擎优化的文章…", }, }
API 密钥存放在 .env.local(或 .env)中,每个命令都会自动加载——已设置的环境变量始终优先:
| 引擎 / 提供商 | 环境变量 |
|---|---|
| OpenAI (write, fix, check) | OPENAI_API_KEY |
| Anthropic (write, fix, check) | ANTHROPIC_API_KEY |
| Perplexity (check) | PERPLEXITY_API_KEY |
| Gemini (check) | GOOGLE_API_KEY 或 GEMINI_API_KEY |
| xAI / Grok (check) | XAI_API_KEY |
页面架构
write 和 fix 生成的一切——以及 doctor 审计的一切——都遵循一个严格的七块架构:
- TL;DR — 40-60 词的答案胶囊
- 引言 — 设置上下文的区块
- 部分 — 问题格式的 H2,每个都以 40-60 词的答案胶囊开头
- 相关指南 — 4-8 个条目
- 关键要点 — 4-6 个陈述性要点
- FAQ — 3-10 个问答,答案 40-60 词
- 披露声明 — 来源说明、时间戳、发布者行
结构性违规属于硬错误(生成的载荷会被拒绝并重新生成);密度和节奏启发式规则属于软警告。完整规范:
docs/architecture.md、docs/validation.md,以及每条约束背后的标准操作程序:docs/sop.md。
输出的 JSON 与渲染器无关——你可以将其 POST 到你的 CMS、填充模板,或用自己的组件进行渲染。结构本身就是契约。
面向智能体的输出
每条命令都设计为既能由人类驱动,也能由智能体驱动:
--json—— stdout 上输出一个稳定、机器可读的对象。--ndjson(检查)—— 随着结果流式传入,每行一个 JSON 查询,外加一行_summary。- 进度信息输出到 stderr,结果输出到 stdout —— 管道保持干净。
- 稳定的退出码 ——
doctor和check开箱即用,可作为 CI 关卡。 --no-color/NO_COLOR/ 非 TTY 检测,用于输出适合日志的格式。
auto-geo check --ndjson | jq 'select(.cited) | .query'
对 LLM 友好
auto-geo 是一个工具,其输出内容旨在被 LLM 引用——因此本仓库也使用自己的工具:
llms.txt—— 遵循 llmstxt.org 约定的精选索引。llms-full.txt—— 将 README 及所有实质性文档内联到单个文件中,以便一次性获取。- GitHub Pages 站点位于 shadowresearch.github.io/auto-geo —— 通过
<link rel="alternate">进行宣传,并输出 Article JSON-LD。 AGENT.md—— 一份紧凑的操作规范,供驱动 CLI 的编码智能体使用。
贡献
请参阅 CONTRIBUTING.md。欢迎提交错误报告、检查改进、新引擎和文档完善。
- 行为准则
- 安全策略
- 更新日志
许可证
MIT。
关于 Shadow
Shadow 是一家媒体研究实验室,致力于构建下一代 AI 驱动的媒体情报与传播技术,并与那些让 OpenAI、TikTok、Meta、Amazon 和 Lovable 声名鹊起的团队合作。Shadow 按计划为媒体研究、公关和传播团队端到端运行 auto-geo。
了解更多信息,请访问 shadow.inc。