Запуск промптов по расписанию
Используйте
/loopи инструменты планирования cron для многократного запуска промптов, опроса статуса или установки одноразовых напоминаний в рамках сессии Qwen Code.
Запланированные задачи позволяют Qwen Code автоматически повторно запускать промпт через заданные интервалы. Используйте их для опроса статуса деплоя, мониторинга PR, проверки долгой сборки или напоминания о действиях позже в рамках сессии.
Задачи привязаны к сессии: они существуют в текущем процессе Qwen Code и исчезают при выходе. На диск ничего не записывается.
Примечание: Запланированные задачи — экспериментальная функция. Включите её с помощью
experimental.cron: trueв ваших настройках или установите переменную окруженияQWEN_CODE_ENABLE_CRON=1.
Планирование периодического промпта с помощью /loop
Встроенный скилл /loop — самый быстрый способ запланировать периодический промпт. Укажите необязательный интервал и текст промпта, и Qwen Code создаст cron-задачу, которая будет выполняться в фоновом режиме, пока сессия открыта.
/loop 5m check if the deployment finished and tell me what happenedQwen Code парсит интервал, преобразует его в cron-выражение, планирует задачу и подтверждает интервал и ID задачи. Затем он сразу же выполняет промпт один раз — вам не нужно ждать первого срабатывания cron.
Синтаксис интервалов
Интервалы необязательны. Их можно указать в начале, в конце или опустить полностью.
| Формат | Пример | Распознанный интервал |
|---|---|---|
| Токен в начале | /loop 30m check the build | каждые 30 минут |
Заключительная конструкция every | /loop check the build every 2 hours | каждые 2 часа |
| Без интервала | /loop check the build | по умолчанию каждые 10 минут |
Поддерживаемые единицы: s (секунды), m (минуты), h (часы) и d (дни). Секунды округляются до ближайшей минуты, так как cron работает с точностью до минуты. Интервалы, которые не делятся нацело на свою единицу, например 7m или 90m, округляются до ближайшего стандартного значения, и Qwen Code сообщает, какой интервал был выбран.
Зацикливание другой команды
Запланированный промпт может сам быть командой или вызовом скилла. Это удобно для повторного запуска уже упакованного рабочего процесса.
/loop 20m /review-pr 1234При каждом срабатывании задачи Qwen Code выполняет /review-pr 1234, как если бы вы ввели её вручную.
Управление задачами /loop
/loop также поддерживает две подкоманды для управления существующими задачами:
/loop listВыводит список всех запланированных задач с их ID и cron-выражениями.
/loop clearОтменяет все запланированные задачи одновременно.
Установка одноразового напоминания
Для одноразовых напоминаний опишите желаемое действие на естественном языке вместо использования /loop. Qwen Code запланирует задачу с однократным выполнением, которая удалит себя после запуска.
remind me at 3pm to push the release branchin 45 minutes, check whether the integration tests passedQwen Code фиксирует время срабатывания на конкретную минуту и час с помощью cron-выражения и подтверждает, когда оно произойдёт.
Управление запланированными задачами
Попросите Qwen Code на естественном языке вывести список задач или отменить их, либо обратитесь к базовым инструментам напрямую.
what scheduled tasks do I have?cancel the deploy check jobПод капотом Qwen Code использует следующие инструменты:
| Инструмент | Назначение |
|---|---|
CronCreate | Планирование новой задачи. Принимает 5-полевое cron-выражение, промпт для запуска и флаг периодичности или однократного выполнения. |
CronList | Вывод списка всех запланированных задач с их ID, расписанием и промптами. |
CronDelete | Отмена задачи по ID. |
Каждая запланированная задача имеет 8-символьный ID, который можно передать в CronDelete. В одной сессии может одновременно находиться до 50 запланированных задач.
Как выполняются запланированные задачи
Планировщик проверяет наличие задач, готовых к выполнению, каждую секунду и ставит их в очередь, когда сессия находится в режиме ожидания. Запланированный промпт срабатывает между вашими ходами, а не во время формирования ответа Qwen Code. Если Qwen Code занят в момент наступления времени задачи, промпт будет ждать завершения текущего хода.
Все времена интерпретируются в вашем локальном часовом поясе. Cron-выражение вида 0 9 * * * означает 9:00 утра в том месте, где запущен Qwen Code, а не по UTC.
Джиттер (случайная задержка)
Чтобы избежать одновременных запросов к API от всех сессий в одно и то же время, планировщик добавляет небольшое детерминированное смещение ко времени срабатывания:
- Периодические задачи срабатывают с задержкой до 10% от их периода, но не более 15 минут. Ежечасная задача может сработать в любое время от
:00до:06. - Одноразовые задачи, запланированные на начало или середину часа (минута
:00или:30), срабатывают на 90 секунд раньше.
Смещение вычисляется на основе ID задачи, поэтому одна и та же задача всегда получает одинаковое смещение. Если важна точность времени, выберите минуту, отличную от :00 или :30, например 3 9 * * * вместо 0 9 * * *, и джиттер для одноразовых задач не применится.
Срок действия: три дня
Периодические задачи автоматически истекают через 3 дня после создания. Задача срабатывает в последний раз, а затем удаляет себя. Это ограничивает время работы забытого цикла. Если вам нужно, чтобы периодическая задача работала дольше, отмените и пересоздайте её до истечения срока.
Одноразовые задачи не истекают по таймеру — они просто удаляют себя после однократного выполнения.
Справочник по cron-выражениям
CronCreate принимает стандартные 5-полевые cron-выражения: minute hour day-of-month month day-of-week. Все поля поддерживают подстановочные знаки (*), одиночные значения (5), шаги (*/15), диапазоны (1-5) и списки через запятую (1,15,30).
| Пример | Значение |
|---|---|
*/5 * * * * | Каждые 5 минут |
0 * * * * | Каждый час ровно |
7 * * * * | Каждый час в 7 минут |
0 9 * * * | Каждый день в 9:00 по местному времени |
0 9 * * 1-5 | По будням в 9:00 по местному времени |
30 14 15 3 * | 15 марта в 14:30 по местному времени |
Для дня недели используется 0 или 7 для воскресенья и 6 для субботы. Если ограничены оба поля: день месяца и день недели (ни одно не равно *), дата считается совпавшей, если совпадает хотя бы одно из полей — это соответствует стандартной семантике vixie-cron.
Расширенный синтаксис, такой как L, W, ?, и псевдонимы имён, например MON или JAN, не поддерживается.
Ограничения
Планирование в рамках сессии имеет следующие ограничения:
- Задачи срабатывают только пока Qwen Code запущен и находится в режиме ожидания. Закрытие терминала или завершение сессии отменяет все задачи.
- Нет механизма наверстывания пропущенных срабатываний. Если запланированное время задачи прошло, пока Qwen Code обрабатывал долгий запрос, она сработает один раз, когда Qwen Code освободится, а не по разу за каждый пропущенный интервал.
- Нет сохранения между перезапусками. Перезапуск Qwen Code очищает все задачи, привязанные к сессии.