Repository navigation
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.
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.
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.
Provider-neutral agent harness and tools for Rust.
Getting started
Concepts
Modules
Providers
Contributing