← Cloudflare Fundamentals / fundamentals / reference
Markdown for Agents
Что такое Markdown for Agents
Markdown быстро стал общим языком для агентов и ИИ-систем в целом. Чёткая структура этого формата идеально подходит для обработки ИИ и в итоге даёт более качественные результаты при минимальном расходе токенов.
Сеть Cloudflare поддерживает преобразование контента в реальном времени на источнике для зон, где включено использование согласование содержимого ↗ заголовки. Когда системы ИИ запрашивают страницы с любого сайта, использующего Cloudflare с включенным Markdown for Agents, они могут указать предпочтение для text/markdown в запросе, и наша сеть автоматически и эффективно преобразует HTML в Markdown на лету, когда это возможно.
Прочитайте анонс ↗ в нашем блоге, чтобы узнать больше.
Как использовать
Чтобы получить Markdown версию любой страницы зоны, для которой включена функция Markdown for Agents, клиенту нужно добавить Accept заголовок согласования с text/markdown как один из вариантов. Cloudflare обнаружит это, получит исходную HTML версию с origin-сервера и преобразует её в Markdown перед отправкой клиенту.
Вот пример curl с использованием Accept заголовок согласования, запрашивающий эту страницу из нашей документации для разработчиков:
curl https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/ \
-H "Accept: text/markdown"Если же вы создаете ИИ-агента с помощью Workers, вы можете использовать TypeScript:
const r = await fetch(
`https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/`,
{
headers: {
Accept: "text/markdown",
},
},
);
const tokenCount = r.headers.get("x-markdown-tokens");
const originalTokenCount = r.headers.get("x-original-tokens");
const markdown = await r.text();const r = await fetch(
`https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/`,
{
headers: {
Accept: "text/markdown",
},
},
);
const tokenCount = r.headers.get("x-markdown-tokens");
const originalTokenCount = r.headers.get("x-original-tokens");
const markdown = await r.text();Ответ на этот запрос теперь форматируется в 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
cache-control: public, max-age=3600
strict-transport-security: max-age=63072000; includeSubDomains
x-markdown-tokens: 725
x-original-tokens: 12345
content-signal: ai-train=yes, search=yes, ai-input=yes
---
title: Markdown for Agents · Cloudflare Agents docs
---
## What is Markdown for Agents
Markdown has quickly become the lingua franca for agents and AI systems
as a whole. The format’s explicit structure makes it ideal for AI processing,
ultimately resulting in better results while minimizing token waste.
...Заголовки ответа
Markdown for Agents сохраняет заголовки исходного ответа в преобразованном ответе, поэтому важные для безопасности и кеширования заголовки не теряются при преобразовании. Сюда входят такие заголовки, как Strict-Transport-Security (HSTS), Content-Security-Policy (CSP), X-Frame-Options, Set-Cookie, заголовки CORS (например, Access-Control-Allow-Origin), и заголовки кеширования (Cache-Control, Expires, Age).
Поскольку тело заменяется преобразованным Markdown, применяются следующие изменения:
Content-Typeимеет значениеtext/markdown; charset=utf-8.VaryвключаетAccept(любойVaryизмерения, уже заданные вашим исходным сервером, сохраняются), поэтому кеш хранит отдельные варианты для Markdown и HTML.Content-Lengthпересчитывается в соответствии с размером ответа в формате Markdown.- Заголовки, описывающие исходное тело, удаляются, так как они больше не соответствуют преобразованному ответу:
Content-Encoding,Content-Range,Transfer-Encoding,ETag, а такжеLast-Modified.ETagиLast-Modifiedотбрасываются, поскольку условные запросы (If-None-Match,If-Modified-Since) не может быть учтён для преобразованных ответов.
Markdown for Agents также добавляет заголовки с количеством токенов, описанные ниже.
Заголовки количества токенов
Обратите внимание, что мы добавляем заголовки с количеством токенов к преобразованному ответу. x-markdown-tokens указывает предполагаемое количество токенов в документе Markdown, а x-original-tokens указывает предполагаемое количество токенов в исходном документе HTML до преобразования. Эти значения можно использовать в вашем процессе, например чтобы рассчитать размер окна контекста, оценить экономию токенов от преобразования в Markdown или выбрать стратегию разбиения на фрагменты.
Content Signals Policy
Content Signals ↗ это система, которая позволяет любому указать, как можно использовать его контент после того, как к нему получили доступ.
Если ваш источник (origin) уже устанавливает content-signal заголовок, Markdown for Agents сохраняет это значение в преобразованном ответе: политика вашего источника имеет приоритет. Это позволяет задавать собственные политики Content Signal, устанавливая content-signal заголовок на вашем источнике.
Если ответ исходного сервера не содержит content-signal заголовка Markdown for Agents добавляет значение по умолчанию Content-Signal: ai-train=yes, search=yes, ai-input=yes, сигнализируя, что контент можно использовать для AI Training, Search results и AI Input, включая агентное использование.
Формат вывода
Markdown for Agents возвращает документ Markdown с единообразной, предсказуемой структурой, поэтому ИИ-системам не нужна отдельная логика разбора для каждого сайта. Ответ всегда имеет следующую структуру:
- YAML frontmatter с метаданными, извлечёнными со страницы
<meta>тегов. Формируется только при наличии хотя бы одного поддерживаемого мета-тега. - Тело в формате Markdown преобразуется из тела документа. Неконтентные элементы (например, шапки, подвалы, навигация, скрипты и стили) удаляются на этапе предварительной обработки. Полный список удаляемых элементов см. в Предварительная обработка HTML в документации Workers AI Markdown Conversion.
- JSON-LD структурированные данные, сохраненные в виде
jsonблок кода в конце документа. Добавляется только если исходный HTML содержит JSON-LD.
YAML frontmatter
Если исходный HTML содержит поддерживаемые <meta> тегов Markdown for Agents добавляет в начало ответа блок YAML frontmatter. Этот блок использует следующие поля:
| Поле | Источник <meta> тег |
|---|---|
title |
<meta name="title">, с откатом к <meta property="og:title"> |
description |
<meta name="description">, с откатом к <meta property="og:description"> |
image |
<meta property="og:image"> |
Выводятся только поля, у которых есть значение. Если исходный HTML не содержит ни одного из поддерживаемых мета-тегов, блок frontmatter полностью пропускается.
Для title и description, стандартный <meta name="..."> форма всегда имеет более высокий приоритет, чем форма Open Graph <meta property="og:..."> форма, независимо от порядка их появления в HTML. Значения Open Graph используются только как запасной вариант, если стандартная форма отсутствует.
Пример вывода:
---
title: My Page Title
description: A short summary of the page.
image: https://example.com/cover.png
---
# Page heading
...JSON-LD
JSON-LD ↗ это формат структурированных данных, который поисковые системы и системы ИИ используют для интерпретации семантического содержимого страницы. Markdown for Agents сохраняет любой <script type="application/ld+json"> блоки из исходного HTML, добавляя их в конец преобразованного Markdown внутри единого блока кода json блок кода.
Если исходный HTML содержит несколько скриптов JSON-LD, все они объединяются в одном блоке кода, каждый на отдельной строке.
JSON-LD является единственным <script> содержимое сохраняется в результате, а всё остальное <script> и <style> содержимое удаляется во время Предварительная обработка HTML.
Пример вывода:
... main markdown content ...
```json
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Article Title",
"author": { "@type": "Person", "name": "Jane Doe" }
}
```Как включить
Чтобы включить Markdown for Agents для вашей зоны на панели управления:
- Войдите в Панель управления Cloudflare ↗ и выберите свой аккаунт (требуется план Pro или Business).
- Выберите зону, которую нужно настроить.
- Перейдите в AI Crawl Control ↗ раздел.
- Включить Markdown for Agents.
Включите для отдельных поддоменов или путей
Чтобы включить Markdown for Agents только для определённых поддоменов или путей, а не для всей зоны, создайте правило конфигурации:
- Войдите в Панель управления Cloudflare ↗ и выберите свой аккаунт.
- Выберите зону, которую нужно настроить.
- Перейдите в Правила > Обзор и выберите Создать правило > Configuration Rules.
- В разделе Когда входящие запросы соответствуют, создайте выражение для соответствия вашему поддомену (например,
http.host eq "docs.example.com") или пути. - В разделе Затем настройки следующие, выберите Добавление настройки > Markdown for Agents и установите значение Включено.
- Выберите Развернуть.
Чтобы включить Markdown for Agents для вашей зоны через API, отправьте PATCH к /client/v4/zones/{zone_tag}/settings/content_converter с полезной нагрузкой {"value": "on"} в Cloudflare API.
Вам потребуется создать API-токен с включенным разрешением Zone Settings Edit.
Пример:
curl -X PATCH 'https://api.cloudflare.com/client/v4/zones/{zone_tag}/settings/content_converter' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer {api_token}" --data-raw '{"value": "on"}'Включите для отдельных поддоменов или путей
Чтобы включить Markdown for Agents только для определённых поддоменов или путей, а не для всей зоны, создайте правило конфигурации:
curl --request PUT \
--url "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_config_settings/entrypoint" \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"rules": [{
"expression": "http.host eq \"docs.example.com\"",
"action": "set_config",
"action_parameters": {
"content_converter": true
},
"description": "Enable Markdown for Agents for docs subdomain"
}]
}'Вы также можете использовать выражения на основе пути, например starts_with(http.request.uri.path, "/blog/"). Подробнее о составлении выражений см. в Язык правил.
Если вы используете Cloudflare for SaaS и хотите включить Markdown for Agents для вашего пользовательские имена хостов, у вас есть два варианта:
Включите для всех пользовательских хостов
Чтобы включить Markdown for Agents для всех пользовательских хостов в вашей зоне SaaS:
- Войдите в Панель управления Cloudflare ↗ и выберите свой аккаунт.
- Выберите свою зону SaaS.
- Найдите Быстрые действия.
- Переключите Markdown for Agents кнопку для включения.
Включите для отдельных пользовательских хостов
Для включения Markdown for Agents для отдельных пользовательских хостов требуется расширенная подписка с доступом к пользовательские метаданные.
Шаг 1. Задайте пользовательские метаданные для custom hostname
При создании или обновлении пользовательского хоста через API добавьте content_converter к custom_metadata объект:
curl --request PATCH \
--url "https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames/{custom_hostname_id}" \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"custom_metadata": {
"content_converter": "enabled"
}
}'Шаг 2. Создайте правило Configuration Rules
Создайте Configuration Rule в зоне SaaS, которое сопоставляется с пользовательскими хостами по метаданным и включает преобразование содержимого:
curl --request PUT \
--url "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_config_settings/entrypoint" \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"rules": [{
"expression": "lookup_json_string(cf.hostname.metadata, \"content_converter\") eq \"enabled\"",
"action": "set_config",
"action_parameters": {
"content_converter": true
},
"description": "Enable content converter for opted-in custom hostnames"
}]
}'Это включит функцию для пользовательских хостнеймов, у которых есть content_converter набор пользовательских тегов метаданных.
Доступность и цены
Markdown for Agents доступен на тарифах Pro, Business и Enterprise, а также бесплатно для клиентов SSL for SaaS.
Попробуйте с Cloudflare
Мы включили эту функцию в нашем Документация для разработчиков ↗ и наш Блог ↗, приглашая всех ИИ-краулеров и агентов использовать наш контент в формате markdown вместо HTML.
curl https://blog.cloudflare.com/markdown-for-agents/ \
-H "Accept: text/markdown"Ограничения
- Мы выполняем конвертацию только из HTML, другие типы документов могут быть добавлены в будущем.
- Размер ответа исходного сервера не может превышать 2 МБ (2,097,152 байт).
Другие API для преобразования в Markdown
Если вы создаёте AI-системы, которым требуется произвольное преобразование документов за пределами Cloudflare, или если Markdown for Agents недоступен для источника контента, мы предлагаем другие способы преобразования документов в Markdown для ваших приложений:
- Workers AI AI.toMarkdown() поддерживает несколько типов документов и создание сводок.
- Запуск браузера /markdown конечная точка поддерживает преобразование в markdown, если перед преобразованием нужно отрисовать динамическую страницу или приложение в настоящем браузере.