Перейти к содержимому
Версия 1.0 ещё не выпущена; проект находится на стадии pre-MVP. См. возможности и ограничения версии 1.0.

Планировщик контента

Планировщик подбирает темы, исследует их, пишет обычные черновики записей и показывает работу в очереди. Он никогда не публикует. Откройте Планировщик в боковом меню. Нужно право ai:generate на сайте.

Все материалы, созданные по плану, сохраняются как обычные черновики. Они проходят через тот же редактор, рабочий процесс, версии, историю и журнал аудита, что и черновики, написанные вами.

При выходе из плана с несохранёнными изменениями, в том числе через «Назад» или «Очередь», появится запрос на их отмену. Останьтесь, чтобы продолжить редактирование, или подтвердите выход, чтобы отменить изменения. При переключении планов запоздавшие ответы для предыдущего плана не меняют открытый план.

План относится к одной модели контента и к одному или нескольким языкам сайта. В нём указаны:

  • цель, аудитория и список исключений;
  • сопоставление полей;
  • источники;
  • необязательный список тем;
  • число материалов за запуск (от 1 до 10) и за день (от 1 до 50, не меньше числа за запуск);
  • необязательное расписание;
  • итоговое действие: Сохранять черновики (по умолчанию) или Планировать прошедшие проверку черновики.

Принятый бриф сайта всегда входит в контекст. Сохранение плана создаёт новую неизменяемую версию. Запуск работает с той версией, с которой начался, поэтому последующие правки не меняют запуск в процессе. На сайте может быть до 20 активных планов, до 10 языков в плане, до 30 тем и до 10 источников в плане.

План указывает, какое поле модели получает заголовок, основной текст и, по желанию, краткое описание, slug, SEO-заголовок, SEO-описание, поле главного изображения и до 5 полей связей (раздел Куда сохранять формы плана).

  • У стартовой модели блога есть шаблон: название — это Заголовок, основной текст — Текст. Шаблон предлагается, пока в модели есть эти поля.
  • У собственной модели шаблона нет. Вы один раз сопоставляете каждое поле в плане. Планировщик никогда не угадывает поле.
  • Заголовок должен быть текстовым полем. Основной текст — полем rich text или длинного текста. Одно поле можно использовать один раз.
  • Обязательное поле модели, которое сопоставление не покрывает и у которого нет значения по умолчанию, делает сопоставление недопустимым.
  • Сопоставление проверяется при сохранении плана, перед автоматическим запуском, перед каждым этапом запуска и перед сохранением каждого черновика. Если модель изменили так, что сопоставление больше не подходит, запуск останавливается до новых вызовов ИИ, его незавершённые материалы остаются в состоянии Нужна проверка (profile_invalid), а наступивший запуск ждёт с причиной, пока вы не исправите план.

Если у поля Главное изображение отмечено Создавать изображение с помощью ИИ, планировщик создаёт картинку (см. «Главное изображение»). Поле связи предлагает только опубликованные записи той модели, на которую оно указывает, — 50 последних изменённых.

Включите любые из этих режимов источников в плане.

Режим Что читается
Topics Темы из вашего списка. У каждой есть название, необязательный ракурс и необязательные включаемые и исключаемые слова.
Entries on this site Выбранные вами записи. Берётся текущий опубликованный текст.
Web pages Адреса HTTPS, введённые вручную.
News feeds Ленты RSS или Atom. Берутся 5 новейших записей. Используется их собственный текст, а если его нет — страница по ссылке.

Встроенного поискового сервиса и встроенного списка тем, отраслей или стран нет.

Загрузка страниц и лент ограничена:

  • только HTTPS, без учётных данных и фрагмента в адресе;
  • без частных, локальных и зарезервированных адресов и без имён без точки;
  • не более 3 перенаправлений, каждое проверяется заново;
  • не более 1 МиБ на источник и 10 секунд на загрузку;
  • типы страниц text/html, application/xhtml+xml и text/plain; типы лент application/rss+xml, application/atom+xml, application/xml и text/xml;
  • из ленты читается не более 50 записей.

Отклонённый источник получает пометку source_refused. Источник, который не отвечает, — source_unavailable. Тайм-ауты, ответы 408, 429 и 5xx повторяются. Адрес, не прошедший правила, отклоняется при сохранении плана.

Проверяется сам адрес, но не то, в какой IP-адрес разрешается публичное доменное имя.

План может указать модель-источник и правило. Они задаются в Ещё настройки в конце формы плана: Охватывать записи из и Может предлагать правки в созданных им черновиках. Тогда планировщик предлагает по одному материалу на язык для каждой опубликованной записи-источника, у которой ещё нет материала. Если правило разрешает правки, он предлагает правку, когда запись-источник изменилась с момента создания материала. Правка предлагается только для записи, которую сохранил более ранний материал того же плана. Для каждого предложения сохраняются исходная запись и её версия. Предложение новой записи подчиняется тому же правилу дубликатов, что и идея из темы (см. «Дубликаты»): при точном совпадении предложение останавливается с указанием причины, а близкое переформулируется не более двух раз, после чего ждёт в состоянии Нужна проверка со сравниваемыми записями каждого языка. Языки одного предложения остаются вместе. Предложение, которое не может выполняться, остаётся в состоянии Нужна проверка и не отбрасывается. Планировщик никогда не создаёт материал на каждую строку без правила, не меняет запись молча и не угадывает владельца.

Для правок нужно право обновлять записи целевой модели, а не только создавать их. То же относится к плану с несколькими языками или с созданным главным изображением: добавление языка и прикрепление изображения — это обновления.

У темы есть название, необязательный ракурс, необязательные включаемые и исключаемые слова и переключатель Использовать эту тему. Запуски используют только включённые темы. Выключенная тема остаётся в плане со своей историей и не используется. Убрать убирает тему насовсем: она удаляется, а если материалы уже ссылаются на неё, скрывается из плана и ротации, но эти материалы продолжают показывать её название. Экран плана показывает для каждой сохранённой темы, когда её пробовали в последний раз и когда она в последний раз дала материал.

Автоматический запуск пишет только внутри выбранных тем. Для каждой темы планировщик предлагает одну идею, написанную на каждом языке плана.

  • Первой идёт тема, которую пробовали раньше всех, затем та, что раньше всех дала материал, затем порядок в списке. Каждая выбранная тема пробуется один раз, прежде чем какая-либо повторится, в том числе между запусками.
  • Если по теме нет подходящей идеи, фиксируется «нет кандидата» (no_candidate), и запуск переходит к следующей теме. Планировщик не расширяет тему и не выдумывает другую, чтобы набрать нужное число.
  • Тема, которая в запуске ничего не дала или дала точный дубликат, пропускается до конца этого запуска. В следующем запуске она уходит в конец очереди.
  • Идея с исключённым словом или без единого из включаемых слов (если вы их задали) не используется.
  • Если ни одна выбранная тема не может дать новую идею, запуск завершается как частичный с причиной «The selected topics had no more grounded, new ideas.»

Тема считается опробованной после каждой попытки найти в ней идею. Она считается давшей материал, когда попытка создала материал, и снова, когда этот материал стал черновиком или был запланирован.

Планировщик сравнивает каждое предложение, созданное по теме или исходной записи, с другими своими материалами, с черновиками и с опубликованными записями целевой модели на том же языке. Проверяются 500 последних материалов и 500 последних записей.

  • Точное совпадение заголовка или замысла останавливает идею. Для идеи из темы материал не создаётся; предложение по исходной записи остаётся в состоянии Нужна проверка, чтобы запись-источник не потерялась.
  • При близком совпадении (пересечение слов 0,6 и выше) планировщик переформулирует предложение не более двух раз. Если всё ещё близко, материал создаётся в состоянии Нужна проверка с показом сравниваемых записей.
  • Проверки повторяются перед планированием черновика. Точное совпадение с опубликованной записью останавливает материал.

Сравнение лексическое. Оно работает без модели эмбеддингов.

Исследование, доказательства и утверждения

Заголовок раздела «Исследование, доказательства и утверждения»

Перед написанием планировщик читает источники и извлекает утверждения. Он оставляет утверждение, только если его цитата — точная выдержка из текста источника или точный факт из принятого брифа сайта. Цитата — не более 1000 символов, у материала — не более 40.

  • Нет подтверждённых утверждений или утверждения противоречат друг другу — материал переходит в состояние Нужна проверка с названными проблемами.
  • Черновик может пропустить утверждение источника. Выдумывать факт он не может.
  • Обязательные формулировки из брифа сайта должны воспроизводиться дословно.
  • Материал показывает источники, утверждения и проблемы рядом с черновиком.

За один вызов модель заполняет поля, указанные в сопоставлении. Основной текст использует формат rich document, а не исполняемый HTML. Внутренние ссылки ведут только на текущие опубликованные страницы сайта. Внешние ссылки ведут только на сохранённые адреса подтверждающих источников или на допустимые адреса из брифа сайта.

Проверки выполняются на сервере и не зависят от мнения модели. Для каждой проблемы указаны код, поле и понятное объяснение.

Код Значение
schema_invalid Значение не подходит полю.
required_missing Обязательное поле пусто.
length_bounds Поле слишком длинное или слишком короткое.
rich_invalid Основной текст не является допустимым rich document.
required_wording_missing Нет обязательной формулировки.
forbidden_claim Черновик делает утверждение, которое запрещает бриф сайта.
claim_unsupported Черновик опирается на утверждение без доказательства.
duplicate_intent Черновик повторяет существующий контент (близкое совпадение — предупреждение).
link_not_allowed Ссылка или картинка не разрешены.
source_rule Черновик использует слово, исключённое планом.
relation_invalid Выбранная связанная запись не разрешена.

В основном тексте не может быть картинок и встраиваний; медиа берутся только из медиатеки. Число в черновике, которое не подтверждается ни одним проверенным утверждением или фактом из брифа сайта, получает claim_unsupported.

Ошибки запускают исправление. Исправление переписывает только неудачные поля или фрагменты и выполняется не более двух раз. Если ошибки остаются, материал переходит в состояние Нужна проверка, лучший результат сохраняется. Результат оценки никогда не приводит к публикации или постановке в расписание и не скрывает ошибки проверки.

Черновик сохраняется один раз через обычный жизненный цикл контента от имени владельца плана. Ключ строится из версии плана, источника и языка, поэтому повтор вернёт ту же запись, а не вторую. При обновлении используется привязка к прочитанной версии записи. Если запись изменилась, материал останавливается как конфликт.

Перед сохранением планировщик заново проверяет права владельца, сопоставление полей и дубликаты.

Языки одной идеи сохраняются как переводы одной записи. Первый язык создаёт запись, каждый следующий добавляется к ней через путь добавления языка в жизненном цикле, привязанный к текущей версии записи. Следующие языки пишут только переводимые поля. Поля связей остаются у первого языка. Если язык уже есть в записи, например добавленный человеком, материал останавливается как конфликт (target_conflict), и ничего не перезаписывается.

Когда в сопоставлении выбрано Создавать изображение с помощью ИИ, планировщик создаёт одно изображение на идею после сохранения первого черновика. Создание изображения расходует квоту ИИ сайта. Изображение сохраняется в медиатеке обычным способом и прикрепляется к черновику при втором сохранении. Планировщик не заменяет изображение, которое уже есть в поле, и не прикрепляет его, если человек тем временем изменил черновик (изображение остаётся в медиатеке). Повтор не оплачивает второе изображение.

Если изображение не получилось, материал получает предупреждение image_failed, черновик сохраняется, и материал всё равно становится готовым.

Для обязательного поля главного изображения нельзя включить генерацию, потому что изображение появляется после первого сохранения. План отклоняет такую настройку.

Планировать прошедшие проверку черновики предлагается только если плагин Scheduling установлен, активен и получил доступ к целевой модели. Вы выбираете переход публикации, часовой пояс и задержку от 5 минут до 30 дней после готовности черновика.

Сначала планировщик сохраняет черновик. Затем он просит Scheduling запланировать именно ту версию, которую сохранил, от имени владельца плана с его текущими правами. Для этого он использует операцию schedule-draft плагина Scheduling, которую вызывает только планировщик: это не операция, которую люди или агенты запускают из записи, настроек, API управления, CLI или MCP. Ядро не хранит копию расписания; материал хранит ссылку Scheduling, а очередь показывает время публикации. Планировщик никогда не публикует. Другое действующее расписание публикации записи никогда не заменяется.

Время публикации — момент готовности черновика плюс задержка. Если Scheduling отсутствует, отклоняет запрос или даёт сбой, черновик остаётся как есть, а материал переходит в состояние Нужна проверка с кнопкой Повторить планирование. При временных сбоях (тайм-ауте или потере связи) запрос сначала повторяется автоматически. Повторить планирование снова обращается к Scheduling новым запросом; если запланированное время уже прошло, задержка отсчитывается от повтора. Если ответ потерялся после того, как Scheduling его принял, планировщик повторно отправляет тот же запрос и получает ранее созданное расписание, поэтому черновик никогда не планируется дважды.

Если человек изменил черновик после сохранения планировщиком, ничего не планируется. Планировщик проверяет это до запроса, а Scheduling отказывает (draft_changed), если текущий черновик записи — не сохранённая версия. Черновик остаётся таким, каким его оставил человек, а материал ждёт в состоянии Нужна проверка с сообщением «The draft changed after it was saved. Schedule it from the entry.» Откройте черновик и запланируйте его там. Повторить планирование планирует, только пока текущий черновик — версия, сохранённая планировщиком.

Запустить сейчас сразу запускает отдельный запуск. Он не сдвигает автоматическое расписание. У плана одновременно один активный запуск, и действие Запустить сейчас отклоняется, пока он работает. Автоматический запуск, срок которого наступил во время ручного запуска Запустить сейчас, ждёт; когда тот закончится, начинается один автоматический запуск.

Каждый запуск хранит версию плана, версию принятого брифа сайта и модель ИИ, с которыми начался. Бриф сайта, принятый во время работы запуска, не останавливает его: запуск завершается с версией, с которой начался, а следующий запуск берёт новую. Работа сохраняется перед каждым вызовом модели, а состояние переживает перезапуски.

До включения экран плана показывает следующий запуск: когда он начнётся, сколько материалов сделает, что будет с черновиком и в каком порядке он попробует темы.

Dee Wan использует уже существующий ежеминутный триггер Worker админки. Отдельного cron на план или тему нет. Каждую минуту он:

  • обходит до 8 сайтов, каждую минуту начиная с другого, чтобы ни один не был всегда последним;
  • на каждом сайте находит до 5 планов с наступившим сроком и начинает их автоматические запуски после проверок из раздела «Квота ИИ»;
  • продвигает каждый активный запуск на один этап с блокировкой на 5 минут, не больше 8 этапов в минуту всего;
  • перед каждым этапом заново читает права владельца, модель контента и сопоставление полей;
  • подхватывает этап, исполнитель которого остановился, когда истекает срок блокировки, с последней сохранённой точки.

Список планов показывает каждый план как Не по расписанию, Активен, Пора запускать, Выполняется или Приостановлен, а также причину ожидания и результат последнего запуска.

Включение расписания — одно явное действие. Следующие запуски не требуют нового подтверждения. Выберите ежедневно, еженедельно или ежемесячно, время и часовой пояс.

  • Еженедельный запуск идёт в день недели. Ежемесячный — в день от 1 до 28.
  • Время, которого нет в день запуска, отклоняется, поэтому переход на летнее время не пропускает запуск молча.
  • Время, которое бывает дважды, требует выбора: Первое или Второе.
  • Пропущенные запуски превращаются в один запуск. Планировщик никогда не выполняет задним числом все пропущенные.
  • Следующий запуск — всегда ближайшее время после текущего момента.
  • Приостановить план останавливает новые автоматические запуски и не даёт продвигаться активным запускам этого плана. Этап, который уже работает в момент паузы, завершается и сохраняется; следующий не начинается. Настройки, история и черновики остаются. Возобновить план продолжает приостановленный запуск с того же места и отсчитывает следующий срок от текущего момента.

Человек, включивший расписание, становится владельцем плана. Владелец показан в плане.

Запуск расходует почасовую квоту ИИ сайта: 250 вызовов в час, если установка не задаёт другой лимит. Один вызов модели тратит одну единицу. Повтор тратит снова.

Один материал использует до 8 вызовов: один на идею (до 2 дополнительных при переформулировке), затем исследование, план и черновик и до 2 исправлений. Планировщик проверяет остаток квоты, не расходуя её.

Перед автоматическим запуском планировщик последовательно проверяет, что у плана нет другого активного запуска, модель контента и сопоставление полей всё ещё подходят, у владельца есть нужные права, дневной лимит материалов и лимит активных запусков сайта (2) не исчерпаны, ожидание провайдера закончилось, а оставшаяся квота позволяет выполнить не менее 8 вызовов. Если проверка не пройдена, запуск и материал не создаются, а план показывает понятную причину. Если у владельца нет прав, план ждёт следующего срока по расписанию. Для остальных проверок следующая попытка — через минуту. Запустить сейчас применяет те же проверки и отвечает причиной.

Лимиты на один запуск и на день, а также остаток квоты видны до включения расписания.

  • При временном сбое провайдера или загрузки попытка повторяется на том же этапе до 3 раз с растущими паузами. Ответ о превышении лимита также задерживает запуски сайта.
  • Этап, прерванный сбоем, подхватывается снова через 5 минут.
  • Недопустимый ответ, непройденные проверки, исчерпание попыток исправления, конфликт, потеря прав или отклонённый источник останавливают обработку материала с указанием причины. Запуск продолжает остальные и завершается как частичный.
  • Повторить продолжает с последнего сохранённого этапа в том же запуске и той же теме. Если запуск завершился, он открывается заново, а не заменяется. Пока работает другой запуск плана, действие Повторить отклоняется.
  • Повторное сохранение возвращает ранее сохранённую запись, а повторная передача — ранее созданное расписание, поэтому повторы никогда не создают второй черновик или второе расписание.
  • Отменить элемент останавливает материал. Работа в процессе отбрасывается. Уже сохранённый черновик остаётся связанным с материалом. Запланированный материал здесь отменить нельзя, потому что снять расписание может только Scheduling.

Владелец плана проверяется заново на каждом этапе, перед каждой записью и каждым внешним вызовом: учётная запись существует, относится к сайту, имеет право ai:generate и может создавать записи целевой модели (и обновлять их, если план делает правки, имеет несколько языков или создаёт изображения).

Если владелец теряет что-то из этого во время запуска, выполняющиеся материалы получают состояние Заблокировано с указанием причины, а запуск останавливается. Если права потеряны до наступившего запуска, запуск не начинается, план показывает причину и переходит к следующему сроку. В обоих случаях расписание остаётся включённым. Когда права владельца вернутся, следующий запуск по сроку начнётся сам; никому не нужно снова включать расписание. Черновики и подтверждающие источники сохраняются. Остановить автоматические запуски можно через Приостановить план. Скрытой учётной записи автоматизации нет.

Когда вы сами действуете над материалом, вы действуете от своего имени, и владелец не меняется.

Очередь группирует материалы по тому, что нужно сделать вам.

Группа Состояния
Нужно вам Предложено, Нужна проверка, Заблокировано
В работе Одобрено, Выполняется
Готово Черновик готов, Запланировано
Завершено Завершено, Отменено

Материал получает состояние Завершено, когда его собственный язык опубликован. Очередь и фоновая обработка отслеживают публикацию.

Каждая строка показывает заголовок, состояние, этап (например Написание, Проверка, Сохранение черновика, Планирование), тип контента, куда сохраняется материал, язык, план, тему, способ запуска (Автоматически или Вручную), время публикации в Scheduling, причину остановки, следующий шаг и ссылку на черновик, когда он сохранён.

Материал показывает этап, цель, язык, источники, сравниваемые дубликаты, проблемы, попытки, а также черновик или расписание. Действия:

  • Одобрить — предложенный материал.
  • Изменить — заголовок, ракурс, замысел или ключевое слово предложенного материала или материала на проверке.
  • Запустить — предложенный или одобренный материал. Он входит в активный запуск плана или получает собственный запуск без поиска идей.
  • Повторить — материал на проверке или заблокированный. После неудачной передачи кнопка называется Повторить планирование.
  • Отменить элемент — материал, который не запланирован и не завершён.
  • Открыть черновик — открыть сохранённую запись.
  • Приостановить план и Возобновить план — на плане, Включить автозапуск — включить расписание.

Придумать идеи сразу предлагает от 5 до 7 идей, по одной на язык, как предложенные материалы. Черновики он не пишет. Тот же запрос дважды возвращает те же материалы.

Планировщик хранит планы и их версии, темы, источники, запуски, материалы, а у каждого материала — утверждения, подтверждающие выдержки из источников, проблемы, сравнения и попытки (последние 20), и контрольную точку этапа не более 64 КиБ. Записи планировщика принадлежат одному сайту.

Он не хранит полный текст загруженных страниц и отправленные запросы.

Записи планировщика — редакторские записи сайта, а не телеметрия. В разделе Настройки → История каждое сохранение планировщика показано как «Черновик сохранён Планировщиком». Копия сайта и перенос сайта с историей их не содержат.


Стабильная версия ещё не выпущена (pre-MVP)
Коммит исходного кода: fe23db481c422b40e317b92fc98116b4c0c26a87 (с локальными изменениями)
Дата сборки (UTC): 2026-10-18T09:22:34.630Z
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску