Community程式設計與開發github.com

liangdabiao/geo

完整的 GEO(生成式引擎优化)服务流水线:站点诊断、AI 答案采样、生成可执行工单、产出可部署资产(llms.txt / JSON-LD / 定义块 / FAQ / 内容大纲与初稿)、自动验收并打包交付物。支持国内外双市场并行。

geo 是什麼?

GEO 全流程服务是一个针对开发者与 GEO 服务提供者的 AI 技能,能够自动化完成从站点诊断到客户交付的完整生成式引擎优化(GEO)流程。 它通过抓取网站、进行六维体检、在多个 AI 平台(国内:智谱GLM、豆包、DeepSeek、Kimi、MiniMax、纳米AI、百度AI;海外:Gemini、ChatGPT、Claude、Grok、Perplexity)上采样 AI 答案,自动生成带有验收标准的执行工单。 该技能能够产出可直接部署的资产,如 `llms.txt`、JSON-LD 结构化数据、FAQ 片段和内容大纲,并能自动验证工单是否闭环,最终打包成可直接发送给客户的交付包。 它同时提供界面和命令行两种使用方式,支持国内和海外双市场并行运营,其方法论建立在超过 187,000 条真实引用数据的基础上,确保每一条建议都有数据支撑。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/liangdabiao/dsh-geo-optimizer/tree/HEAD/skills/geolook

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

GEO 全流程服務

從診斷到交付的完整鏈路,不只是給建議:

抓取 → 體檢 → AI答案採樣 → 產生工單 → 產出資產 → 報告 → 自動驗收 → 客戶交付包

核心判斷只有一句:GEO 的終點不是排名,是 AI 答案裡那句話是不是按你的口徑說的。 所以最小單位不是頁面,是可被抽取的事實塊。

專案目錄:/Users/brucejan/geo,每個客戶/產品一個 work/<slug>/。


最快的用法:給一個網址

python3 scripts/geo.py new --url https://example.com --market both

九步全自動:建專案 → 抓官網 → 體檢 → 自動推導品牌事實/競品/問題庫 → 重跑體檢 → AI 答案採樣 → 工單與建設藍圖 → 資產與報告 → 三份交付物。

產出 work/<slug>/deliverables/:

檔案回答什麼
1-GEO診斷報告.html現在什麼樣
2-GEO優化方案.html應該改成什麼樣、為什麼
3-GEO執行方案.html誰在什麼時候做什麼、做到什麼算完成

自動推導出來的品牌事實必須人工覆核——bootstrap 只從官網正文抽取, 抽不到的一律標「待確認」,絕不用常識填充。標了「待確認」的欄位 (成立時間、工商主體、可具名客戶等)需要你補齊或明確不對外說。

兩種用法

介面(推薦)

python3 scripts/geo.py ui        # 預設 http://127.0.0.1:8765

全流程都在介面上,不用記命令:新建專案、編輯設定與問題庫、寫事實卡、 一鍵跑任意步驟或整個週期(含即時日誌)、改工單狀態、看資產、匯入人工採樣表、打開交付包。

介面為暗色四段主線(AtlasGEO):現狀(總覽 / 引擎表現 / 競品對比 / 問題庫)→ 診斷(差距診斷 / 陣地地圖 / 品牌事實庫)→ 提升(行動計畫 / 內容工作台)→ 成效(效果驗收 / 報告與交付),外加設定與三步接入引導。統一說法:GEO 健康分(五項加權,未測項權重歸一)、提及率、引用份額、陣地、任務、內容。總覽標題是由數據自動生成的一句結論;所有數字來自同一份採樣,算不出的顯示「未測」,不編數。 任務在背景子行程跑,關掉頁面也會繼續;同一專案同時只允許一個任務,避免搶同一份 audit.json。

只用標準庫起服務,前端零外部依賴,斷網可用。

命令列

python3 scripts/geo.py serve --slug <專案>

抓取 → 體檢 → 採樣 → 工單 → 資產 → 報告 → 驗收上期 → 打包交付,全做完。 產出在 work/<slug>/delivery/<日期>/,可直接發客戶。

首次接一個新客戶走下面的步驟 0–2 做好底座,之後每期只跑這一條。


先讀什麼

  • 每次必讀:references/method.md(評分口徑和所有判據的出處,腳本就是它的程式碼實作)
  • 排外部信源優先級時必讀:references/cn-source-ranking.md (CN-GEO 187,818 條引用實算榜。官網只佔 1.37%,這個數字會改變資源分配)
  • 打國內平台:references/cn-platforms.md | 打海外:references/global-platforms.md
  • 寫內容/改頁面:references/content-patterns.md
  • 更深方法或原始數據:references/sources.md(含 GEORank / GEOFlow 選型說明)
  • 採樣/平台異常先對表:references/known-issues.md(豆包超時、302 國內/海外端點模型目錄、 SPA 空殼、llms.txt 範圍過濾)

不要憑經驗給 GEO 建議。每條建議都要能追到 method.md 裡的某條實測數字, 說不出依據的別寫進方案。


步驟 0 · 建專案

python3 scripts/geo.py init --url <產品官網> --name <品牌名> --market both

--market 取 cn / global / both。

雙市場不是「順帶也做海外」,是兩套並行的戰場——問題庫、內容、競品清單、指標全部分開。 紀律見 global-platforms.md 第 5 節。

步驟 1 · 吃透產品,建事實底座

讀官網 + 使用者給的材料(PDF/PPT/文件/公眾號文章都行),補全 geo.json:

  • brand:規範名、別名和常見錯寫(品牌消歧的地基)、產品線、行業、目標用戶、業務目標
  • competitors:3–6 個真實競品,帶別名。首期可以留空——先跑一輪「推薦類」問題的採樣, 從 AI 答案裡反推真實競爭集,比主觀拍腦袋準得多。雙市場時國內外競品通常不是同一批,都要列全 (排名指標是相對這個清單算的,漏掉真實對手會高估名次)

同時寫 work/<slug>/content/facts.md 品牌事實卡,範本見 content-patterns.md 第 1 節。 每條事實標證據等級 A–E,沒來源的標「待確認」,不許編。 這份文件是後面所有資產生成的輸入——llms.txt、JSON-LD、定義塊都從它來。

材料不夠就直接問用戶要,別猜產品能力和價格。

步驟 2 · 建問題庫

問題庫決定採樣什麼、寫什麼內容、怎麼算指標。按七組各出 3–6 題: 推薦 / 比較 / 替代 / 價格 / 風險 / 品牌驗證 / 場景。

每題必須標 market,腳本據此路由——中文題不會打到 Perplexity,英文題不會打到豆包:

{"id": "q001", "group": "推薦", "market": "cn",     "text": "國內做私域營運的 SaaS 有哪些好用的?"}
{"id": "q101", "group": "推薦", "market": "global", "text": "What's the best CRM for small B2B teams in 2026?"}
{"id": "q900", "group": "品牌驗證", "market": "both", "text": "<品牌> 是家什麼公司?"}
  • cn:中文口語問法,不要翻譯腔 | global:英文原生問法,不是機翻
  • both 只留給品牌驗證類。注意這類問題點名了品牌,答案必然複述品牌名, 腳本會把它們單獨歸入「品牌認知」,不混進可見性指標

每期循環(serve 自動做完,這裡說明每步在做什麼)

抓取 + 體檢

按六維打分:可抓取性 / 長度 / 結構 / 可抽取塊 / 權威訊號 / 對題性。 讀結果時先看四件事:

  1. SPA 空殼頁(word_count 接近 0)——國內官網最常見致命傷,AI 抓取器看到的是空白
  2. robots 有沒有封 AI 抓取器——封了就什麼都別談
  3. language_coverage 中英是否對等——做海外卻沒英文原生頁直接 P0
  4. block_gap 缺得最多的塊——內容工程第一優先級

AI 答案採樣

市場平台變數說明
國內智譜GLMZHIPUAI_API_KEYOpenAI 相容端點,不聯網
國內豆包ARK_API_KEY火山方舟;聯網要在控制台單獨開通內容外掛,沒開通自動降級
國內DeepSeekDEEPSEEK_API_KEY不聯網,測模型參數化知識裡的品牌認知
國內KimiMOONSHOT_API_KEY預設不聯網
國內MiniMaxMINIMAX_API_KEYOpenAI 相容端點,不聯網
海外GeminiGEMINI_API_KEYOpenAI 相容端點,不帶 grounding
海外OpenAI(ChatGPT)OPENAI_API_KEYChat Completions 預設不聯網
海外ClaudeANTHROPIC_API_KEYAnthropic 原生協定,不聯網
海外GrokXAI_API_KEYxAI API,不聯網
海外PerplexityPERPLEXITY_API_KEY原生聯網並回傳 citations,海外證據品質最好

Key 放專案根目錄 .env(已 gitignore,權限 600),腳本自動載入。

豆包在 302.AI 模式下走「搜尋+回答」組合,單題超時讀 .env 的 AI302AI_SEARCH_ASK_TIMEOUT (預設 45s)。平台/端點異常先對 references/known-issues.md 對表,別讓任務空轉。

沒有公開聯網 API 的——國內奈米AI搜尋/百度AI/豆包 App,海外 ChatGPT 網頁版/ Claude 網頁版——走人工或瀏覽器採樣:

python3 scripts/geo.py sample-sheet --slug <專案>
python3 scripts/geo.py sample-import --slug <專案> --file <採樣表>

口徑紀律(詳見 method.md 第 4 節):

  • 國內 ≠ 海外,跨市場平均提及率沒有解釋力,報告裡各佔一張表
  • API ≠ 網頁端,Web ≠ App(千問 web 與 App 信源只有 24.5% 重合),單獨記單獨算
  • 沒有答案原文/截圖/採樣環境記錄的,不許標成「真實採樣」
  • 歸因預設寫「觀察相關」,除非有基線視窗 + 對照 Prompt + 競品對照
  • 採樣頻率克制,遵守平台服務條款,不批量濫採、不模擬登入

產生工單 plan

診斷結果 → tasks.json,這是執行狀態的單一真相源。每條工單必須有: 依據(追到 method.md 哪一條)、負責角色、工作量、時間視窗、驗收標準、市場。

七個工作包:實體消歧 / 頁面技術 / 內容矩陣 / 標題體系 / 知識庫 / 外部證據 / 監測閉環。

優先級順序(method.md 第 6 節): 門票問題 → 事實錯誤 → 抽取塊缺口 → 高價值問題無承接 → 外部信源(P1,不是 P2) → 長尾擴量。

外部信源是 P1 不是 P2,因為官網只佔全庫引用 1.37%。 官網是事實源不是引用源,把它從 60 分做到 90 分的邊際收益,遠低於拿下一個榜單站詞條。

產出資產 generate

到 work/<slug>/assets/,中英分開:

產物說明
llms.txt / llms.en.txt官方事實索引,直接傳網站根目錄
jsonld/*.jsonOrganization / SoftwareApplication / FAQPage / Article / BreadcrumbList,貼進 <head>
snippets/definition.*.html定義塊,放首屏口號下方(口號保留,不影響轉換)
snippets/faq.*.htmlFAQ 塊,答案必須在靜態 HTML 裡可見,不要純 JS 折疊
outlines/*.md每個目標問題一份內容大綱(含標題候選、章節骨架、字數與抽取塊要求)
drafts/*.md加 --draft 時呼叫已配 LLM 出全文初稿

分工:結構性資產由程式碼確定性產生(不會漏 schema 欄位);文章正文由你按 outline 寫—— 程式碼寫不出好文案。--draft 的初稿必須人工核實事實後才能發布。

自動驗收 verify

重抓站點 → 跑 checker → 回寫工單狀態。這是「服務」和「建議」的分界線: 能自動驗收的,就不靠人口頭說做完了。做完會翻成 done,回歸了會翻回 todo。

無法程式判定的(如百科詞條是否過審)標「待人工」,確認後手動標記:

python3 scripts/geo.py task --slug <專案> --id T-003 --status done --note "詞條已上線"
python3 scripts/geo.py status --slug <專案>     # 進度看板

客戶交付 deliver

打包到 work/<slug>/delivery/<日期>/:總覽 index、診斷報告、執行方案、 工單表(HTML + CSV 可匯入專案管理工具)、驗收表、建設地圖、引擎表現 / 競品對比 (複用 UI 同一套 analytics 口徑,逐引擎提及率/引用份額/樣本回放 + 競品×引擎矩陣/失守問題)、 assets 目錄、交付說明。

跑完之後你要做的事(腳本做不了的部分):

  1. 讀 reports/latest.md 看 delta:均分漲跌、提及率變化、新出現的 P0
  2. 看「AI 實際引用的信源域名 Top」和「與全國大盤對照」——這是當期真實的分發地圖, 用它修正外部信源計畫
  3. 檢查採樣答案裡有沒有事實錯誤(品牌說錯、張冠李戴、價格錯、歸錯行業)→ 立刻 P0
  4. 按 outlines/ 寫內容,按 plan.md 更新進度

建議節奏:頁面體檢每週,答案採樣每兩週或每月(採樣有成本,指標本身有雜訊,跑太密看不出訊號)。


全部命令

命令作用
new★ 只給一個網址,全自動出三份交付物
autopilot對已建好的專案跑完整引導流程
bootstrap從官網正文推導品牌事實、競品、問題庫
deliverables出三份正式交付物(診斷/最佳化/執行)
init只建專案骨架,不跑流程
crawl / audit抓站 / 六維體檢
sample / sample-sheet / sample-importAPI 採樣 / 匯出人工採樣表 / 回灌
plan診斷結果 → 帶驗收標準的工單
generate產出可部署資產(--draft 加 LLM 初稿)
reportMarkdown + 自包含 HTML 報告,含 delta 與大盤對照
verify重抓並自動驗收工單(--no-recrawl 用現有結果)
task / status單條工單狀態 / 專案看板
deliver打包客戶交付物
ui全流程介面:新建專案、設定、問題庫、事實卡、一鍵執行、工單、資產、交付
serve全流程一條命令
cycle輕量循環(抓取→體檢→採樣→報告,不含工單與交付)
list所有專案

排期自動執行

用 schedule skill 建定時任務:

每週一早上跑 python3 /Users/brucejan/geo/scripts/geo.py serve --slug <專案>, 然後讀 work/<專案>/reports/latest.md,如果出現新的 P0、提及率下降超過 10 個百分點, 或有工單從 done 回歸成 todo,就告訴我。


邊界

做:GEO 診斷、方案、工單、內容工程、資產生成、AI 答案監測、驗收閉環、客戶交付包。

不做:

  • 傳統 SEO 關鍵字排名、外鏈買賣、競價投放
  • 建站/改站的實際程式碼實施(給方案、給可直接用的片段,落地由客戶開發做)
  • 繞過平台限制的批量採集、模擬登入、刷量
  • 編造品牌事實、客戶案例、價格或資質——查不到就標「待確認」,問用戶

不承諾任何平台一定會引用某個頁面。GEO 提高的是機率,不是保證。 給客戶寫方案時這句話必須原樣寫進去。


目錄

/Users/brucejan/geo/
├── SKILL.md
├── references/
│   ├── method.md              評分口徑與全部判據出處
│   ├── cn-source-ranking.md   國內信源實測榜(CN-GEO 實算,含復算腳本)
│   ├── cn-platforms.md        國內平台適配
│   ├── global-platforms.md    海外平台適配
│   ├── content-patterns.md    可抽取內容範本
│   └── sources.md             資料索引(含 GEORank / GEOFlow 選型)
├── scripts/
│   ├── geo.py       CLI 總入口
│   ├── crawl.py     抓站      audit.py     六維體檢
│   ├── sample.py    多平台採樣  benchmark.py 與全國大盤對照
│   ├── tasks.py     工單系統    generate.py  資產生成
│   ├── verify.py    自動驗收    deliver.py   客戶交付包
│   ├── bootstrap.py 自動推導底座  deliverables.py 三份交付物
│   ├── blueprint.py 建設地圖
│   ├── dashboard.py 介面後端    ui.html      前端工作台
│   ├── jobs.py      背景任務(子行程 + 即時日誌)
│   └── report.py    報告渲染    geolib.py    共用工具
└── work/<slug>/
    ├── geo.json        品牌、競品、問題庫、平台、目標
    ├── content/facts.md 品牌事實卡(所有資產的輸入)
    ├── evidence/       抓取快照      audit.json  體檢結果
    ├── samples/        採樣原始答案   metrics/    每期指標
    ├── tasks.json      工單(執行狀態單一真相源)
    ├── assets/         可部署資產
    ├── reports/        每期報告 + latest.md
    ├── verify/         每期驗收結果
    ├── delivery/<日期>/ 客戶交付包
    ├── history/        歷史基線(算 delta)
    └── plan.md         30/60/90 方案

相關技能