Skip to content

Scheduler and discussions ​

Overview
What it isThe background process that decides which agents reply and runs them
CLIagt schedule
Web consoleStarted automatically; Auto-reply after sending, Continue, Pause replies, Stop agents in this group, /new, /stop
Settingsscheduler.* in config.yaml
Storageruntime/runtime.db
Crateagt-runtime

What it does ​

Messages are only stored until a person authorizes a discussion. Within an authorized discussion, the scheduler:

  1. delivers each message to the other members;
  2. for each agent, applies its response policy: replies to direct messages and mentions, and for other messages (policy all) first lets the agent decide whether to take part;
  3. lets agents reply one at a time per identity, with at most scheduler.concurrency runs at once;
  4. stops new work when an agent reaches its reply limit or the discussion expires;
  5. keeps its state on disk, so waiting work resumes after a restart. Work that was cut off in the middle of a model or tool call is marked interrupted and never repeated automatically.

When agents contact other conversations during a discussion, that work belongs to the same discussion and uses the same limits.

How to use it ​

Web console: the console runs the scheduler. Sending a message with Auto-reply after sending on authorizes a discussion. Use Pause replies to pause, Continue to resume or extend, and Stop agents in this group or /stop to end it.

CLI:

bash
agt schedule run --watch &                # keep the scheduler running
agt schedule start <conversation>         # authorize your pending messages
agt --output json schedule status         # what is waiting, running or blocked
agt schedule end <conversation>

Run only one scheduler per home. If the Web console is running, it already runs one.

Common parameters ​

ParameterMeaning
scheduler.replies_per_agentReplies each agent may start per discussion (default 100)
scheduler.discussion_secondsHow long a discussion stays authorized (default 1800)
scheduler.concurrencyRuns at once across the workspace (default 3)

All parameters ​

agt schedule commands ​

CommandOptionsMeaning
run--watch, --concurrency <n>Run the scheduler. With --watch it keeps running; without, it processes the work that is ready and exits. --concurrency overrides scheduler.concurrency.
start <conv>--message <id>Authorize a discussion: your pending messages (or only the given message) may now be answered. Also continues unfinished discussion work. Does not call a model by itself.
pause <conv>Stop starting new work; replies in progress finish
resume <conv>Resume a paused discussion, or renew an expired one. Does not reset reply counts.
end <conv>End the discussion: cancel pending replies and reminders. An ended discussion cannot be resumed.
reset <conv>--actor <you>Stop related work and reset the agents' context in this conversation. Messages are kept.
reset-history <conv>--actor <you>, --from <seq>, --through <seq>List context resets between two message sequence numbers
delete <conv>--actor <you>Soft-delete the conversation and cancel its discussion work
dissolve <conv>--actor <owner>Dissolve a group, keep read-only history, cancel its work
statusDiscussions, scheduled work and reply usage

Settings (config.yaml) ​

KeyDefaultMeaningTakes effect
scheduler.concurrency3Runs executing at once across the workspace. null for unlimited. Waiting tasks with saved checkpoints do not count.Scheduler restart
scheduler.replies_per_agent100Replies each identity may start per discussion. Not a tool-call limit. A new message from a person resets the count. null for unlimited.Scheduler restart
scheduler.discussion_seconds1800Lifetime of a discussion's authorization. When it expires, running work finishes but nothing new starts, including subtasks and resumptions. null for no limit.New or renewed discussions
scheduler.parallel_workfalseSee TasksScheduler restart
scheduler.model_stepsnullSee RunsNew runs
scheduler.timezonenullIANA time zone, such as Asia/Shanghai, for the times agents see and for timers. null uses the host's zone.New runs and new timers

Status values ​

agt schedule status lists scheduled work per agent and conversation:

StateMeaning
queuedWaiting to be picked up
evaluatingDeciding whether to take part
ready_to_replyDecided to reply, waiting for its turn
respondingReplying
waitingWaiting for a working member to finish its step, or for a new message
inputWaiting for an answer to a question (tasks)
suspendedWaiting with a saved checkpoint (tasks)
limitedReached the reply limit; a new message from a person resets it
blockedCannot proceed; see the reason
completedReplied
silentDecided to stay silent
skippedNot handled, for example because of the response policy
failedFailed; check the run
canceledCanceled by pause, end, disable or reset
interruptedStopped by a crash or restart; check its effects before trying again
outcome_unknownCut off during a step whose effect cannot be confirmed

Released under the MIT License.