Skip to content

Agenda

Sidebar → Agenda Profiles (under Tasks), then enable it per-agent in the agent edit page → Agenda.

Agenda is sbot's stateful reminder / scheduling system. Each agenda item (a todo, reminder, schedule, routine, or future automation) carries one or more triggers; when a trigger fires, sbot delivers a message to the session or channel the item is bound to.

Unlike Heartbeat (a fixed-interval prompt loop) the agenda is content-driven: items can be created by the agent during a conversation, and — with a sync model configured — kept in sync automatically after every turn.

Items & Triggers

An agenda item has a content, category, priority, optional due date, and a completion mode. Each trigger fires on a schedule:

Trigger kindexpr meaningExample
absoluteA single ISO datetime — fires once2026-07-01T09:00
intervalMilliseconds between fires86400000 (every 24h)
cron6-field cron (sec min hour day month weekday)0 0 9 * * 1-5 (9am weekdays)

When a trigger fires it delivers its message to the bound session/channel using its action mode, and the fire is recorded in the trigger_fire log table (pure audit, not used for scheduling). A one-shot or finite schedule that reaches normal exhaustion becomes Done. A one-shot absolute trigger retries briefly on delivery failure; if it misses the grace window or gives up retrying, it is disabled and the item becomes Expired only when no other trigger on that item remains enabled. Expired items are retained as history rather than automatically deleted.

Configuration

An Agenda Profile is the store + optional auto-sync. Sidebar → Agenda Profiles → New:

FieldDescription
NameDisplay name for this profile
EnabledPause the profile without deleting it
Sync ModelOptional. The model that auto-syncs agenda items from the conversation after each turn (leave empty to disable sync)
Sync PromptOptional. Prompt file controlling sync behavior (defaults to agenda/sync/default.txt)

Then, in an agent → Agenda section, toggle Agenda on and pick the profile. Enabling it registers the agenda tools; with a sync model, items are reconciled from the conversation automatically each turn.

AgendaSync normally uses one model call with the completed turn and the full structure of every pending item. When that input exceeds the Sync Model budget, it reuses the same model to extract up to 12 agenda-change intents, locally ranks the complete pending catalog, and screens compact cards in at most 6 token-bounded batches. Batch results carry cross-batch relevance scores; the final Writer receives at most 20 selected full records. If those records still exceed the budget, trigger messages become 60-character previews. An oversized turn is middle-truncated while preserving its beginning and end. The Selector's shouldSync result is advisory—the final Writer still verifies every overflow turn—and one failed card batch falls back to local ranking instead of discarding the entire sync. This bounds an overflow run to at most 8 model calls (analysis + 6 batches + final Writer). There is no separate Selector Model setting.

From the Agenda Profiles page → View you can browse stored items, filter by pending/done/cancelled/expired, manually Complete / Cancel, add/edit/disable/reopen/delete triggers, fire a trigger manually for testing, and inspect each trigger's fire history. Reopening an expired item restores only the item to Pending; retime or re-enable an appropriate trigger separately.

Agent Tools

Once enabled, the agent gets these tools:

ToolPurpose
agenda_createCreate an item with one or more triggers
agenda_listList current items (each trigger's message truncated to a preview)
agenda_getRead one item in full by id: complete message, disabled triggers, timestamps, optional fire log
agenda_editChange item fields and/or triggers (add / patch / remove) in one atomic call
agenda_closeTerminate an item — outcome: done (finished) or dropped (no longer wanted)
agenda_wikiIn-tool reference for edge cases (multi-trigger, dueAt vs trigger, action choice)

Agenda vs Heartbeat

NeedUse
Stateful todos / reminders / schedules, auto-synced from conversationAgenda
One-shot, interval, or cron triggers with delivery audit historyAgenda
Run a fixed prompt every N seconds/minutes against an agentHeartbeat

Released under the MIT License.