跳转到主要内容
流量视图将 Humans 和 Agents 作为独立的计数呈现,而流量导出会将浏览量拆分为五列。本页解释这些数字背后的两个决策:Mintlify 何时将页面作为 Markdown 提供,以及浏览量如何归入各个类别。

Mintlify 何时提供 Markdown

每个页面都同时以 HTML 和 Markdown 形式提供。Mintlify 的边缘节点会在渲染之前为每个请求选择其中之一。当以下任一条件为真时,请求将收到 Markdown 响应:
  1. 路径以 .md 结尾。 例如,/analytics/traffic.md 始终返回 Markdown。
  2. Accept 头首选 Markdown。 Mintlify 按质量值对 header 中的媒体类型排序,并将首个 Markdown 类型(text/markdown、text/x-markdown 或 text/plain)与首个 HTML 类型(text/html 或 application/xhtml+xml)进行比较。如果存在某个 Markdown 类型,并且没有 HTML 类型或 Markdown 排名更靠前,则响应为 Markdown。
  3. user agent 是已知的 AI agent,且未请求 HTML。 如果 user agent 包含以下某个标识符,且 Accept 头没有将 HTML 排在 Markdown 之上,则即使请求中从未提及 Markdown,响应也将是 Markdown。
触发规则 3 的标识符包括 Claude-User、ChatGPT-User、OAI-SearchBot、PerplexityBot、Perplexity-User、Google-Agent、MistralAI-User、DuckAssistBot 和 cohere-ai。匹配采用不区分大小写的子串检查。 协商仅适用于文档页面。静态资源、llms.txt、skill.md、RSS、PDF 导出、MCP 端点、登录页面以及内部 /_mintlify/ 路由永远不进行协商。 HTML 和 Markdown 响应作为独立的变体缓存,以 Accept 和 User-Agent 头为键,因此浏览器永远不会收到缓存的 Markdown 响应。

请求如何成为一次浏览

Mintlify 记录两种页面浏览。 每次浏览都携带请求路径、referrer、IP 地址和 user agent。时间戳以 UTC 存储。

浏览量如何归类

分类仅使用 user agent 字符串。Mintlify 会不区分大小写地将其与四组已知 bot 和 agent 标识符的有序列表进行比较。第一个匹配的列表决定其类别。若无匹配,则归为 human。有关每个类别中的所有标识符,请参阅完整的 user agent 列表。 Mintlify 自身的流量,例如缓存重新验证和链接检查,会在计数前排除。

仪表板如何统计人类和 agent

仪表板将浏览类型与类别相结合:
  • Humans 是归入 human 类别的 HTML 页面浏览。
  • Agents 是 AI answers 类别中的所有浏览,加上 human 类别中的 Markdown 浏览。
即使 user agent 看起来像浏览器或通用 HTTP 客户端,Markdown 浏览仍计为 agent 流量。请求 Markdown 就是 agent 阅读文档的方式,因此该请求本身就是信号。这些浏览会出现在 agent 明细中的 Browser 和 HTTP clients 分组下。 Search index、Training 和 Other AI 的浏览量不计入任何一项。它们仅在导出中可见。
分类会信任客户端发送的 user agent。以标准浏览器 user agent 自我标识并抓取 HTML 的 agent 会被计为 human 浏览。直接打开 .md URL 的人会被计为 agent 浏览。

完整的 user agent 列表

Mintlify 按下述顺序对照这些标识符检查 user agent。匹配采用不区分大小写的子串检查,因此 chatgpt 会匹配 ChatGPT-User 以及任何包含该文本的 user agent。

AI answers

ChatGPT-User、chatgpt、Claude-User、claude-code、Cursor、Opencode、WarpBot、Perplexity-User、Google-Agent、GoogleAgent、Google-NotebookLM、Google-Read-Aloud、MistralAI-User、Copilot、Amzn-User、DuckAssistBot、xAI-SearchBot、Grok-DeepSearch、Meta-ExternalFetcher、Kimi-User、Qwen-User、Amazon-Bedrock-AgentCore-Browser、Shap-User

Search index

OAI-SearchBot、Claude-SearchBot、PerplexityBot、Google-InspectionTool、Googlebot、MistralAI-Index、Bingbot、msnbot、Amzn-SearchBot、meta-webindexer、Kimi-SearchBot、TikTokSpider、Baiduspider、YouBot、Petalbot、YisouSpider、Sogou web spider、Coveobot、amazon-kendra、Algolia Crawler、ref-tools-crawler、ShapBot、AteveSearchSourceUrlDiscovery、YandexBot、YandexMobileBot、YandexAccessibilityBot、YandexRenderResourcesBot、YandexImages、YandexNews、YandexWebmaster、Yeti/、360Spider、SeznamBot、Exabot

Training

GPTBot、ClaudeBot、GoogleOther、Google-Extended、Google-CloudVertexBot、Applebot-Extended、Applebot、Amazonbot、Meta-ExternalAgent、KimiBot、Bytespider、ERNIEBot、QwenBot、ChatGLM-Spider、DeepSeekBot、Deepseek、cohere-ai、cohere-training-data-crawler、AI2Bot、AI2Bot-Dolma、CCBot、PanguBot、ClueWeb-Crawler

Other AI

OAI-AdsBot、GrokBot、xAI-Bot、xAI-Grok、xAI-Web-Crawler、Grok、meta-externalads、facebookexternalhit、FacebookBot、Facebookbot、Doubaobot、YiyanBot、TongyiBot、AliyunBot、diffbot、FirecrawlAgent、SemrushBot-OCOB、SERankingBacklinksBot、Omgili、Omgilibot、webzio-extended、ImagesiftBot、VelenPublicWebCrawler、TurnitinBot、Timpibot、ICC-Crawler、DataForSeoBot、AwarioBot、AwarioSmartBot、AwarioRssBot、Kangaroo Bot、Sentibot、img2dataset、Meltwater、Seekr、peer39_crawler、Scrapy、Cotoyogi、aiHitBot、Factset_spyderbot、Barkrowler、HubSpot Crawler、AhrefsBot、SemrushBot、SiteAuditBot、AdsBot-Google、YaDirectFetcher、Google-Adwords、Screaming Frog、DotBot、MJ12bot、BLEXBot、serpstatbot、SEOkicks、trendictionbot、archive.org_bot、Decimal Bot、WebThreeCrawler、scopy-docs-crawler、quigon-manifest-fetcher、HeadlessChrome、PhantomJS

排除的内部流量

user agent 中包含 mintlify-revalidation 或 Mintlify-LinkChecker 的请求来自 Mintlify 自己的基础设施,会在任何计数之前被移除。