Skip to main content
ELI5: you declare policy about state (context budget, stage outputs); Cadence threads the plumbing (provider session ids, response chaining, handoffs) so you never manage raw provider state.

Who does what

The session ledger (read-only truth)

Every run emits typed events; the ledger chains them (event_idparent_event_id), records usage/cost per event, and links runs across handoffs. It is a projection, never a store: nothing reads it to make dispatch decisions, so you can rebuild it from the event stream at any time. Use it for audit (“what did this run cost, which tools fired”), not for state.

Carrying context into a run

Passing typed state between stages

The implement stage receives findings as validated input — no prompt glue, no provider state juggling.

When to use what

See also