Cloudflare自动将HTML转为Markdown供AI代理抓取,节省80%token成本!

Cloudflare新功能自动将HTML转为Markdown供AI代理抓取,节省80%token成本,标志着互联网从搜索引擎时代迈入AI代理时代,内容创作者需重新思考网站架构。

过去二十年,网站拼命讨好谷歌爬虫,SEO优化成了流量密码。现在AI代理和智能爬虫崛起,它们要的不是花里胡哨的HTML,而是干净利落的Markdown。

Cloudflare推出Markdown for Agents功能,让网站可以一键把HTML转换成Markdown喂给AI,省下80%的token成本。

这不仅是技术优化,更是互联网权力结构的转移——从人类读者优先,变成AI代理和人类平起平坐。



互联网流量正在换爹

传统SEO逻辑是讨好搜索引擎,让谷歌把你排在前面。现在情况变了,大街上突然冒出来一群机器人,它们不看你装修得多漂亮,只关心你能不能快速给它们一杯纯奶茶,不要珍珠不要椰果不要花里胡哨的包装。这群机器人就是AI代理和智能爬虫,它们正在接管互联网流量的主导权。

过去网站设计全是为了人类眼睛服务的。导航栏要炫酷,轮播图要惊艳,JavaScript动画要丝滑。这些对人类来说是视觉享受,对AI来说全是噪音。AI代理的目标是快速抓取核心信息,过滤掉所有无关元素。这就好比你给学霸讲题,直接给公式和步骤就行,不用铺垫"这个知识点很重要哦""我们来看一下这个概念"。AI要的就是这种直奔主题的效率。

Cloudflare的工程师们敏锐地捕捉到了这个趋势。他们意识到,未来的互联网必须同时服务两类访客:人类和AI代理。而且AI代理的要求更苛刻——它们用token计费,冗余的HTML标签就是在烧钱。

一个简单的问题,用Markdown表达可能只要3个token,用HTML可能要15个token,这还不算那些div包裹、导航栏、脚本标签等毫无语义价值的填充物。当AI代理成为流量入口,网站必须重新思考自己的内容呈现方式。



Markdown成了AI世界的普通话

说到Markdown,这玩意儿简直就是为AI量身定做的。它干净、结构化、没有废话。你想表达一个二级标题,Markdown里写两个井号就行:关于我们。同样的意思用HTML表达,要写成h2 class="section-title" id="about",多了class属性、id属性、尖括号、斜杠,全是AI不需要但必须处理的噪音。

Cloudflare的博客文章做了一个对比实验。同一篇文章,HTML版本要16180个token,Markdown版本只要3150个token,直接砍掉80%的token消耗。这是什么概念?假设你用的是按token计费的AI服务,这相当于同样的内容,成本直接打两折。对于需要处理海量网页内容的AI代理来说,这种效率提升就是生死攸关的竞争优势。

Markdown之所以成为AI系统的通用语言,核心在于它的显式结构。人类看HTML页面,眼睛会自动忽略广告、导航栏、页脚,聚焦到正文内容。AI没有这种直觉,它必须解析整个DOM树,判断哪些元素重要,哪些可以丢弃。这个过程既消耗算力,又容易出错。

Markdown把结构直接写在明面上,# 是一级标题,是二级标题,- 是列表项,AI一眼就能看懂,不用猜。

问题是,整个互联网都是HTML建的,而且网页体积这些年一直在膨胀。根据HTTP Archive的数据,网页平均大小从2010年的702KB涨到了现在的2.5MB以上。这些增重主要来自JavaScript、CSS、图片和追踪脚本,对AI来说全是负担。

现有的解决方案是,AI管道在抓取网页后,先把HTML转换成Markdown再处理。这个步骤成了标配,但远非理想状态。



HTML转Markdown的痛点让人头秃

现在的AI工作流程是这样的:爬虫抓取HTML → 解析DOM → 清洗噪音 → 转换成Markdown → 喂给语言模型。这个链条每一个环节都在消耗资源。首先是计算成本,转换HTML需要运行专门的库,比如Python的markdownify或者BeautifulSoup,处理一个复杂页面可能要几十毫秒。其次是经济成本,Cloudflare要为此支付额外的CPU和内存开销。最重要的是,这种转换可能违背内容创作者的初衷。

举个例子,你写了一篇技术博客,精心设计了代码高亮、交互式演示、折叠面板。HTML转Markdown的工具可不管这些,它可能把你的代码块当成普通文本,把交互组件直接删掉,把折叠内容全部展开或者全部丢弃。最终AI看到的内容,跟你实际想表达的可能大相径庭。这就好比你精心准备了一桌满汉全席,结果客人只吃了白米饭,还抱怨味道一般。

更麻烦的是,转换过程本身就不完美。HTML的表达能力远超Markdown,表格、嵌套列表、自定义组件,这些在Markdown里要么表达受限,要么需要扩展语法。不同的转换工具实现方式不同,同一个页面用工具A转换是一个结果,用工具B转换是另一个结果。AI代理面对的是一片混乱的Markdown方言,而不是统一的标准格式。

Cloudflare的工程师们看不下去了。他们想,既然转换是必需的,为什么不直接在源头解决?与其让每个AI代理都自己写转换逻辑,不如由CDN统一处理,一次性把干净的Markdown交给所有需要的人。这就是Markdown for Agents功能的诞生背景。



Cloudflare的解决方案简单粗暴

Cloudflare的做法很直接:在边缘网络层拦截请求,如果检测到AI代理想要Markdown版本,就实时把HTML转换成Markdown返回。整个过程对网站管理员透明,对AI代理友好,对终端用户无感。

具体实现依靠HTTP的内容协商机制。AI代理在请求头里加上Accept: text/markdown,Cloudflare的边缘节点识别到这个偏好,从源站获取HTML版本,用高效的转换引擎处理成Markdown,再返回给请求方。响应头里还会带上x-markdown-tokens字段,告诉客户端这份Markdown大概消耗多少token,方便做上下文窗口管理。

这个设计的精妙之处在于,它不需要网站改动任何代码。只要开启功能,所有使用Cloudflare的站点都能自动支持。AI代理也不用改抓取逻辑,照常发送请求,只是多带一个头部,就能拿到更干净的数据。这是一种零摩擦的升级路径,符合Cloudflare一贯的"让复杂变简单"的产品哲学。

技术实现上,Cloudflare利用了其全球边缘网络的计算能力。转换逻辑运行在距离用户最近的边缘节点,延迟极低。而且转换是按需进行的,只有AI代理请求Markdown版本时才会触发,普通人类访客继续收到HTML版本,不受影响。这种智能路由保证了向后兼容性,不会破坏现有用户体验。



代码示例手把手教学

来看看实际怎么用。如果你用curl命令行工具,请求Cloudflare开发者文档的Markdown版本,命令是这样的:

curl https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/  \
  -H "Accept: text/markdown"

就这么简单。加了一个-H参数指定Accept头部,Cloudflare就返回Markdown格式。响应大概长这样:

HTTP/2 200
date: Wed, 11 Feb 2026 11:44:48 GMT
content-type: text/markdown; charset=utf-8
content-length: 2899
vary: accept
x-markdown-tokens: 725
content-signal: ai-train=yes, search=yes, ai-input=yes

--
title: Markdown for Agents · Cloudflare Agents docs
--

<strong>What is Markdown for Agents</strong>

The ability to parse and convert HTML to Markdown has become foundational for AI.
...

注意x-markdown-tokens: 725这个头部,它告诉你这份Markdown大概消耗725个token。你可以用这个值来决定要不要继续处理,或者怎么分块处理。如果你的AI代理有上下文长度限制,这个信息就是救命稻草。

如果你用Cloudflare Workers写AI代理,TypeScript代码是这样的:

const r = await fetch(
  <code>https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/ </code>,
  {
    headers: {
      Accept:
"text/markdown, text/html",
    },
  },
);
const tokenCount = r.headers.get(
"x-markdown-tokens");
const markdown = await r.text();

这里Accept头部同时声明了text/markdown和text/html,意思是"我优先要Markdown,如果没有就给HTML"。这种降级策略保证了兼容性,即使目标站点不支持Markdown for Agents,你的代理也能正常工作。

Claude Code和OpenCode这些主流编程代理已经在发送这些Accept头部了。它们早就意识到Markdown的价值,只是之前需要自己处理转换。现在Cloudflare帮它们省了这一步,响应直接就是Markdown格式。这就是生态系统的进化——当基础设施跟上需求,整个行业的效率都会提升。



内容信号政策保护创作者权益

去年Cloudflare生日周期间推出了Content Signals框架,让内容创作者可以声明自己的内容如何被使用。这次Markdown for Agents功能也集成了这个机制。

当Cloudflare返回Markdown版本时,响应头里会包含:

Content-Signal: ai-train=yes, search=yes, ai-input=yes

这明确表示:这份内容可以用于AI训练、搜索结果和AI输入(包括代理使用)。创作者通过这种方式保持对自己内容的控制权,AI代理也能清楚知道哪些内容可以安全使用。

未来Cloudflare计划允许自定义Content Signal策略。比如你可以选择只允许搜索索引,不允许训练使用;或者只允许个人代理访问,禁止商业爬虫。这种细粒度的控制是尊重创作者权益的重要一步。毕竟,AI时代的内容价值正在被重新定义,创作者有权决定自己的劳动成果如何被利用。

这个机制也解决了AI行业的一个痛点:版权合规。现在很多AI公司因为训练数据版权问题被起诉,很大程度上是因为它们不清楚抓取的网页允许什么用途。Content Signals提供了机器可读的许可声明,降低了法律风险,也让合规变得自动化。



实际效果数据说话

Cloudflare已经在自己的开发者文档和博客上启用了这个功能。你可以亲自验证,用下面的命令请求这篇博客的Markdown版本:

curl https://blog.cloudflare.com/markdown-for-agents/  \
  -H
"Accept: text/markdown"

返回的内容开头是这样的:

--
description: The way content is discovered online is shifting, from traditional search engines to AI agents that need structured data from a Web built for humans. It’s time to consider not just human visitors, but start to treat agents as first-class citizens. Markdown for Agents automatically converts any HTML page requested from our network to markdown.
title: Introducing Markdown for Agents
image: https://blog.cloudflare.com/images/markdown-for-agents.png 
--

# Introducing Markdown for Agents

The way content and businesses are discovered online is changing rapidly...

干净的YAML前置元数据,清晰的标题层级,没有HTML标签污染。这就是AI代理梦寐以求的内容格式。对于需要批量处理网页的AI系统来说,这种一致性意味着更简单的解析逻辑,更少的边缘情况处理,更可靠的输出质量。

Cloudflare Radar现在也增加了内容类型洞察功能,可以追踪AI机器人和爬虫的流量模式。新的content_type维度展示了AI代理接收的内容类型分布,按MIME类型分类。你可以看到哪些AI代理在请求Markdown,比如OAI-Searchbot(OpenAI用来给ChatGPT搜索提供支持的爬虫)的Markdown请求量。

这些数据是公开的,通过Radar API和数据探索器都能访问。Cloudflare用这种透明的方式帮助整个行业理解AI如何消费网络内容,这种开放态度值得点赞。毕竟,当基础设施提供商分享洞察,整个生态系统都能受益。



其他转换方案作为备选

如果你的AI系统需要处理Cloudflare网络之外的文档,或者目标站点没有开启Markdown for Agents,Cloudflare还提供了其他转换方案。

Workers AI的AI.toMarkdown()方法支持多种文档类型,不只是HTML,还能做摘要。如果你的应用场景需要处理PDF、Word文档,这个API能帮上忙。

Browser Rendering服务的/markdown REST API则适合处理动态页面。有些现代网站用JavaScript渲染内容,直接抓HTML只能拿到空壳。Browser Rendering先用真实浏览器渲染页面,再转换成Markdown,保证拿到完整内容。

这些方案形成了完整的工具链:优先尝试Markdown for Agents获取原生Markdown,不行就用Workers AI处理静态文档,复杂的动态页面交给Browser Rendering。无论面对什么类型的内容,都有对应的解决方案。

这种产品矩阵体现了Cloudflare的野心——不仅要做好CDN和安全,还要成为AI时代的基础设施提供商。当AI代理成为网络的主要访客,为它们优化内容交付就是战略制高点。



开启方法简单到离谱

想为自己的站点开启这个功能?步骤简单得令人发指:

登录Cloudflare仪表板 → 选择账户 → 选择域名 → 找到Quick Actions → 打开Markdown for Agents开关。完成。

这个功能目前处于Beta阶段,Pro、Business、Enterprise套餐用户免费使用,SSL for SaaS客户也能用。Cloudflare一贯的定价策略——基础功能普惠,高级功能分层——在这里继续奏效。

开发者文档里有更详细的说明,包括API参考和故障排查。Cloudflare团队表示欢迎反馈,他们会根据实际使用情况持续优化。这种开放迭代的态度,让Beta功能也能放心使用。



总结与行动建议

Cloudflare推出Markdown for Agents功能,让网站可以自动为AI代理提供Markdown格式的内容,节省80%的token消耗。这不仅是技术优化,更是互联网向AI时代进化的基础设施升级。Celso Martinho和Will Allen用务实的风格讲清楚了这场变革的来龙去脉,给出了具体的代码示例和开启方法。

对于网站所有者,建议立即检查自己的Cloudflare设置,开启这个功能。对于AI开发者,建议更新代理的HTTP客户端,添加Accept: text/markdown头部。对于内容创作者,建议重新审视自己的内容结构,确保核心信息清晰易提取。

互联网正在换爹,从搜索引擎驱动变成AI代理驱动。适应这个变化,就是拥抱未来。