Tacnode™
Glossary
AI & Agents

What Is a State Footprint?

A state footprint is the full set of state an agent task reads and writes while it runs: its own context and local files, the orchestrator's plan and task status, and external systems such as code repositories, databases and APIs. Two tasks conflict when one writes an item the other reads or writes. Recording footprints lets a multi-agent orchestrator order conflicting tasks, undo only what a failed task touched, and tell which earlier results are still valid.

Updated

What is a state footprint?

Oto Mraz, Rares Şerban, Kyriakos Psarakis, Burcu Kulahcioglu Ozkan and Asterios Katsifodimos of Delft University of Technology and Ververica define the term in Tracking State Footprints: How Agents Can Transact (arXiv, October 2026), which outlines a vision for agent orchestrators that give database-style guarantees. The term borrows from separation logic, "where a program's footprint is the set of locations it accesses." In the authors' words: "Picture an agent walking through local and external state, inspecting or modifying it along the way; the footprint is the trail it leaves."

The problem they name is that "most of today's orchestrators track control flow, i.e., which task runs after which, but not data flow, i.e., which state each task reads and writes." Agent state sits in three scopes that differ in who can see, undo and reproduce it. From the paper's Table 2:

ScopeExamplesObservable byReversibleReproducible
Agent-localcontext, tool calls, unstaged filesthe agent onlyvia sandbox or snapshotartifacts, not context
Orchestratortask graph, status, idempotency IDsthe orchestratoryes, it owns themyes, logged
Externalrepositories, REST APIs, MCP, databaseseveryoneif staged; otherwise compensateonly if idempotent

How a state footprint works

Each task gets a read set and a write set drawn from any scope. "Two tasks conflict if one writes an item that the other reads or writes, and a schedule is conflict-ordered if every pair of conflicting tasks is ordered." Footprints are not known in advance, because new dependencies appear mid-run, so the paper proposes that "A sound approximation is to record everything an agent observes through its tool calls and task inputs."

Its worked example is a Django refactor. Task T0 changes a core Signal constructor and deletes a stored attribute; tasks T1 to T3 then update callers in parallel. Every task succeeds, and the merged code fails its tests:

  1. 1.Write-write. T1 and T2 both edit a shared test fixture. The merge reconciles it silently, so one task's setup never runs.
  2. 2.Read-after-write. T2 runs after T0, as planned, but reads the deleted attribute in a debug path. Nothing tracked that dependency, so it surfaced only when the final test suite failed.

Ordering tasks wasn't enough: "The cause was not when T2 ran, but whether T0's write was checked against a dependency." In the authors' runs, a task-ordered plan cut duration by about 40% against sequential execution but broke correctness, while a repaired, conflict-ordered plan succeeded and still cut duration by a factor of 1.23 against sequential.

Why state footprints matter in real-time systems

Coding is the forgiving case. Git gives coding agents "a natural transactional substrate: staging, atomic commits, and cheap rollback," the authors note, but "Most domains lack such a substrate. Supply-chain operations, scheduling, and incident response operate without version control; effects are immediately visible and often irreversible."

That puts the burden on external systems. The paper asks them to accept a task's transaction identifier, make writes tentative (try-confirm-cancel) or compensable, let writes "be conditioned on the state that their task reads," declare which operations are idempotent or reversible, and offer cheap branching for parallel agents.

A conditioned write is the piece a transactional store already provides. Where shared agent state, such as task claims, budgets or coordination records, sits in a store with serializable transactions, a read and the write that depends on it commit together or not at all. Tacnode holds agent state of this kind with full transactions; recording footprints across files, context and third-party APIs remains the orchestrator's job. The options for the shared-state part are compared in concurrency control for multi-agent systems.

FAQ

Related terms

Further reading