Если коротко: рутина в Schai GPT — это не напоминание, а задача, которую агент сам ставит себе в очередь по расписанию: разово, по дням недели или раз в месяц. Работник на сервере раз в полминуты проверяет, чья рутина подошла, и запускает обычную фоновую задачу с тем же текстом, а итог приходит пушем и сообщением в чат, даже если чат закрыт. Перед постановкой агент показывает план и цену одного запуска в токенах, потому что рутина умножает стоимость на число повторов. Публиковать посты сама она может только с вашего прямого разрешения, а письма и сообщения людям не отправляет вообще.
Это Profile. Я разбираю инструменты Schai по коду, а не по обещаниям. Сегодня речь о трёх инструментах: `schedule_task`, `list_schedules` и `manage_schedule`, о таблице `agent_schedules` и о работнике, который всё это крутит. Это и есть автоматизация рутинных задач с помощью ИИ в нашем исполнении. Расскажу, что она умеет, чего не умеет и почему некоторые её ограничения сделаны намеренно.
Рутина — это не будильник, а задача, которая запускает сама себя
В Schai GPT есть два похожих на вид механизма, и их легко спутать. Первый — напоминание навыка: «напомни выпить таблетку в 9:00». Оно просто присылает пуш с готовым текстом, думать там нечего. Второй — рутина. В описании инструмента `schedule_task` прямо сказано: для простого пуш-напоминания о таблетке или тренировке нужен другой инструмент, а рутина нужна, когда агент должен сделать работу: собрать данные, оформить документ, найти новости.
Устроено это так. Когда вы пишете «каждый понедельник в 10:00 собирай статистику сайта за неделю», модель не выполняет задачу сейчас. Она заполняет поля: название, полный текст задачи на каждый запуск, частоту, время, дни. Обратите внимание на текст задачи: в инструкции модели велено формулировать его без «каждый день», как самостоятельное поручение. Через неделю никто не будет помнить контекст разговора, и агент получит только этот текст.
Дальше строка ложится в таблицу `agent_schedules`: текст, правило, часовой пояс, время следующего запуска, разрешения. Работник фоновых задач раз в 30 секунд выбирает до десяти рутин, у которых подошло время, и для каждой создаёт обычную задачу агента с припиской «Плановый запуск рутины такой-то, такого-то числа». Дальше это обычная задача агента, как запущенная руками. Когда задача заканчивается, итог кладётся в чат Schai GPT с пометкой ⏰ и уходит пушем.
Один тонкий момент, полезный на практике: сначала работник сдвигает «следующий запуск», и только потом создаёт задачу. Сдвиг сделан с условием «если время ещё то же самое», поэтому две копии работника не запустят одну рутину дважды. А если сервер простоял, скажем, сутки, рутина после включения запустится один раз, и следующее время посчитается от текущего момента. Пачку пропущенных отчётов разом вы не получите.
Что можно поставить: три вида расписания и честные границы
Правило в коде бывает ровно трёх видов, и модель выбирает одно из четырёх слов: `once`, `daily`, `weekly`, `monthly`.
Разово — дата и время: «завтра в 9 пришли отчёт». Если время уже прошло, сервер откажет: «Это время уже прошло».
По дням недели — время и список дней: «пн,чт», «будни». «Каждый день» — это то же правило с пустым списком дней.
Раз в месяц — время и число от 1 до 31. Если вы выбрали 31-е, а в месяце 30 дней, запуск будет в последний день месяца, а не пропадёт.
Время вы называете местное, а сервер переводит его в UTC по часовому поясу из настроек Личного помощника (по умолчанию — Москва). Пересчёт идёт на каждом кандидате, а не один раз, иначе в ночь перевода часов запуск уехал бы на час. Правила поясов меняются по решениям властей, их ведёт база часовых поясов IANA, на которую опираются системные часы и браузеры.
Чего нет — тоже важно знать заранее:
Нет интервалов вроде «каждые два часа» или «каждые 15 минут»: одно правило срабатывает не чаще раза в день. Чаще можно только несколькими рутинами на разное время.
Нет запуска по событию: рутина не умеет «когда придёт письмо от X». Об этом ниже есть отдельный раздел.
Изменить время у готовой рутины нельзя: экран и API умеют только паузу, включение, разрешения и удаление. Новое время — это новая рутина.
На бесплатном тарифе можно держать до 3 активных рутин, на платном — до 20. Рутины на паузе в лимит не входят.

Почему рутине нужен план и цена заранее
Здесь есть распространённый миф: раз агент работает «сам, на автопилоте», значит, это примерно бесплатно, как будильник в телефоне. Это не так. Каждый запуск рутины — полноценная работа модели: она решает, какой инструмент взять, читает результаты, пишет итог. В модуле оценки цены `agentPlanCost.ts` записан реальный замер расхода за октябрь 2026 года: один шаг агента — это около 22 тысяч входных токенов модели. Поэтому у рутины цена считается не за постановку, а за каждый запуск, и дальше умножается на частоту.
Компания Anthropic в своём руководстве о том, как строить эффективных агентов, прямо пишет, что автономность агентов означает более высокие расходы и риск накопления ошибок. Поэтому разработчикам советуют ставить ограничители. Рутина — самый автономный режим из всех: вас нет рядом ни в момент запуска, ни в момент, когда что-то пошло не так. Значит, договориться обо всём нужно до первого запуска.
Отсюда порядок. В инструкции агента рутина по расписанию прямо названа «большой задачей». Для таких задач первым шагом вызывается `propose_plan`: агент ничего не делает, а показывает карточку. В ней шаги, которые будут выполняться при каждом запуске, и строка «Каждый запуск: ≈ N токенов (≈ M ₽)». Рядом — ваш остаток и пометка, хватает ли его на запуск. Рутина ставится только после вашей кнопки «Запустить». Если токенов не хватает, вместо «Запустить» появится «Выбрать тариф».
Чтобы почувствовать масштаб, я прогнал формулу оценки на трёх типичных просьбах. Модель — та, что по умолчанию, цены — на конец октября 2026. Это оценка с запасом 20%, списание идёт по факту.
Рутина → Один запуск → За месяц
Отчёт Метрики по понедельникам в Google Doc → ≈ 81 тыс. токенов (≈ 6 ₽) → ≈ 0,3 млн (4 запуска)
Каждое утро 3 новости и черновики постов → ≈ 216 тыс. (≈ 16 ₽) → ≈ 6,5 млн (30 запусков)
Каждый день ролик с музыкой и публикацией → ≈ 2,4 млн (≈ 182 ₽) → ≈ 73 млн (30 запусков)
Утренняя сводка Личного помощника → 0 → 0
Разница в тридцать раз между первой и третьей строкой — не про «умность» модели. Её создают генерация видео (на неё приходится больше 1,8 млн из 2,4 млн) и частота. Без карточки с ценой человек узнал бы об этом из баланса через неделю. Важная оговорка: карточка сравнивает остаток с ценой одного запуска, а не месяца. Хватает на сегодня — не значит, что хватит на тридцать дней. Если частая дорогая рутина вам не по карману, лучше сразу сделать её реже.
Утренняя сводка тоже стала рутиной, но без модели
Вы, наверное, заметили в таблице ноль. Это не опечатка. «Твоя сводка» Личного помощника (почта, встречи, погода, новости, Метрика — то, что вы включили в настройках) раньше приходила по отдельному крону. С 31 октября 2026 года это рутина, но особого вида — «прямая».
У такой рутины в таблице заполнено поле `direct_tool = 'my_briefing'`. Работник видит его и вообще не зовёт модель: он вызывает один готовый сборщик сводки и сразу кладёт результат в чат карточкой «📋 Твоя сводка». Задача ограничена одним шагом. Модель здесь не нужна, потому что сводка — сборка ваших же данных по фиксированному шаблону, решать тут нечего. Поэтому она осталась бесплатной.
Поставить сводку можно той же фразой в чате: «каждое утро в 8:00 присылай мою сводку». У `schedule_task` для этого есть флаг `use_briefing`. Если в названии или тексте есть «итоги» или «вечер», соберётся вечерний вариант, иначе утренний. Прямой инструмент сервер берёт только из белого списка, сейчас в нём единственная позиция — сводка. Тем, у кого утренние и вечерние пуши сводки были включены, их перевели в рутины автоматически, в то же время, а старый крон сводку больше не шлёт, чтобы она не приходила дважды.
Публикация — только по разрешению, и решает его не модель
Самый чувствительный вопрос: можно ли поручить рутине «каждый день делай ролик и выкладывай в мой профиль»? Можно, но в коде здесь три замка.
Первый замок — флаг ставит человек, а не модель. У `schedule_task` есть поле `publish_without_confirm`. В его описании модели сказано: ставить `true` только если человек сам прямо сказал «публикуй сам» или «выкладывай без спроса». Если поле не указано, разрешение записывается как «нет».
Второй замок — проверка в момент публикации. Инструмент `publish_post` в открытом чате вообще не работает: там посты идут черновиком с кнопкой. В фоне он перед публикацией смотрит в `permissions.publish_profile` той рутины, из которой запущен. Разрешения нет — пост не публикуется, а возвращается готовым текстом, и вы найдёте его в итоге рутины. Инструкция для фоновой работы повторяет это ещё раз: публиковать можно, только если работе это разрешено.
Третий замок — галочка всегда у вас. В «Мои рутины» под каждой рутиной есть строка «Без подтверждения: публиковать посты в мой профиль». Её можно включить и выключить в любой момент. Сервер при этом принимает только известные разрешения и только значения «да/нет» — ничего лишнего в рутину не попадёт. Опубликованный пост дальше уходит в ваши подключённые соцсети по настройкам кросспостинга. Ещё при постановке рутины агент покажет, куда именно, и предложит подключить недостающие.
Почему так строго? Публикация — действие наружу, его нельзя отозвать у тех, кто уже прочитал. Рутина работает в момент, когда вы её не видите, и одна неудачная формулировка задачи повторится столько раз, сколько запусков. Разрешения на письма и сообщения людям не существует вовсе, и экран рутин говорит это прямо: «Письма и сообщения людям — всегда только по вашей кнопке». Среди инструментов фонового исполнителя нет ни отправки письма, ни сообщения в мессенджер.

«Когда придёт письмо от X» — пока не рутина
Частая просьба: «когда придёт письмо от бухгалтера — кратко перескажи». Честный ответ по коду: рутины по событию нет. Правило запуска — только время. Модель не может поставить рутину «на письмо», потому что такого поля в инструменте нет.
Но похожая вещь в Schai существует отдельно — в настройках почты Личного помощника. Там можно указать отправителей, а также имена и ключевые слова, и включить уведомления. Когда такое письмо приходит, вы получаете пуш с отправителем и темой, а само письмо (до 1800 знаков текста) ложится в чат Schai GPT с кнопкой «Ответить». Пересказ автоматически не делается: письмо уже в чате, и достаточно спросить «перескажи коротко» или «что ответить?».
Мгновенность здесь обеспечивает механизм Gmail: Google сам сообщает о новом письме через подписку `users.watch`. Ограничение у неё такое: по документации Gmail API подписку нужно обновлять хотя бы раз в 7 дней, иначе уведомления прекращаются. Наш крон продлевает её за сутки до истечения, а если подписка недоступна, раз в 10 минут опрашивает почту сам. Повторов не будет: каждое письмо отмечается по идентификатору.
И ещё одна граница. Рутины живут в Schai GPT на сайте и в приложении. Телеграм-бот персоны их не ставит и не показывает, результаты рутин в Telegram не приходят — только пуш и сообщение в чате Schai GPT.
Кроме того, рутине доступны только инструменты, которые умеет серверный исполнитель: почта, календарь, Google Диск и Таблицы, веб-поиск, Метрика, картинки, видео, музыка, презентации, черновики постов и статей. Работа с сайтами в браузере выполняется во вкладке на вашем компьютере, и ночью, когда компьютер выключен, её сделать некому. Если рутине понадобится такой инструмент, запуск завершится сообщением, что этот инструмент работает только в открытом чате.
Что вы видите и чем управляете
У рутин два экрана. «Мои рутины» открывается круглой кнопкой с часами рядом с полем чата. В списке — название, правило словами («пн в 10:00», «по будням в 08:00», «каждый месяц 1-го в 11:00»), время следующего запуска и число запусков. Если раскрыть рутину, видны полный текст задачи, галочка разрешения и последние пять запусков со статусами «готово», «сбой», «выполняется» и началом результата. Кнопки — «Пауза» или «Включить» и «Удалить». Если рутин ещё нет, экран предложит три примера, и тап отправит пример в поле ввода.
«Моя работа» — блок в «Мои навыки», общий дом для агента. Там то, что он делает сейчас и сделал недавно, ваши рутины, последние презентации и вход в «Документы». То же самое можно спросить словами: «какие у меня рутины?» вызовет `list_schedules`, «останови сводку» или «удали рутину про ролики» вызовет `manage_schedule`. Найти рутину можно по номеру в списке или по слову из названия.
Две мелочи поведения, о которых лучше знать. Если включить рутину после паузы, следующий запуск считается от текущего момента, а не от старой даты. Разовую рутину, время которой уже прошло, включить нельзя. А если у вас уже заняты все три слота одновременных задач, рутина не теряется: работник переносит её на 10 минут и пробует снова.
Если хотите начать с чего-то бесплатного, попросите утреннюю сводку. Потом добавьте отчёт, который вы и так собираете руками каждую неделю. Попробовать Schai GPT можно прямо на главной: напишите задачу с расписанием, посмотрите на карточку с ценой за запуск и только потом жмите «Запустить».
Коротко
Рутина — это задача, которую агент ставит себе сам: работник раз в 30 секунд создаёт обычную фоновую задачу, итог приходит пушем и в чат.
Расписание бывает трёх видов: разово, по дням недели (в том числе каждый день) и раз в месяц. Интервалов чаще раза в день и запуска по событию нет.
Цена показывается до постановки и считается за один запуск. За месяц она умножается на частоту, а сильнее всего её поднимает видео.
Сводка Личного помощника — «прямая» рутина без модели, поэтому бесплатная.
Публикует рутина только с разрешения, которое вы дали словами и которое видно галочкой. Писем и сообщений людям она не шлёт никогда.
«Когда придёт письмо от X» — это уведомления почты Личного помощника, а не рутина. Telegram-бот рутины не ставит.


Пока нет комментариев