Ситуация и цель
Mellow Hub отправляет один пост в десять соцсетей: Instagram, TikTok, YouTube, X, LinkedIn, Threads, Bluesky, Pinterest, Facebook и Telegram. Кросспост не падает целиком. Он падает по одной сети за раз и поздно: медиа загрузились, провайдер принял пост, а через несколько секунд YouTube сообщает, что ему нужен заголовок. К этому моменту остальные сети уже опубликовали, и отменить нечего.
8 октября 2026 года мы увидели это в масштабе. Основатель добавил Pinterest к одному из наших профилей, где было 260 постов. Pinterest принял 45 будущих постов. Из остальных 188 получили отказ из-за подписи длиннее 500 символов, 9 — потому что это карусели, 2 — потому что в них не было ни картинки, ни видео, и 1 — потому что уходил через несколько минут. Его ответ стал заданием для всего, что ниже: Hub должен сам конвертировать всё как нужно — и текст, и размер; это его работа, а не говорить, что пост не подходит.

Что ломается: правила, на которые мы наткнулись
У каждой сети свой лимит и свой способ считать. Вот правила, которые проверяет Hub, по справке и документации самих сетей, прочитанным в октябре 2026 года, — среди них правила счёта X, длина поста в Bluesky, страница API Threads, требования к пинам Pinterest и Bot API Telegram:
| Сеть | Текст, который проверяет Hub | Как считается | Медиа в одном посте | Обязательно |
|---|---|---|---|---|
| X | 280 | С весами: ссылка 23, эмодзи 2 | До 4 картинок или 1 видео | — |
| Bluesky | 300 | Графемы: эмодзи — 1 | До 4 | Текст |
| Threads | 500 | Эмодзи — по байтам UTF-8 | До 20 | — |
| 500 (на странице Pinterest — 800) | Символы | Ровно 1; видео нужна обложка | Медиа | |
| 2 200, не больше 5 хештегов | Символы | От 1 до 10 | Медиа | |
| TikTok | 2 200 | Символы | От 1 до 35 | Медиа |
| 3 000 | Символы | До 20 | Текст | |
| YouTube | Заголовок 100, описание 5 000 | Символы | Ровно 1 видео | Заголовок, видео |
| Telegram | 4 096; 1 024 под картинкой или видео | Текст после форматирования | До 10 | — |
| 63 206 (Meta цифру не публикует) | Символы | До 10 | — |
Если два источника расходятся, Hub берёт меньшее число. Подпись, которой отказал Hub, агент может исправить; подпись, которой отказал Instagram уже после загрузки медиа, — это сбой, который не исправит никто. Instagram и есть живой пример: его справка ограничивает пост 5 хештегами (объявлено 18 декабря 2025 года), а справочник API, когда мы читали его 7 октября 2026 года, всё ещё говорил о 30.

Что мы сделали, по шагам
- Один реестр для всех поверхностей. Правила всех сетей лежат в одном файле, и его читают трое: проверка, которая смотрит пост до отправки, редактор, который решает, какие поля показать, и инструкция, которую читает ИИ-агент. Лимит меняется в одном месте.
- Проверить всё заранее и сказать обо всём сразу. До отправки каждое правило сверяется с реальными аккаунтами, в которые идёт пост, и все проблемы возвращаются вместе — с аккаунтом, полем и тем, что сделать вместо. Агент исправляет пост с одной попытки, а не узнаёт правила, пять раз опубликовав плохо. Те же проверки отвечают на вызов validate в REST, на инструмент MCP
validate_postи в нашем бесплатном проверщике постов. - 8 октября: подогнать вместо отказа. Для каждого аккаунта, как его собственную версию, Hub теперь режет подпись длиннее лимита по последнему абзацу, строке или предложению, которые помещаются, считая так, как считает сеть; сохраняет завершающий блок хештегов, если он занимает не больше трети места; убирает хештеги Instagram сверх пяти; берёт обязательный заголовок YouTube из первой строки подписи; не отправляет медиа, которые сеть не принимает, так что карусель в Pinterest становится первым слайдом; а видео для Pinterest без обложки получает кадр из его начала. Один и тот же пост подгоняется каждый раз одинаково.
- Что всё равно останавливает пост. То, что пришлось бы выдумать: нет медиа там, где они нужны, нет текста там, где он нужен, картинка для YouTube, рилс из двух роликов.
- 13 октября: переформулировать под лимит, бесплатно. Обрезка теряет конец того, что человек написал. Поэтому для каждой сети, где подпись слишком длинная, редактор показывает счёт так, как считает сеть, например «432 из 300 · на 132 больше», и кнопку «Переформулировать». Модель пишет короче; Hub считает ответ тем же способом, что и проверка, просит ещё раз, если не попало, до трёх раз, и режет по предложению, только если всё равно не помещается. AI-кредиты на это не тратятся.
- 13 октября: отправить ещё раз то, что упало не по нашей вине. Hub сам повторяет отказы, не связанные с постом, агент может вызвать
retry_postпо MCP, а предупреждения о лимите частоты сети, о скором окончании входа или о длине и весе видео, прочитанных из заголовка файла, приходят заметками до отправки и никогда не превращаются в отказ.
Результаты
- 8 октября между 08:50 и 09:00 UTC тот же профиль передал в Pinterest 140 пинов, ни одного дважды. Не смогли уйти только 2 поста — без картинки и видео.
- 13 октября семь настоящих подписей длиннее лимита прошли через «Переформулировать» на рабочем сайте. Все семь уложились, ни одну не пришлось резать, и каждая сохранила язык, ссылку и призыв к действию.
| Подпись | Было | Стало | Лимит | Сколько раз спросили модель |
|---|---|---|---|---|
| Русская | 609 | 459 | Threads, 500 | один |
| Английская со ссылкой | 460 | 278 | X, 280 | один |
| Английская | 293 | 238 | X, 280 | два |
| Английская с эмодзи | 546 | 432 | Threads, 500 | один |
| Английская | 1 382 | 278 | X, 280 | один |
| Испанская | 730 | 383 | Pinterest, 500 | три |
| Русская | 609 | 285 | Bluesky, 300 | два |
- За две недели до 13 октября из наших собственных профилей ушло около 200 отправок в соцсети, 12 из них не прошли. Ни одна из 12 не была про сам пост: ответ 429 от LinkedIn о лимите частоты, закончившийся вход, перегруженная сеть, «failed to process» и несколько вовсе без причины. Первый пост, который после отказа Hub сам отправил повторно, вышел 13 октября в 08:27 UTC.
Что не сработало
- Отказ из-за длины был неверным поведением по умолчанию. 188 отказов Pinterest на одном профиле за одно утро это показали.
- Первый выпуск «Переформулировать» промахнулся. В 16:11 UTC 13 октября русская подпись дважды вернулась длиннее лимита, и её предложили как обрезку Hub — без ссылки и призыва: каждый запрос начинался с оригинала и называл только общий лимит. Через десять минут модель уже сокращала свою же слишком длинную версию, получала число символов, которое надо убрать, и её можно было спросить трижды.
- Догадки о лимитах. Две заметки, построенные на выведенных лимитах сетей, вышли и были убраны в то же утро. Теперь заметки сообщают только факты из истории самого аккаунта.
- Потерянные причины. 10 октября у девяти аккаунтов Instagram отказ пришёл только с общим кодом провайдера, потому что мы выбрасывали его собственную фразу. Теперь мы её сохраняем.
- Ещё не сделано: перекодирование файлов и кодеков и чтение формы картинки. О лимите 4:5 у Instagram через API мы по-прежнему узнаём от самого Instagram.
Как сделать это у себя
- Держите одну таблицу лимитов по сетям, взятых со страниц самих сетей с датой чтения, и берите меньшее число, если источники расходятся.
- Считайте так, как считает каждая сеть: X взвешивает ссылки и эмодзи, Threads считает эмодзи в байтах, Bluesky — графемы.
- Проверяйте все цели до загрузки чего-либо и сообщайте обо всех проблемах сразу.
- Проверяйте обязательные поля: заголовок и ровно одно видео для YouTube, текст для LinkedIn и Bluesky, медиа для Instagram, TikTok, Pinterest и YouTube.
- Подгоняйте то, что можно подогнать, всегда одинаково, как отдельную версию для каждой сети, и сохраняйте оригинал.
- Если текст сокращает модель, измеряйте ответ сами: попросив не больше 500, модель уже отвечала 620, а ChatGPT так же промахнулся с 1500.
- Повторяйте отказы, не связанные с постом, и сохраняйте собственное сообщение сети об ошибке.
Наш бесплатный счётчик символов считает пост сразу для всех сетей по этим правилам, а на странице с лимитами перечислены все источники.



