> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Рутина

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

<Note>Доступно на всех облачных тарифах; для self-hosted требуется тариф Business или выше.</Note>

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

Рутина — это ресурс внутри базы, она стоит в левой боковой панели рядом с таблицами, приложениями и автоматизациями.

<Info>Автоматизация срабатывает на событие — изменение записи, отправку формы, вебхук — и выполняет заранее настроенные шаги. Рутина срабатывает только по времени и выполняет промпт, который агент трактует сам. Берите автоматизацию, когда нужны фиксированные шаги и предсказуемый результат; берите рутину, когда агент должен каждый раз сам решать, что делать с текущими данными.</Info>

## Создание рутины

<Steps>
  <Step title="Создать">
    В левой боковой панели нажмите **+** и выберите **Новая рутина**.
  </Step>

  <Step title="Написать промпт">
    Опишите в поле **Промпт**, что должен делать каждый запуск. Промпт — это полная инструкция для запуска, поэтому укажите источник данных, порядок обработки и место для результата. Например: «Собери записи, добавленные вчера в таблицу Задачи, сгруппируй их по ответственным и запиши сводку в таблицу Ежедневный отчёт».
  </Step>

  <Step title="Задать расписание">
    Выберите частоту в разделе **Расписание** и при необходимости укажите **Начало** и **Окончание (необязательно)**.
  </Step>

  <Step title="Активировать">
    Нажмите **Активировать**. Конфигурация должна быть сохранена, а в расписании должен быть хотя бы один будущий запуск.
  </Step>
</Steps>

## Настройки

Помимо промпта и расписания форма содержит следующие настройки:

| Настройка                                  | Описание                                                                                                                                                                                                             |
| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Модель**                                 | Модель и уровень интеллекта, на которых работает эта рутина. Оставьте **Модель по умолчанию**, чтобы использовать модель чата, заданную в пространстве                                                               |
| **Максимальное время выполнения (минуты)** | Запуск сверх этого предела прерывается и отмечается как неудачный. От 5 до 120 минут, по умолчанию 30                                                                                                                |
| **Чат**                                    | **Новый чат для каждого запуска** оставляет запуски независимыми друг от друга; **Продолжить чат предыдущего запуска** переносит контекст прошлых запусков и подходит для работы, которой нужен предыдущий результат |
| **Начало** / **Окончание (необязательно)** | Границы расписания. Без времени окончания рутина работает бессрочно                                                                                                                                                  |

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

### Расписание

Частоту можно выбрать из готовых вариантов: **Ежечасно** с указанием минуты, **Ежедневно** и **По будням** с указанием времени, **Еженедельно** с указанием дня недели и времени, **Ежемесячно** с указанием числа и времени.

Для более точных условий выберите **Пользовательская (RRULE)** и напишите правило RFC 5545, например `FREQ=DAILY;BYHOUR=9;BYMINUTE=0`. У пользовательского правила есть ограничения:

* Частота должна быть `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY` или `YEARLY`, а между двумя запусками должен быть промежуток не менее 1 часа.
* Допустимы `INTERVAL`, `COUNT`, `BYDAY`, `BYMONTHDAY`, `BYMONTH`, а также по одному `BYMINUTE` и `BYHOUR`. Максимум для `COUNT` — 1000, а `COUNT` или `INTERVAL` требуют заданного времени в поле **Начало**.
* Часовой пояс и границы задаются формой, поэтому `TZID`, `DTSTART`, `UNTIL` и `BYSECOND` отклоняются.

Расписание с единственным запуском записывается пользовательским правилом с `COUNT=1`.

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

## Черновики, обновление и запуск вручную

Новая рутина — это черновик, и по расписанию она не запускается, пока вы её не активируете. При редактировании активной рутины изменение тоже сохраняется черновиком, а работающая версия продолжает использовать прежнюю конфигурацию: нажмите **Обновить**, чтобы применить его, или **Отменить изменения**, чтобы отказаться.

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

Чтобы остановить рутину, выключите переключатель. Расписание перестанет срабатывать, а накопленная история выполнения сохранится.

## История выполнения

Откройте рутину и перейдите на вкладку **История выполнения**. Список запусков фильтруется по статусу и периоду, что помогает найти конкретный сбой; у выбранного запуска видно запланированное время, время начала и завершения, длительность и полный чат этого запуска.

Запуски отмечаются как **В очереди**, **Выполняется**, **Завершён**, **Ошибка** или **Отменено**. **Отменено** появляется, когда запуск кто-то прервал либо когда рутина или её база были удалены.

Запуск со статусом **Ошибка** указывает причину, и каждая причина требует своего решения:

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

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

<Info>Для просмотра истории выполнения нужно право на редактирование рутины. Владелец и создатель базы могут создавать, редактировать и удалять рутины; у остальных участников доступ только на чтение.</Info>

## Уведомления об ошибках и автоматическая остановка

Teable отправляет уведомление, когда запуск завершается ошибкой или кончаются кредиты. Оно уходит участнику, который последним обновлял рутину; кто именно, показано в строке **Уведомления будут отправлены** вверху истории выполнения. Уведомления об ошибках приходят не после каждого случая, чтобы длинная череда сбоев не завалила получателя.

После 5 неудач подряд рутина останавливается автоматически, и об этом приходит отдельное уведомление. Устраните причину и снова включите переключатель; счётчик обнуляется после первого успешного запуска.

В этот счёт попадают не все неуспешные запуски: пропущенные из-за того, что предыдущий ещё выполнялся или истекло ожидание в очереди, а также **Отменено** — не считаются ошибками и не вызывают уведомлений. Нехватка кредитов считается, поэтому без пополнения рутина рано или поздно остановится.

## Частые вопросы

<AccordionGroup>
  <Accordion title="Расходуют ли рутины кредиты?">
    Да. Каждый запуск — это чат с ИИ, он списывается с кредитов пространства по фактическому расходу и попадает в **Суммарное использование кредитов** на странице оплаты под типом **Рутина**. При нехватке кредитов запуск пропускается и приходит уведомление, а повторные пропуски приводят к остановке рутины.
  </Accordion>

  <Accordion title="Повлияет ли правка промпта на уже идущий запуск?">
    Нет. Изменение сохраняется черновиком и попадает в работающую версию только после нажатия **Обновить**. Уже начавшийся запуск остаётся на той конфигурации, с которой стартовал.
  </Accordion>

  <Accordion title="Запускаются ли сами рутины в базе, установленной из шаблона?">
    Да. После установки шаблона его рутины включаются так же, как и его рабочие процессы. Расписание без будущих запусков остаётся черновиком.
  </Accordion>

  <Accordion title="Будет ли контекст расти бесконечно при продолжении чата предыдущего запуска?">
    Когда контекст подходит к пределу, Teable уплотняет чат, поэтому запуски из-за этого не прерываются. Выберите **Новый чат для каждого запуска**, если каждый запуск должен начинаться с чистого контекста.
  </Accordion>
</AccordionGroup>
