Skip to main content

Tasks

Tasks are durable personal task records stored in Anyy state. They are useful for follow-up work, reminders to the assistant, and lightweight task lists that need to survive the current conversation.

Tasks are not memory. Use memory for stable facts and preferences, and tasks for work items that can be completed, cancelled, blocked, or filtered by due date.

Task Tools

The model-visible task tools live in the tasks toolset:

ToolPurposePolicy
task_createCreate a durable task.Audited config-low change.
task_listList durable tasks.Direct read.
task_updateUpdate task fields.Audited config-low change.
task_completeMark a task complete.Audited config-low change.

Task tools do not require approval by default, but create, update, and complete are audited as task changes.

Task Fields

A task record can include:

FieldMeaning
titleRequired when creating a task.
descriptionOptional longer task body.
statuspending, in_progress, blocked, completed, or cancelled.
prioritylow, normal, high, or urgent.
due_atOptional RFC3339 due time.
labelsOptional labels for filtering.
metadataStructured metadata for runtime use.
session_id / turn_idThe session and turn that created or changed the task.

Completed tasks keep completed_at, created_at, and updated_at timestamps.

Create And Update

task_create requires only a title:

{
"title": "Review the provider fallback config",
"priority": "high",
"labels": ["docs", "config"]
}

task_update requires id and at least one field to change:

{
"id": "task_123",
"status": "blocked",
"description": "Waiting for provider credentials."
}

task_complete requires id and can include a short note:

{
"id": "task_123",
"note": "Provider fallback behavior was documented."
}

Listing And Filters

task_list can filter by:

FilterMeaning
statusReturn one task status.
include_completedInclude completed tasks; default is false.
priorityReturn one priority.
due_before / due_afterBound due dates.
querySearch task text.
labelsMatch labels.
limitMaximum result count, capped at 50.

Scope

Task tools resolve the current runtime scope from the active session. A channel, TUI, or gateway session sees tasks through the same role/workspace scope rules used by the resident runtime.

If the session scope is unavailable, task operations fail instead of falling back to unscoped writes.

Practical Guidance

  • Use tasks for follow-up work, not stable user facts.
  • Use due_at only when there is a real date or time; vague urgency belongs in priority or the task description.
  • Use labels for reviewable buckets such as docs, ops, or waiting.
  • Use cron or reminders when the task must actively run or notify at a time.

For scheduled work, see Cron. For durable preferences and assistant notes, see Persistent Memory.