Cloudflareが2026年2月12日に発表した「Markdown for Agents」は、AIエージェントやクローラーがWebページを取得する際に、HTMLではなくMarkdown(text/markdown)として受け取れるようにする機能です。ポイントは「コンテンツ提供側がCloudflareの設定を有効化するだけ」で、リクエスト側はAcceptヘッダーで希望形式を伝えるだけ、という手軽さにあります。 Cloudflareは「Markdown for Agents」を発表し、Cloudflare配下のサイトで機能を有効にすると、クライアント(AIエージェント等)が 結論:「HTML→Markdown変換」をエッジ側に寄せることで、エージェントがページを読む前処理(抽出・整形)を軽くし、トークンコストと実装負担を下げるのが狙いです。
何が発表された?
Accept: text/markdownを送ったときに、CloudflareネットワークがHTMLをMarkdownへ自動変換して返せるようになりました。ブログ記事では、HTMLのままAIに読ませると不要なタグやナビゲーションが増え、トークンを浪費しやすい点を課題として挙げています。実例として、同社ブログ記事がHTMLでは16,180 tokens、Markdownでは3,150 tokensになり「80%削減」と説明されています。
仕組みの要点
Acceptで形式を指定
動作はコンテンツネゴシエーションです。クライアントがAcceptヘッダーにtext/markdownを含めてリクエストすると、CloudflareがオリジンからHTMLを取得し、可能な場合はMarkdownに変換して返します。レスポンスにはVary: acceptが付与され、ヘッダーの違いによる表現差(HTML/Markdown)を区別する意図が示されています。
x-markdown-tokens
変換レスポンスにはx-markdown-tokensヘッダーが含まれ、Markdown文書の推定トークン数が返ります。エージェント実装では「コンテキストウィンドウの予算管理」や「チャンク設計」の判断材料として使えます。
Content-Signalヘッダー
Cloudflareのドキュメントによると、既定ではContent-Signal: ai-train=yes, search=yes, ai-input=yesが付与されます。これはContent Signalsの枠組みを使い、コンテンツ利用の意思表示をヘッダーで伝える設計です(将来的にカスタムポリシー提供予定とも記載)。
使い方
curlで試す
Markdown提供が有効なゾーンに対して、次のようにリクエストします。
curl https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/ \
-H "Accept: text/markdown"fetchで実装
Workers等の実装でも同様にAcceptを付けるだけです(下は概念例)。
const r = await fetch("https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/", {
headers: {
Accept: "text/markdown, text/html",
},
});
const tokenCount = r.headers.get("x-markdown-tokens");
const markdown = await r.text();
注意:相手サイト側(Cloudflareゾーン)でMarkdown for Agentsが有効化されていない場合、常にMarkdownが返るわけではありません。「どのサイトでも1発で変換」ではなく「有効化されたサイトに対する交渉」です。
有効化の方法
ダッシュボード
Cloudflareのドキュメントでは、ダッシュボードから該当ゾーンを選び、AI Crawl Controlの項目でMarkdown for Agentsを有効化する手順が示されています(プラン要件あり)。
APIで有効化
APIの場合、ゾーン設定として/client/v4/zones/{zone_tag}/settings/content_converterへ{"value": "on"}をPATCHします。
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/{zone_tag}/settings/content_converter" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_token}" \
--data-raw '{"value": "on"}'
補足:Cloudflare側の記載では、Pro/Business/Enterpriseプラン等で利用でき、SSL for SaaSでも追加費用なしとされています。
制約と注意点
HTMLのみが対象
Cloudflareドキュメントの「Limitations」では、現状はHTMLからの変換に限定される旨が記載されています。PDFやOffice文書などを同じ仕組みで変換できるとは限りません。
オリジン圧縮は非対応
制約として「オリジンからの圧縮レスポンスはサポートしない」点が明記されています。既存サイトの配信設定によっては期待通りに変換されない可能性があります。
ゾーン単位の設定
Markdown for Agentsはゾーン単位の設定です。サブドメインごとに挙動を変えたい場合は、ゾーンを分ける必要があるとされています。
代替手段の比較
Cloudflareは「Markdown for Agents」と別に、任意ドキュメント変換向けの手段も案内しています。要件に応じて使い分けるのが現実的です。
| 手段 | 対象 | 強み | 注意点 |
|---|---|---|---|
| Markdown for Agents | Cloudflareで有効化したゾーンのHTML | Acceptヘッダーだけで取得、エッジ変換 | ゾーン側の有効化が前提、制約あり |
| Workers AI toMarkdown | 複数形式(機能として案内) | Cloudflare外の文書も扱える用途に向く | API実装が必要、ケースにより費用に注意 |
| Browser Rendering /markdown | ブラウザレンダリング後の変換 | 動的ページの変換に向く | レンダリングのコスト・待ち時間が増える |
活用のユースケース
エージェントの前処理削減
従来、エージェントはHTMLから本文抽出→Markdown化→分割という前処理を行いがちでした。このうち「HTML→Markdown」部分を配信側で肩代わりできるため、実装の簡素化とコスト削減が見込めます。
監視と可視化
Cloudflareブログでは、RadarでAIボット/クローラーのトラフィックについて、返したMIME typeの分布を可視化する機能に触れています。運用側で「どの程度Markdownで供給できているか」を把握しやすくなります。
まとめ
Cloudflareの「Markdown for Agents」は、Accept: text/markdownをトリガーに、HTMLをオンザフライでMarkdownへ変換して返す仕組みです。エージェント側の前処理・トークン浪費を抑えられる一方で、ゾーン側の有効化が前提であり、HTMLのみ・オリジン圧縮非対応などの制約もあります。自社サイトがCloudflare配下なら、まずは対象ゾーンで有効化し、エージェントから実際にMarkdown取得できるかを検証するのが現実的です。