Библиотека · Автоматизация: браузер, экран и расписание

Loop vs Scheduled Tasks — когда что использовать

Строитель45 минОбновлено: октябрь 2026
41 из 105 в библиотеке

Время: ~20 мин теории + 25 мин практики

Суть урока

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

Ключевые концепции

  • /loop — живые петли внутри текущей сессии Claude Code
  • Scheduled Tasks — долгоживущие расписания вне сессии: облачные рутины (Routines), задачи в приложении для компьютера, внешний cron вроде Trigger.dev
  • Правило выбора: временной горизонт + требование присутствия
  • Догоняющий запуск (catch-up) — что происходит с пропущенными запусками

По состоянию на октябрь 2026 Routines имеют статус research preview: поведение и лимиты могут меняться. Актуальные возможности и версии: Актуальное сейчас.


Теория

/loop — живые петли

🎨 Образ: Охранник который ходит по этажам каждые десять минут — пока сам на смене. Заступил, ходит, смотрит. Ушёл домой — обходы прекратились. /loop работает ровно так же: активен пока ты у терминала, останавливается когда закрываешь сессию.

Команда /loop запускает повторяющееся действие прямо внутри текущей сессии Claude Code.

Синтаксис:

Код
/loop [интервал] [промпт]

Интервал можно поставить перед промптом (10m) или после него словами («каждые 2 часа»). Единицы: s, m, h, d. Секунды округляются до минуты. Если интервал не указан, Claude сам выбирает паузу между проверками, от одной минуты до часа. Просто /loop запускает встроенный промпт обслуживания: довести незаконченное, посмотреть на pull request, замечания и упавшие проверки.

Примеры:

Напиши в чат
/loop 10m Проверь есть ли новые письма от клиента client@example.com и выведи краткое содержание

/loop 5m Запусти pytest и выведи статус тестов

/loop 1h Проверь статус деплоя на Trigger.dev и сообщи если появились ошибки

Как это работает под капотом:

  • Claude Code держит активную сессию
  • Каждые N минут ставит указанный промпт в очередь: он выполняется между твоими ходами, а не посреди ответа
  • У промпта есть доступ ко всем инструментам сессии
  • Результат выводится в терминал
  • Ты видишь обновления в реальном времени

Характеристики /loop

Срок жизни: 7 дней максимум

Повторяющаяся задача /loop сама удаляется через 7 дней после создания: она срабатывает последний раз и исчезает. Это защита от забытых петель. Кроме того, петля привязана к сессии Claude Code: если ты закроешь терминал — петля остановится. Нужна дольше недели — используй расписание вне сессии (ниже).

Требует открытый терминал

Это живая сессия. Claude Code должен быть запущен. Не подходит для "запустить и забыть".

Нет catchup

Если время запуска прошло, пока Claude был занят долгим ответом или компьютер спал, пропущенные итерации не накапливаются: задача сработает один раз, когда Claude освободится, и продолжит по расписанию.

Доступна помощь агента в реальном времени

Главное преимущество: агент видит что происходит и может реагировать. Если при проверке email он обнаружил странную ситуацию — он может принять решение прямо здесь, а не просто зафиксировать факт.

Когда идеально:

  • Мониторинг в рабочий день: проверять папку входящих каждые 10 минут с 9 до 18
  • Отслеживание статуса деплоя который идёт 2-3 часа
  • Спринт разработки конкретной фичи на несколько дней с ежечасными проверками
  • Живой мониторинг тестов пока ты работаешь

Scheduled Tasks — долгоживущие расписания

🎨 Образ: Будильник который заводишь один раз — он звонит сам, даже если ты уснул. Scheduled Task — это будильник в облаке: настроил, забыл, получаешь отчёт каждую пятницу. Компьютер может быть выключен, ты в отпуске — задача всё равно выполнится.

Расписание вне сессии в Claude Code бывает трёх видов:

  • Routines (рутины) — задача в облаке Anthropic: промпт, репозитории и подключённые сервисы (коннекторы). Запускается по расписанию, по HTTP-запросу или по событию GitHub. Работает при выключенном компьютере. Создаётся на claude.ai/code/routines или командой /schedule. Нужен тариф Pro или выше; статус research preview. Минимальный интервал — 1 час.
  • Задачи в приложении для компьютера — запускаются на твоей машине с доступом к локальным файлам. Работают, пока приложение открыто и компьютер не спит. Минимальный интервал — 1 минута.
  • Внешний cron-сервис, например Trigger.dev или Cloudflare Workers cron: пишешь код сам, платформа запускает его по расписанию.

Ниже на примере внешнего сервиса видно, как устроено расписание в коде. Для самого Claude Code сначала попробуй встроенные рутины.

Как настроить через Trigger.dev:

typescript
// src/trigger/weekly-report.ts
// Импорт зависит от версии SDK: сверься с документацией trigger.dev
import { schedules } from "@trigger.dev/sdk";

export const weeklyYoutubeReport = schedules.task({
  id: "weekly-youtube-report",
  cron: "0 9 * * 5",  // Каждую пятницу в 09:00
  
  run: async (payload) => {
    // Собрать статистику YouTube за неделю
    const stats = await fetchYoutubeStats({ period: "7d" });
    
    // Сгенерировать отчёт через Claude
    const report = await generateReport(stats);
    
    // Отправить в Telegram
    await sendToTelegram(report);
    
    return { completed: true };
  }
});

Синтаксис cron — Quick Reference:

Напиши в чат
Формат: минуты часы день_месяца месяц день_недели
         (0-59) (0-23) (1-31)     (1-12) (0-7, 0 и 7 = воскресенье)
Cron выражение Что делает Типичное применение
*/5 * * * * Каждые 5 минут Мониторинг email
0 * * * * Каждый час в :00 Проверка статуса деплоя
0 8 * * 1-5 Пн-Пт в 08:00 Daily Brief
0 9 * * 5 Каждую пятницу в 09:00 Еженедельный отчёт
0 10 1 * * 1-е число месяца в 10:00 Ежемесячный финансовый отчёт
0 3 * * * Каждый день в 03:00 Ночной backup
*/30 9-18 * * 1-5 Каждые 30 мин с 9 до 18, Пн-Пт Рабочие часы мониторинг
0 0 * * 0 Каждое воскресенье в полночь Еженедельная очистка

Визуальный редактор для проверки: crontab.guru -- вводишь выражение, видишь расписание человеческим языком.


Характеристики Scheduled Tasks

Долгоживущие: месяцы и годы

Один раз настроил — работает постоянно пока не остановишь. Это системная функция, не ситуационная.

Не требуют открытого терминала

Рутины и внешние сервисы выполняются в облаке. Компьютер может быть выключен — задача всё равно запустится. Задача в приложении для компьютера исключение: ей нужны запущенное приложение и бодрствующий компьютер.

Догоняющий запуск (catch-up) зависит от инструмента

🎨 Образ: Почтальон который вернулся после болезни — приносит не всю накопившуюся почту, а одну сводку за последний пропущенный день. Так ведёт себя задача в приложении для компьютера.

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

Нет живой реакции

Внешний cron-сервис выполняет заранее описанный алгоритм. Если что-то пошло не по плану — задача зафиксирует это в логах, но не сможет гибко среагировать как живой агент. Рутина Claude Code ближе к агенту: она запускает полноценную сессию и сама разбирается по промпту. Но во время запуска ты не рядом, и подтверждать действия некому, поэтому промпт должен быть самодостаточным, а доступы минимальными.

Когда идеально:

  • Еженедельный отчёт по YouTube-каналу каждую пятницу
  • Ежедневный мониторинг конкурентов и новостей
  • Ежемесячный финансовый отчёт первого числа
  • Регулярный backup данных
  • Любая задача которая должна работать "сама по себе"

Сравнительная таблица

Критерий /loop Рутина (облако) Задача в приложении
Где работает твой компьютер облако Anthropic твой компьютер
Срок жизни до 7 дней пока не отключишь пока не удалишь
Требует открытую сессию ДА НЕТ НЕТ
Нужен включённый компьютер ДА НЕТ ДА (приложение открыто)
Догон пропущенных запусков НЕТ не нужен, компьютер не участвует один запуск за последние 7 дней
Доступ к локальным файлам ДА НЕТ (свежий клон репозитория) ДА
Минимальный интервал 1 минута 1 час 1 минута
Настройка секунды несколько минут несколько минут
Расход лимиты подписки лимиты подписки лимиты подписки
Лучший для ситуативный мониторинг регулярные операции без компьютера регулярные операции с локальными файлами

Внешний cron-сервис (Trigger.dev и похожие) подходит, когда нужен собственный код и свой интерфейс. Он считается отдельно: у него своя оплата и свои правила. Условия рутин и тарифов меняются: Актуальное сейчас.


Правило выбора

🎨 Образ: Выбрать между прожектором и фонариком. Прожектор (Scheduled Tasks) — мощный, стационарный, светит сам. Фонарик (/loop) — в руке, направляешь куда нужно, но только пока держишь. Для постоянного освещения двора — прожектор. Для ночной прогулки — фонарик.

Ответь на два вопроса:

1. Сколько это будет работать?

  • Несколько часов или дней (до 7) → /loop
  • Недели, месяцы, постоянно → Scheduled Tasks

2. Ты будешь за компьютером?

  • Да, активно работаешь → /loop (видишь что происходит, можешь вмешаться)
  • Нет, хочешь "запустить и забыть" → Scheduled Tasks: рутина в облаке, а если нужны локальные файлы — задача в приложении

Примеры по правилу:

"Хочу следить за статусом деплоя пока он идёт (2 часа)" → /loop: короткий период, ты за компьютером

"Хочу еженедельный отчёт по проекту по пятницам" → Scheduled Task: регулярно, не требует присутствия

"Хочу проверять inbox каждые 10 минут в рабочий день" → Зависит: если только сегодня → /loop. Если навсегда → Scheduled Task

"Хочу три дня следить за конкурентами пока готовлю pitch" → /loop: ограниченный срок, активная работа


Комбинирование

В сложных системах оба подхода используются вместе:

Код
Scheduled Task (рутина в облаке или Trigger.dev):
→ Каждый будний день в 08:30 запускает Daily Brief
→ Работает постоянно, не требует внимания

/loop (во время рабочего дня):
→ Когда ожидаешь важный email — запускаешь /loop на 4 часа
→ Агент проверяет каждые 5 минут и сразу говорит если пришло
→ Это дополнение к регулярному расписанию, не замена

Практика

Задание: Настроить /loop для живого мониторинга

  1. Выбери что-то что хочешь мониторить прямо сейчас:

    • Файл который должен измениться (например, лог-файл)
    • Директорию куда должны появиться новые файлы
    • Результат команды (например, статус git)
  2. Запусти /loop:

    Напиши в чат
    /loop 3m Проверь содержимое папки ~/Downloads и выведи список файлов добавленных за последние 10 минут
  3. Наблюдай 3-4 итерации. Добавь файл в Downloads и посмотри как агент его обнаружит.

  4. Останови петлю: попроси Claude «отмени эту проверку» (список задач покажет вопрос «какие у меня запланированные задачи?»). Если запускал /loop без интервала, хватит нажать Esc. Иначе петля сама удалится через 7 дней.

  5. Bonus: Опиши ту же задачу как расписание вне сессии. Вариант А: рутина через /schedule (нужен тариф Pro или выше, после создания смотри результат на claude.ai/code/routines). Вариант Б: конфигурация для Trigger.dev (можно без деплоя — просто написать код и понять синтаксис cron)


Шаблон: конфигурация Scheduled Tasks

Пример набора расписаний для продуктивного фрилансера (на примере внешнего cron-сервиса: тот же набор можно оформить как три рутины):

typescript
// schedules.ts — все cron-задачи в одном файле

// Утренний Daily Brief — Пн-Пт в 08:00
export const dailyBrief = schedules.task({
  id: "daily-brief",
  cron: "0 8 * * 1-5",
  run: async () => {
    const [emails, meetings, tasks] = await Promise.all([
      getUnreadEmails({ since: "12h" }),
      getTodayMeetings(),
      getOpenTasks({ priority: "high" })
    ]);
    const brief = await generateBrief(emails, meetings, tasks);
    await sendToTelegram(brief);
  }
});

// Еженедельный отчёт — Пятница 17:00
export const weeklyReport = schedules.task({
  id: "weekly-report",
  cron: "0 17 * * 5",
  run: async () => {
    const stats = await getWeeklyStats();
    const report = await generateWeeklyReport(stats);
    await sendToTelegram(report);
  }
});

// Backup — каждый день в 03:00
export const nightlyBackup = schedules.task({
  id: "nightly-backup",
  cron: "0 3 * * *",
  run: async () => {
    await backupDatabase();
    await sendToTelegram("✅ Backup завершён");
  }
});

Инструменты и ресурсы

  • /loop — встроенная команда Claude Code (бандл-навык)
  • Routines — облачные рутины: claude.ai/code/routines или /schedule (research preview, Pro и выше)
  • Задачи в приложении для компьютера — вкладка Code, раздел Routines, вариант Local
  • Документация — Run prompts on a schedule и Routines
  • Trigger.dev — платформа для Scheduled Tasks и воркфлоу (внешний сервис)
  • Cron syntax reference — визуальный редактор cron-выражений — crontab.guru
  • Skill: anthropic-skills:schedule — помощь с настройкой расписаний

Ключевые выводы

/loop — велосипед: быстро запустить, хорошо для ситуаций когда ты рядом. Scheduled Tasks — автомобиль: настроить дольше, зато едет сам пока ты занят другим. Что случается с пропущенным запуском — не деталь, а ключевое свойство: /loop не догоняет, задача в приложении делает один догоняющий запуск, облачная рутина от твоего компьютера не зависит. Для критических операций (финансовые отчёты, бэкапы) проверяй результат, а не надейся на догон. Правило выбора: временной горизонт + требование присутствия. Два вопроса — один ответ.


Связанные уроки

  • Деплой на Cloudflare — Cloudflare Workers cron triggers как альтернатива Trigger.dev для serverless расписаний
  • AI Executive Assistant — Scheduled Tasks питают все четыре воркфлоу ассистента (email, meetings, brief, tasks)

Следующий урок

→ Первые клиенты: trust map и warm conversations

Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс