Tier 1: Task Management

JSON-based task state management.


Task Structure

{
  "id": "1",
  "description": "Write a haiku about loops",
  "status": "pending",
  "attempts": 0,
  "max_attempts": 3,
  "result": null,
  "error": null,
  "created_at": "2026-01-19T00:00:00",
  "completed_at": null
}

Task States

State Meaning
pending Ready to execute
in_progress Currently being worked on
completed Successfully finished
failed Gave up after max attempts

State Transitions

stateDiagram-v2
    classDef primary fill:#2563eb,color:#fff
    classDef secondary fill:#7c3aed,color:#fff
    classDef tertiary fill:#0d9488,color:#fff
    classDef accent fill:#f59e0b,color:#000
    classDef alert fill:#ef4444,color:#fff

    [*] --> pending
    pending --> in_progress
    in_progress --> completed
    in_progress --> retry
    retry --> pending
    retry --> failed

    class pending primary
    class in_progress accent
    class completed tertiary
    class retry secondary
    class failed alert

TaskManager API

from task_manager import TaskManager

tm = TaskManager("tasks.json")

# Add task
task = tm.add_task("Write a haiku")

# Get next pending
task = tm.get_next_pending()

# Update status
tm.mark_in_progress(task.id)
tm.mark_completed(task.id, "The result...")
tm.mark_failed(task.id, "Reason for failure")

# Query
all_tasks = tm.get_all_tasks()
pending = tm.get_tasks_by_status("pending")

File Format

{
  "tasks": [...],
  "metadata": {
    "created": "2026-01-19T00:00:00",
    "last_updated": "2026-01-19T00:00:00"
  }
}

Next Steps


← Back to Tutorials

Back to top

8me Showcase - AI Agent Orchestration Learning Platform

This site uses Just the Docs, a documentation theme for Jekyll.