write_todos to create and update a task list, and the TaskPlanner injects the current status into the system prompt before each LLM call.
Setup
write_todos
The agent callswrite_todos with a JSON array of task objects. Each call replaces the entire list.
Task fields
| Field | Type | Required | Description |
|---|---|---|---|
content | str | Yes | What needs to be done (imperative form) |
status | str | Yes | "pending", "in_progress", "completed", or "blocked" |
description | str | No | Longer explanation of the task |
required | bool | No | Whether the task must be completed (default false) |
Auto-generated fields
| Field | Description |
|---|---|
id | Auto-assigned (t1, t2, …) |
updated_by | Agent name (if agent_name passed to make_todo_tool) |
updated_at | Timestamp of last update |
TaskPlanner
TaskPlanner reads from the shared TodoList and injects the current status into the system prompt before each LLM call: