State Management
State Management
Section titled “State Management”Perstack automatically saves execution state, enabling continuation and replay.
Execution hierarchy
Section titled “Execution hierarchy”Perstack organizes execution into three levels:
| Level | Description | Created when |
|---|---|---|
| Job | Top-level execution unit | perstack run starts |
| Run | Single Expert execution | Expert starts or delegation occurs |
| Checkpoint | Snapshot at step end | Each step completes |
For the full execution model, including step counting and Coordinator vs. Delegated Expert differences, see Runtime.
A Job represents one complete task. It tracks:
- All Runs (Coordinator and delegated)
- Total steps across all Runs
- Accumulated token usage
Jobs are stored in perstack/jobs/{jobId}/.
Continue a job:
npx perstack run my-expert "Initial query"# Job created with first Run
npx perstack run my-expert "Follow-up query" --continue# New Run added to the same JobSpecify a job ID:
npx perstack run my-expert "query" --job-id my-custom-job-idA Run is a single Expert execution within a Job. Each Run has:
- Its own
stepNumber(starts from 1) - Its own message history
- Its own checkpoints
When an Expert delegates to another Expert, a new Run is created for the delegate.
Checkpoints
Section titled “Checkpoints”Every step creates a checkpoint — a complete snapshot of Run state:
- Message history
- Token usage
- Step number
- Expert info
Checkpoints enable pause, resume, and replay.
Continuing execution
Section titled “Continuing execution”Use --continue to add a new Run to the latest Job:
npx perstack run my-expert "Initial query"npx perstack run my-expert "Follow-up query" --continueThe Coordinator Expert receives the follow-up as a new user message in a fresh Run, but within the same Job context.
Continue a specific job:
npx perstack run my-expert "Follow-up" --continue-job <jobId>Resuming from a checkpoint
Section titled “Resuming from a checkpoint”Resume from a specific checkpoint to branch execution. Use --resume-from with --continue-job:
npx perstack run my-expert "try again" --continue-job <jobId> --resume-from <checkpointId>Useful for:
- Re-running from a past step
- Trying different approaches
- Debugging
Important:
--resume-fromrequires--continue-job(Job ID must be specified)- You can only resume from the Coordinator Expert’s checkpoints
Interactive tool calls
Section titled “Interactive tool calls”When the Coordinator Expert calls an interactive tool, execution pauses for user input. Respond with --continue and -i:
npx perstack run my-expert "Initial query"# Execution pauses at interactive tool call
npx perstack run my-expert "User response" --continue -iThe -i flag (or --interactive-tool-call-result) treats the query as the tool call result.
Note: Interactive tools are only available to the Coordinator Expert. See Why no interactive tools for delegates?
Max steps
Section titled “Max steps”The --max-steps option limits total steps across all Runs in a Job:
npx perstack run my-expert "query" --max-steps 50Job (maxSteps = 50) ├── Run 1: 10 steps ├── Run 2: 5 steps └── Run 3: 8 steps Total: 23 steps (can continue until 50)When total steps reach the limit, the Job stops gracefully.
Events
Section titled “Events”Every state change is recorded as an event in perstack/jobs/{jobId}/runs/{runId}/.
Events enable debugging, monitoring, and analysis. See Runtime for event types and the notification system.
What’s next
Section titled “What’s next”- Error Handling — handling failures gracefully
- Runtime — how state management works