INTEGRITY Документация

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, применяются следующие изменения:

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 с единообразной, предсказуемой структурой, поэтому ИИ-системам не нужна отдельная логика разбора для каждого сайта. Ответ всегда имеет следующую структуру:

  1. YAML frontmatter с метаданными, извлечёнными со страницы <meta> тегов. Формируется только при наличии хотя бы одного поддерживаемого мета-тега.
  2. Тело в формате Markdown преобразуется из тела документа. Неконтентные элементы (например, шапки, подвалы, навигация, скрипты и стили) удаляются на этапе предварительной обработки. Полный список удаляемых элементов см. в Предварительная обработка HTML в документации Workers AI Markdown Conversion.
  3. 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 для вашей зоны на панели управления:

  1. Войдите в Панель управления Cloudflare и выберите свой аккаунт (требуется план Pro или Business).
  2. Выберите зону, которую нужно настроить.
  3. Перейдите в AI Crawl Control раздел.
  4. Включить Markdown for Agents.

Включите для отдельных поддоменов или путей

Чтобы включить Markdown for Agents только для определённых поддоменов или путей, а не для всей зоны, создайте правило конфигурации:

  1. Войдите в Панель управления Cloudflare и выберите свой аккаунт.
  2. Выберите зону, которую нужно настроить.
  3. Перейдите в Правила > Обзор и выберите Создать правило > Configuration Rules.
  4. В разделе Когда входящие запросы соответствуют, создайте выражение для соответствия вашему поддомену (например, http.host eq "docs.example.com") или пути.
  5. В разделе Затем настройки следующие, выберите Добавление настройки > Markdown for Agents и установите значение Включено.
  6. Выберите Развернуть.

Чтобы включить Markdown for Agents для вашей зоны через API, отправьте PATCH к /client/v4/zones/{zone_tag}/settings/content_converter с полезной нагрузкой {"value": "on"} в Cloudflare API.

Вам потребуется создать API-токен с включенным разрешением Zone Settings Edit.

Пример:

Включите Markdown for Agents
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 только для определённых поддоменов или путей, а не для всей зоны, создайте правило конфигурации:

Включите 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:

  1. Войдите в Панель управления Cloudflare и выберите свой аккаунт.
  2. Выберите свою зону SaaS.
  3. Найдите Быстрые действия.
  4. Переключите 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"

Ограничения

Другие API для преобразования в Markdown

Если вы создаёте AI-системы, которым требуется произвольное преобразование документов за пределами Cloudflare, или если Markdown for Agents недоступен для источника контента, мы предлагаем другие способы преобразования документов в Markdown для ваших приложений: