Why Tasks?
Memories are for knowledge. Tasks are for work:- Backlog management: Track planned features, bugs, and research
- Worker coordination: Assign tasks to workers, track progress
- Context continuity: Remember what you’re working on across sessions
- Structured workflow: Prioritize, organize, and check off subtasks
Task Structure
Auto-incrementing ID unique to the agent
Short description (e.g., “Fix authentication bug”)
Detailed notes, context, or acceptance criteria
One of:
backlog, todo, in_progress, done, cancelledOne of:
low, medium, high, urgentChecklist items with
{title: string, completed: bool}Arbitrary JSON for custom fields
Optional link to the memory that created this task
Process ID that created the task (e.g.,
channel:discord:123, branch:abc-def)Creating Tasks
Branches and channels can create tasks via thetask_create tool:
- Simple Task
- With Subtasks
- With Metadata
Listing Tasks
Query tasks with filters:Updating Tasks
Workers and branches can update task status, priority, and subtasks:- Change Status
- Complete Subtasks
- Bump Priority
- Add Description
Worker Assignment Pattern
You can assign tasks to workers by storing the worker ID in metadata: Workers have access totask_update in their tool set. You can scope it to only allow updating tasks assigned to that worker.
Status Workflow
Tasks flow through these states:backlog
backlog
Initial state. Tasks waiting to be prioritized.
todo
todo
Ready to work on. Prioritized and clarified.
in_progress
in_progress
Actively being worked on. Typically only a few tasks should be in this state at once.
done
done
Completed. Stays in the database for reference.
cancelled
cancelled
Abandoned or deprioritized. No longer relevant.
Storage
Tasks live in thetasks table:
API Access
You can also manage tasks via the HTTP API:Integration with Memory
Tasks can link to memories:- Memory → Task: When a branch identifies work to do, it can save a memory and create a task, linking them via
source_memory_id. - Task → Memory: When a task is completed, the worker can save a
decisionmemory summarizing what was done, referencing the task number in metadata.
Best Practices
Use Subtasks
Break complex tasks into checkable steps. Helps workers report progress and the LLM understand what’s left.
Metadata for Context
Store component names, issue IDs, user reports, or other structured data in
metadata for rich filtering.Status Discipline
Keep
in_progress limited. If a task stalls, move it back to todo or backlog.Priority Hygiene
Only mark truly time-sensitive work as
urgent. Use high for important but not blocking.