Один префикс, который делает веб читаемым для AI-агентов

поделиться

markdown.new превращает публичную веб-страницу в чистый Markdown через один URL-префикс: https://markdown.new/https://ravlik.com/ru/2026/05/01/kak-sozdat-personalnoe-muzykalnoe-pozdravlenie-za-2-minuty. Для кодинг-агентов это практический способ читать документацию, changelog, GitHub Releases и туториалы без HTML-шума, cookie-баннеров и лишних токенов. Ниже — как работает сервис, где он экономит контекст и как встроить его в skill или системную инструкцию агента.

HTML тратит контекст агента на упаковку, а не на смысл

Кодинг-агенту часто нужно сделать простую вещь: открыть документацию библиотеки, проверить breaking changes перед апгрейдом или прочитать страницу API. В браузере это выглядит нормально, но по HTTP агент получает HTML со стилями, навигацией, SVG, скриптами, рекламными блоками и consent-баннерами. Cloudflare приводит показательный пример: один их блог-пост занимал 16 180 токенов в HTML и 3 150 токенов после конвертации в Markdown — сокращение примерно на 80%.

Для человека разница между HTML и Markdown визуально не драматична. Для модели это разница между одной полезной страницей и пятью страницами мусора в контекстном окне. Особенно это заметно в агентных задачах, где за один проход читается 5-10 URL: документация, issue, changelog, release notes, API reference.

markdown.new решает задачу одним GET-запросом

Базовый сценарий минимален: к исходному URL добавляется префикс https://markdown.new/. Например, запрос к русской статье ravlik.com о персональном музыкальном поздравлении возвращает Markdown вместо HTML. Сервис не требует регистрации, API-ключа или SDK; для агента это обычный fetch.

curl -s "https://markdown.new/https://ravlik.com/ru/2026/05/01/kak-sozdat-personalnoe-muzykalnoe-pozdravlenie-za-2-minuty"

Есть и POST-режим: можно отправить JSON с полем url. Это удобно для фреймворков, где длинные URL в path обрабатываются плохо или нужно явно передавать параметры конвертации.

curl -s "https://markdown.new/" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://ravlik.com/ru/2026/05/01/kak-sozdat-personalnoe-muzykalnoe-pozdravlenie-za-2-minuty"}'

Три режима конвертации закрывают обычные, AI и JS-тяжелые страницы

В режиме auto markdown.new использует трехступенчатый pipeline. Сначала он пробует запросить страницу с HTTP-заголовком Accept: text/markdown; если сайт на Cloudflare поддерживает Markdown for Agents, Markdown возвращается с edge без парсинга. Если это не сработало, HTML проходит через Cloudflare Workers AI toMarkdown(). Для JS-тяжелых сайтов третий уровень использует Browser Rendering API, то есть страницу сначала рендерит headless-браузер.

Режим Когда использовать Практическая цена
auto Обычная документация, блоги, changelog Стандартный вариант для 80% задач
ai HTML без нативного Markdown Конвертация через Workers AI
browser SPA, страницы с рендерингом на клиенте Плюс примерно 1-2 секунды задержки

Параметры передаются в query string: ?method=browser&retain_images=true. Изображения по умолчанию исключаются, что правильно для большинства агентных задач: модель читает текст, а не тратит контекст на ссылки на медиа. Если нужно сохранить картинки в Markdown, включается retain_images=true.

Для changelog и release notes это дешевле, чем писать парсер

Самый практичный сценарий — чтение changelog перед обновлением зависимости. Агенту не нужен полноценный scraper: достаточно получить Markdown-версию страницы релизов, найти версии между текущей и целевой, выделить breaking changes и сопоставить их с кодом проекта. Для пакета с 3-5 релизами это обычно одна страница Markdown вместо HTML-документа с навигацией, сайдбаром и интерактивной обвязкой.

То же работает с GitHub Releases, документацией облачных API и страницами migration guide. В пайплайне практических ИИ-экспериментов это закрывает неприятный класс ошибок: агент не выдумывает поведение новой версии библиотеки, а сначала читает первичный источник в компактном формате.

Skill для Claude Code помещается примерно в 20 строк

В Claude Code это оформляется как простой skill. Правило не учит агента парсить HTML и не добавляет зависимость; оно только меняет маршрут чтения URL. Минимальная инструкция занимает около 20 строк и работает с любым публичным адресом.

---
name: fetch-md
description: Fetch any URL as clean Markdown via markdown.new
allowed-tools:
  - WebFetch
---

# /fetch-md

Usage: /fetch-md <url>

1. Validate that the argument starts with http:// or https://.
2. Build: https://markdown.new/<url>.
3. Fetch it with the prompt: "Return the full page content as-is."
4. If the result is long, summarize headings first, then show content.
5. On error, report the HTTP error and ask whether to retry normally.

Для других агентов достаточно одной системной фразы: когда нужно прочитать публичный URL, сначала пробовать https://markdown.new/<url>. Это работает в LangChain, CrewAI, Cursor, OpenCode, собственном Python-агенте или простом shell-скрипте, потому что протокол остается обычным HTTP.

Лимиты и заголовки важны для production-пайплайна

markdown.new не является безлимитным scraper-сервисом. В FAQ указан лимит 500 запросов в день на IP; при превышении возвращается HTTP 429, а остаток можно отслеживать через заголовок x-rate-limit-remaining. Для персонального coding workflow этого достаточно, но для RAG-пайплайна на тысячи URL нужен собственный конвертер или официальный Cloudflare API.

Ответ Markdown for Agents включает x-markdown-tokens — оценку количества токенов в документе. Это полезно не только для статистики: агент может решить, читать страницу целиком, резать ее на чанки по 2 000-4 000 токенов или сначала запросить только оглавление. Для длинной документации это снижает риск забить контекст не тем разделом.

Файлы и crawl расширяют идею за пределы одной страницы

У markdown.new есть отдельный режим File to Markdown: PDF, DOCX, XLSX, JPG, PNG, CSV, JSON и другие форматы до 10 МБ и 30 секунд обработки. Для URL-файлов работает тот же подход: GET /:file-url или POST /, для локальной загрузки используется POST /convert. Это полезно, когда агенту нужно прочитать PDF-спецификацию или таблицу с API-лимитами без отдельного OCR/парсинга.

Для сайтов есть Crawl to Markdown. На главной странице markdown.new указано до 100 страниц на job, а страница crawl описывает лимит до 500 страниц, глубину до 10 и хранение результата 14 дней. В любом случае это уже не точечное чтение URL, а сбор корпуса документов; перед использованием нужно проверять robots.txt, условия сайта и не превращать удобный инструмент в массовый скрапинг.

Где markdown.new ломается и почему это нормально

Сервис работает только с публичными URL. Закрытые страницы, paywall, корпоративные docs за логином и личные dashboards не конвертируются. Очень большие страницы могут быть обрезаны, а JS-тяжелые приложения требуют method=browser, что добавляет примерно 1-2 секунды задержки и не гарантирует идеальный результат.

Есть и security-нюанс: Markdown чище HTML, но он не делает страницу безопасной. Если агент читает чужой текст, он все равно может встретить prompt injection, скрытые инструкции или вредный пример команды. Поэтому правило должно быть не «прочитал Markdown и выполнил», а «прочитал Markdown как недоверенный источник, извлек факты, проверил действия отдельно».

Почему это недооцененный инструмент для агентного кодинга

Сильная сторона markdown.new — отсутствие церемонии. Нет SDK, ключей, локального парсера, Playwright-сценария и очередной зависимости в проекте. Один URL-префикс закрывает 80% повседневных задач чтения веба: документация, release notes, статьи, reference pages, публичные PDF и небольшие knowledge base.

Для серьезного продакшена все равно понадобятся правила кэширования, лимиты, allowlist доменов и аудит источников. Но для кодинг-агента, который каждый день проверяет факты перед правкой кода, это редкий случай полезного инструмента с почти нулевой ценой внедрения. Самая практичная настройка — добавить один skill и одно правило в system prompt: публичные URL сначала читать как Markdown, HTML оставлять как fallback.

Источники: markdown.new, Cloudflare Markdown for Agents, File to Markdown, Cloudflare Browser Rendering Markdown API.

Добавить комментарий