# Подсетници

Подсетник поново покреће једну сесију касније, једном или понављајући се, док га не уклоните.

Canonical page: https://beeuni.ai/docs/sr/connect/reminders

Подсетник шаље упит у једну постојећу [сесију](/docs/sr/work/sessions) у време које подесите. Активира се једном или се понавља док га неко не уклони. Агент користи подсетник да би се сам вратио свом раду: „за 24 сата провери да ли је добављач одговорио“, „сваког сата провери да ли је деплој успешан“.

Подсетник је [окидач](/docs/sr/connect/triggers) везан за једну сесију. Разлике:

| | Окидач | Подсетник |
| --- | --- | --- |
| Чува се у | `beeuni.yaml`, урезује се у подразумевану грану | Бази података. Нема измене манифеста нити урезивања. |
| При активирању | Обично покреће нову сесију | Шаље упит својој сесији. Никада не покреће сесију. |
| Трајање | Док га неко не уклони из манифеста | Док га неко не уклони. Паузира се ако се његова сесија избрише или не успе. |
| Ко може да га направи | Менаџери пројекта (`project.trigger.create`) | Свако ко може да шаље упите сесији. Агент може да га направи само у својој сесији. |
| Где се приказује | `beeuni triggers ls`, страница Окидачи | `beeuni reminders ls`, за сваку сесију |

Окидач користите за посао на пројекту који сви треба да виде, као што је дневни преглед. Подсетник користите за накнадну проверу која припада једном задатку.

<a id="turn-reminders-on"></a>

## Укључите подсетнике

Подсетници су [ознака функције](/docs/sr/feature-flags) за сваки пројекат, `reminders`, подразумевано искључена. Укључите је у **Settings → Feature flags** или:

```sh
beeuni projects features enable reminders
```

Док је ознака искључена, свака рута за подсетнике одговара са `403` и `code: "feature_disabled"`, страница Подсетници показује како да је укључите, а постојећи подсетници се не активирају. Ако поново укључите ознаку, пропуштени термин се активира једном, а затим се распоред наставља.

<a id="set-a-reminder"></a>

## Подесите подсетник

Унутар сесије, CLI циља тренутну сесију. Изван ње проследите `--session <id>`.

```sh
# Fire once, 24 hours from now.
beeuni remind "Check whether the vendor replied to the contract email." --in 24h

# First fire in 24 hours, then every hour until removed.
beeuni remind "Did the vendor reply? If yes, summarize it and remove this reminder." --in 24h --every 1h

# Fire at an exact instant.
beeuni remind "Post the launch checklist to #launch." --at 2026-10-01T09:00:00Z

# Repeat on a cron expression in a time zone.
beeuni reminders add "Post the standup summary." --cron "0 0 9 * * 1-5" --timezone Europe/Berlin
```

Команда приказује ID подсетника, на пример `reminder.3f9a1c2e7b04`, и време његовог следећег активирања.

<a id="schedule-rules"></a>

## Правила распореда

- `--in <duration>` или `--at <ISO-8601>` поставља прво активирање. Ако се наведе само једно од њих, подсетник се активира једном.
- `--every <duration>` понавља активирање. Најкраћи период је `5m`. Сваки период почиње када се преузме претходно активирање.
- `--cron "<expr>"` понавља активирање према cron изразу са 6 поља (прво секунде). `--timezone` поставља временску зону; подразумевана је `UTC`. Cron подсетник може да се активира највише једном у 5 минута. Не прихвата `--in` ни `--at`.
- Трајања су `30m`, `24h`, `2d` или цео број секунди.
- `--in`, `--at` и `--every` прихватају највише 366 дана.
- Једна сесија може да има највише 20 активних подсетника, а пројекат највише 200. Прекорачење било ког ограничења враћа `409`.

<a id="what-a-fire-does"></a>

## Шта се дешава при активирању

При сваком активирању, текст подсетника се ставља у ред сесије као упит који почиње заглављем:

```text
[REMINDER reminder.3f9a1c2e7b04 — recurring scheduled check-in on this session, not a new user message. When it is no longer needed, run `beeuni reminders rm reminder.3f9a1c2e7b04`.]

Did the vendor reply? If yes, summarize it and remove this reminder.
```

- Паузирана сесија се буди. Агент има приступ целокупном разговору сесије и њеном радном простору.
- Активирање никада не покреће нову сесију. Ако се сесија избрише или не успе, подсетник се паузира и разлог се бележи у `last_error`.
- При активирању се задржавају личне везе сесије, као што је Gmail члана. Ако подесите подсетник у сесији у име неког другог, те везе се бришу, исто као када тој сесији пошаљете упит.
- Паузирање окидача за цео пројекат (`beeuni triggers pause`) зауставља и подсетнике.

Свако активирање покреће потез модела. Уклоните периодични подсетник чим се испуни његов услов.

<a id="manage-reminders"></a>

## Управљајте подсетницима

| Команда | Радња |
| --- | --- |
| `beeuni reminders ls [--json]` | Приказује подсетнике сесије: ID, стање, распоред, следеће активирање и текст. |
| `beeuni reminders pause <id>` | Зауставља активирање, али задржава подсетник. |
| `beeuni reminders resume <id>` | Поново активира подсетник и подешава га од овог тренутка. Једнократни подсетник који се већ активирао остаје `done`. |
| `beeuni reminders rm <id>` | Брише подсетник. Алијаси: `stop`, `delete`. |

Подсетник је `active` (заказан), `paused` (искључен) или `done` (једнократни подсетник који се активирао).

<a id="api-and-sdk"></a>

## API и SDK

Руте су везане за сесију:

| Рута | Радња |
| --- | --- |
| `GET /v1/projects/:projectId/sessions/:sessionId/reminders` | Приказује подсетнике. |
| `POST /v1/projects/:projectId/sessions/:sessionId/reminders` | Креира подсетник. Тело: `prompt`, опционално `name` и `every`, `cron` + `timezone`, `at` или `in`. Враћа `201`. |
| `PATCH /v1/projects/:projectId/sessions/:sessionId/reminders/:reminderId` | Тело `{ "enabled": false }` паузира, а `{ "enabled": true }` наставља. |
| `DELETE /v1/projects/:projectId/sessions/:sessionId/reminders/:reminderId` | Брише подсетник. |

Неважећи распоред враћа `400` са разлогом. Обрисана сесија враћа `409`. Акредитив агента који наводи другу сесију враћа `403`.

```ts
const reminders = beeuni.session(projectId, sessionId).reminders;
const reminder = await reminders.create({ prompt: 'Did the vendor reply?', in: '24h', every: '1h' });
await reminders.update(reminder.id, { enabled: false });
await reminders.remove(reminder.id);
```
