Skip to main content
Queues and scheduled tasks are the main building blocks for background and recurring work in MeshAgent.

Run a queue-backed agent

Start an agent that listens on a room queue:
This gives you one agent that consumes background work from the support-jobs queue.

Send work into the queue

Once the agent is running, enqueue a job:
This is the main queue pattern:
  • the queue holds the work item
  • the agent consumes it
  • the agent runs without needing a live chat message
For MeshAgent queue consumers such as meshagent process queue channels, the payload can also be structured. For example, you can provide typed prompt content and a thread template:
Use prompt when you want room prompt files such as room:///prompts/support-summary.md resolved into text before the turn starts. Use content when you want typed file items preserved as file inputs for the agent.

Schedule recurring work

Scheduled tasks run on a cron schedule. Schedules must be at least 15 minutes apart. Add a task that sends one job into the same queue every day:
This creates a project-level scheduled task that targets the support-jobs queue in myroom. Scheduled-task payloads use the same queue message format, so you can also send structured prompt or content payloads and thread templates when the target consumer is a MeshAgent queue channel. Scheduled tasks can also start a container directly by using the container target in the same ScheduledTaskSpec file:
List scheduled tasks:
Update a scheduled task:
View recent task runs:
Delete a scheduled task:

How queues and scheduled tasks fit together

  • Queues are the delivery mechanism for asynchronous work
  • Scheduled tasks are the trigger that enqueues work on a schedule
  • Agents or services consume the queued work
That makes queues useful for one-off background jobs and scheduled tasks useful for recurring work such as daily digests, periodic reports, monitoring jobs, or imports.

Room scope and project scope

Queue operations are room-level operations. Scheduled tasks are managed at the project level, but they usually target a queue for a specific room. That is why the scheduled-task commands take both a queue and an optional --room.