Skip to main content

Backlogs & Tasks

Every agent has a backlog — a prioritized queue of tasks. Create tasks, update their status, and let agents work through them autonomously.

Task lifecycle

queuedin_progresscomplete

Tasks can also be blocked if they hit a dependency or need human input.

GET/api/backlogs/{agent_id}

Get all tasks in an agent's backlog, optionally filtered by status.

Query Parameters

ParamTypeNote
statusstringFilter: queued, in_progress, complete, blocked

Response

{
  "agent_id": "marketing-lead",
  "tasks": [
    {
      "id": "MKT-001",
      "title": "Write 3 LinkedIn posts",
      "description": "Focus on ROI...",
      "priority": 3,
      "status": "queued",
      "created": "2026-03-28T10:00:00Z",
      "started": null,
      "completed": null,
      "result": null
    }
  ],
  "total": 1
}
POST/api/backlogs/{agent_id}

Add a new task to an agent's backlog. The task ID is auto-generated.

Request Body

FieldTypeRequiredNote
titlestringYesShort task title
descriptionstringNoDetailed instructions for the agent
prioritynumberNo1 (highest) to 10 (lowest), default 5

Response

{
  "id": "MKT-002",
  "title": "Audit competitor pricing pages",
  "description": "Compare top 5 competitors...",
  "priority": 5,
  "status": "queued",
  "created": "2026-03-28T11:00:00Z"
}
PATCH/api/backlogs/{agent_id}/{task_id}

Update a task's status, priority, title, description, or blocker. All fields optional.

Request Body

FieldTypeRequiredNote
statusstringNoqueued | in_progress | complete | blocked
prioritynumberNo1-10
titlestringNo
descriptionstringNo
blockerstringNoReason the task is blocked

Response

{
  "id": "MKT-001",
  "status": "complete",
  "completed": "2026-03-28T14:30:00Z",
  "result": "Generated 3 LinkedIn posts..."
}
DELETE/api/backlogs/{agent_id}/{task_id}

Permanently delete a task from the backlog.

Response

{ "deleted": "MKT-001" }

Cross-Agent Queries

GET/api/backlogs

List tasks across all agents. Useful for a global task view or dashboard widgets.

Query Parameters

ParamTypeNote
statusstringFilter by task status
prioritynumberFilter by exact priority
agent_idstringFilter by agent

Response

{
  "tasks": [
    {
      "agent_id": "marketing-lead",
      "id": "MKT-001",
      "title": "Write LinkedIn posts",
      "status": "complete",
      "priority": 3
    },
    {
      "agent_id": "support-bot",
      "id": "SUP-003",
      "title": "Draft FAQ responses",
      "status": "queued",
      "priority": 2
    }
  ],
  "total": 2
}
GET/api/backlogs/{agent_id}/summary

Get aggregate statistics for an agent's backlog.

Response

{
  "queued": 5,
  "in_progress": 1,
  "complete": 23,
  "blocked": 0,
  "total": 29
}

Task ID format

Task IDs are auto-generated using the pattern {PREFIX}-{NNN}, where the prefix is derived from the agent ID. For example, agent marketing-lead gets task IDs like MKT-001, MKT-002, etc.