Skip to content

Goals and Todos

Steven Enamakel edited this page Oct 22, 2026 · 4 revisions

Goals and Todos

tinyagents-harness-tools provides two persistent productivity tools for agent threads: a single goal and an ordered todo list. Both store their state through the harness Store interface, so a host chooses the persistence backend and remains responsible for product policy.

Goals

The goals module exposes GoalStore and GoalTool. A goal records one objective, its status, optional token and time budgets, and usage accounting. Hosts prepare each turn with GoalStore::prepare_turn, then attach the returned budget guard and any hooks they use for that run. Goal lifecycle and observer callbacks remain under host control.

The default goals feature is enabled by tinyagents-harness-tools. See the crate guide and the goals module docs.

Todos

The todos module exposes TodoTool and TodoSequenceMiddleware. The model can replace the ordered list, complete the active step, cancel an open step with a reason, or read the current list. The middleware can keep a run aligned with the first open step and prompt for unfinished work before a final answer.

Todo state is keyed by the harness thread id. The tool gets that id from ToolExecutionContext, so it is not model-controlled. See the todos module docs.

Both features are enabled by default and can be selected independently in a host's dependency declaration.

TinyAgents

Provider-neutral agent harness and tools for Rust.

Getting started

Concepts

Modules

Providers

Contributing


Clone this wiki locally