Планировщик AI-задач — руководство пользователя | YoBench
Как использовать Планировщик AI-задач в YoBench: cron-запуски AI, approval flow для опасных планов, live-таймлайн, whitelist инструментов и полная история запусков.
Что делает модуль «Планировщик AI-задач»
«Планировщик AI-задач» запускает AI-ассистента по расписанию. Вы задаёте промпт, выбираете провайдера и контекст, при необходимости — набор инструментов, и говорите, когда запускать: каждую минуту, ежечасно, ежедневно, еженедельно или ежемесячно. Ассистент выполняет задачу автономно; если он построит план, помеченный как опасный, запуск встанет на паузу с понятным Approve / Deny вместо ошибки.
Что вы получаете:
- AI-запуски по cron — пять типов расписания (минута, час, день, неделя, месяц).
- Ручные запуски — Run Now для любой задачи.
- Изоляция задач — у каждой свой провайдер, контекст, system-prompt, температура, лимит итераций и whitelist инструментов.
- Approval flow — опасные планы попадают в
pending_approval, и можно посмотреть их перед продолжением. - Live-таймлайн — сообщения и результаты инструментов в реальном времени, пока запуск идёт.
- История запусков со статусом, типом триггера, длительностью, токенами и стоимостью.
- Отмена с привязкой к scope — у каждого запуска свой scope key; долгие инструменты корректно очищаются.
Понятия
| Термин | Что значит |
|---|---|
| Задача | Переиспользуемая конфигурация AI: промпт, провайдер, расписание, whitelist инструментов. |
| Запуск (run) | Одно выполнение задачи. Триггер — ручной или cron. |
| Trigger | manual (кнопка) или cron (расписание). |
| Статус | running / done / error / pending_approval / cancelled. |
| Approval | Точка паузы — ассистент просит подтвердить план, помеченный как опасный. |
| Scope | Корень отмены запуска (scheduler-run:{runId}). Все инструменты, спавненные внутри run, принадлежат этому scope. |
Типы расписания
Расписание хранится как schedule_type плюс вспомогательные поля и переводится в cron на лету.
| Тип | Что задаёт | Пример |
|---|---|---|
| Minute | Интервал в минутах | каждые 15 минут |
| Hour | HH:MM в часе | XX:30 каждый час |
| Day | HH:MM | каждый день в 09:00 |
| Week | День недели (1=Пн … 7=Вс) + HH:MM | каждый понедельник в 08:30 |
| Month | День месяца (1–31) + HH:MM | 1-го числа каждого месяца в 00:05 |
Ручной триггер (Run Now) игнорирует расписание.
Контроль инструментов
Задачу можно запустить:
- Со всеми инструментами (legacy / новые задачи, где
tools_enabledвключён, а список пуст / null), либо - С whitelist — выбираете точные id инструментов, которые ассистент может вызывать (web search, browser, terminal, file system, document tools и т. п.), либо
- С отключёнными инструментами — у ассистента только промпт и контекст.
Это главный рычаг безопасности для регулярной задачи: ежедневному отчёту обычно не нужен терминал; задаче по код-ревью — только web и browser.
Approval flow
Pipeline работает в autonomous-режиме — каждый план, не помеченный как опасный, выполняется без вопросов. Когда ассистент эмитит план с requiresConfirmation = true:
- Run переходит в
pending_approval. - План сохраняется; запуск приостанавливается.
- UI показывает план и две кнопки: Approve и Deny.
- Approve — pipeline продолжается с сохранённой точки.
- Deny — run завершается со статусом
cancelledи причиной «Отклонено пользователем».
Pending approvals видны и в карточке запуска, и в отдельном списке Pending Approvals в верхней части страницы — чтобы ничего не потерялось.
Жизненный цикл запуска
сработало расписание (или Run Now)
│
▼
создаётся run
статус = running
│
▼
─── сообщения текут в таймлайн ───
│
├─ done → статус = done
├─ error → статус = error (текст ошибки сохраняется)
├─ отмена → статус = cancelled
└─ опасный план → статус = pending_approval
│
├─ approve → статус = running → продолжается
└─ deny → статус = cancelled
Каждый run хранит: триггер, метки старта/финиша, длительность, использование токенов, стоимость в USD, текст ошибки (если есть) и полный лог сообщений.
Настройки
Задача создаётся через Scheduler → Create, открывается form-drawer. Поля:
- Заголовок — отображаемое имя.
- Промпт — основная инструкция ассистенту, выполняется на каждом тике.
- System Prompt — опциональная постоянная роль / поведение. По умолчанию пусто.
- Провайдер — какой AI-провайдер используется в запуске.
- Контекст — опциональный RAG-контекст для запуска.
- Температура — 0.0 – 1.0, по умолчанию 0.3.
- Max auto-iterations — лимит раундов tool-use внутри одного run, по умолчанию 5.
- Schedule type + соответствующие поля времени / дня недели / дня месяца.
- Is active — toggle для паузы расписания без удаления задачи.
- Tools enabled — глобальный on/off для toolset.
- Allowed tools — multi-select, действует при включённых tools.
В форме можно сохранить черновик задачи без активации.
Сценарий работы
1. Создать задачу по расписанию
- Откройте Scheduler в сайдбаре.
- Create — выезжает drawer задачи.
- Заполните заголовок, промпт, выберите провайдера.
- (Опционально) подключите контекст, ужесточите system prompt, понизьте температуру.
- Выберите тип расписания и время.
- Выберите политику инструментов: enabled + whitelist, enabled + open, disabled.
- Включите Is active и сохраните.
2. Запустить вручную
- Откройте задачу → Run Now → запуск появится в таймлайне сразу.
- Смотрите потоковые сообщения и tool results.
- Остановите в любой момент через Stop — scope отменяется, долгие инструменты корректно сворачиваются.
3. Обработать pending approval
- Бейдж run становится жёлтым (pending), либо появляется новая запись в Pending Approvals.
- Откройте run → просмотрите план.
- Approve — продолжение. Deny — отмена.
4. Просмотреть историю
- В карточке задачи — каждый run со статусом, триггером, длительностью, токенами и стоимостью.
- Кликните run — полный лог сообщений и tool outputs.
- У ошибок сохраняется текст; у отмен — кто/что отменил.
Советы и ограничения
- Ручные запуски удобны для проверки промпта перед активацией расписания.
- System prompt делайте под задачу — глобальная роль ассистента живёт в настройках AI-чата.
- Токены / стоимость приходят из ответа провайдера; для self-hosted локальных моделей стоимость = 0.
- Планировщик работает внутри desktop-приложения — когда YoBench закрыт, cron не срабатывает. Учитывайте это или держите приложение в трее.
- Max auto-iterations в начале лучше держать низким — поднимите, когда проверите промпт.
Дальше
- Подключите AI-провайдер и хотя бы один контекст.
- Свяжите задачу с Менеджером БД — например, ночной запуск, который суммаризует логи медленных запросов.
- Для периодической не-AI работы (чистый cron + скрипты) используйте встроенные DB-задачи или модуль Сценарии.
Помощь и обратная связь
Нашли ошибку или хотите новый тип расписания? Свяжитесь через форму обратной связи.