Task Checklist

Agents keep a visible to-do list as they work, checkpointed with the run and rendered live in the run log.

An agent working through something long keeps a task list. You see it fill in and tick off as the run goes, in the run log, live.

The list is written by the agent itself through a native update_tasks tool. There is nothing to enable — every agent carries it.

StatusMeaning
pendingNot started
in_progressBeing worked on now
completedDone
cancelledAbandoned, deliberately

Why it is part of the engine

It replaces the @modelcontextprotocol/server-sequential-thinking MCP server, which took a thought, echoed it back and kept a list in its own process memory. Nothing reached the journal, nothing rendered in the UI, and nothing survived a resume.

The task list is the opposite by construction:

  • The engine owns the state. It lives on the run and is checkpointed with it, so a run that pauses at a human gate or is interrupted comes back with its list intact.
  • Every change is journaled as a structural event, so it survives the event cap that trims chattier events on a long run — a task list is the run's shape.
  • The run log renders it as a live checklist rather than as tool-call noise.

It is not an MCP server. It is imported directly by the engine, so there is no subprocess and nothing to install.

Whole-list writes

The model submits the complete list on every call, rather than patching individual entries. That looks wasteful and buys three things:

  • One flat schema with no type unions — the exact shape that broke Gemini's single-valued schema type.
  • No task ids for the model to fumble.
  • The engine's identical-arguments loop guard becomes effective: resubmitting the same list verbatim is a no-op and gets blocked. The old server's ever-changing thought counter defeated that guard by construction.

sequentialthinking still works

Agents and imported bundles that name the old tool keep working — the dispatcher routes the alias to the native handler. Update them when convenient; the alias is one release of grace, not a permanent surface.

On this page