---
id: "action-separate-workflow-state"
type: "action-item"
source_timestamps: ["00:10:52"]
tags: ["state-management"]
related: ["concept-workflow-state-separation", "concept-complete-session-persistence", "framework-session-recovery"]
action: "Implement a distinct state object to track workflow progress separately from the chat transcript."
outcome: "Allows agents to resume tasks accurately after a crash without repeating destructive or expensive actions."
speakers: ["Nate B. Jones"]
sources: ["s46-anthropic-25b-leak"]
sourceVaultSlug: "s46-anthropic-25b-leak"
originDay: 46
---
# Separate Workflow State from Conversation

## Action
Do **not** rely solely on the LLM transcript to track task progress. Implement a distinct state machine to track:

- workflow steps
- side effects already executed
- retry safety
- post-restart behavior

## Outcome
Allows agents to resume tasks accurately after a crash **without repeating destructive or expensive actions**.

## Implementation Sketch
1. Model long-running work as explicit states (e.g., `planned`, `awaiting approval`, `executing`, `waiting on external party`).
2. Persist these checkpoints alongside the conversation in [[concept-complete-session-persistence|session state]].
3. Tag each side-effecting tool call with an idempotency key referenced in the workflow state.
4. On resume, branch on workflow state, not on chat transcript.

## Underlying Concepts
- [[concept-workflow-state-separation]] (the architectural argument)
- [[concept-complete-session-persistence]] (the storage substrate)
- [[framework-session-recovery]] (the recovery sequence)
