Skip to content

How Tasks Work

Tasks represent units of work in Frona AI. They can be created directly, delegated from one agent to another, or scheduled to run on a recurring basis.

Created when you ask an agent to do something. The agent processes it immediately in the current conversation.

Created when one agent hands off work to another using the delegate tool. The target agent processes the task in a separate chat session and delivers the result back.

{
"kind": "Delegation",
"source_agent_id": "system-assistant",
"source_chat_id": "chat-123",
"deliver_directly": true
}

Created using the schedule tool. These tasks run on a recurring schedule defined by a cron expression.

{
"kind": "Cron",
"cron_expression": "0 9 * * 1-5",
"next_run_at": "2026-02-28T09:00:00Z"
}

See Scheduling for details.

Every task goes through these states:

StatusDescription
PendingCreated but not yet started
InProgressAn agent is actively working on it
CompletedFinished successfully
FailedEncountered an error
CancelledManually or automatically cancelled
FieldDescription
titleShort summary of the task
descriptionDetailed instructions
agent_idWhich agent handles the task
space_idOptional space for context
chat_idAssociated chat session
run_atWhen to run (for scheduled tasks)
result_summarySummary of the result (after completion)
error_messageError details (if failed)
EndpointDescription
GET /api/tasksList tasks
POST /api/tasksCreate a task
GET /api/tasks/{id}Get task details
PUT /api/tasks/{id}Update a task
DELETE /api/tasks/{id}Delete a task

The server has a global limit on concurrent tasks (FRONA_SERVER_MAX_CONCURRENT_TASKS, default: 10). Individual agents can also have their own concurrency limits via max_concurrent_tasks.