# AGENT RECOVERY PLAYBOOK
Source-attributed items below are documented semantics or author recommendations, not proven recovery effects. R2 and R4 are UNKNOWN; cost and latency are UNKNOWN. Items labeled DERIVED HYPOTHETICAL are not source-authored and not empirical evidence.
## 1. first30seconds
DERIVED HYPOTHETICAL, not source-authored or empirical: identify what already happened before acting again. Determine whether actions with side effects executed.
Source-attributed: a tool call that ran while a reply streamed cannot be taken back (https://github.com/anthropics/anthropic-sdk-python/blob/50b78d17a8a73bef97c3884102310344ac00f056/tools.md). The authors advise deferring calls not safe to run twice.
## 2. retry tree
No supported rule exists for retry ordering or count; UNKNOWN. Documented semantics only: different operation types (model calls, database lookups, email) have different retry strategies, and separate nodes allow independent configuration (https://github.com/langchain-ai/docs/blob/cd302e5548df094a85b34dfb6eb23823c66614f4/src/oss/langgraph/thinking-in-langgraph.mdx). That passage does not address correction scope. DERIVED HYPOTHETICAL: a retry of a non-idempotent step could duplicate its effect.
## 3. state verification
R2: UNKNOWN. No source measures whether verification beats trusting apparent success. Documented divergences:
- In the SWE-bench evaluation harness, the same run identifier reuses cached results without re-evaluating, even with different diffs (https://github.com/SWE-bench/SWE-bench/blob/02e7a74ffd0b707aab73d203fe87bdc7c76afc8e/docs/guides/evaluation.md). For that harness, the authors recommend a different run identifier to evaluate a changed prediction.
- Harbor skips trials when a config file exists; the excerpt shows no correctness check (https://github.com/AISBench/benchmark/blob/a5b5eaf675b6324e45e455d307e5baa5f81cb487/docs/source_en/extended_benchmark/agent/harbor_bench.md).
- LangGraph checkpoints are written in the background by default; sync mode blocks until written (https://github.com/langchain-ai/docs/blob/cd302e5548df094a85b34dfb6eb23823c66614f4/src/oss/langgraph/thinking-in-langgraph.mdx).
- LangGraph resume values are not schema-validated when no schema is given or a dictionary schema is used (https://github.com/langchain-ai/docs/blob/cd302e5548df094a85b34dfb6eb23823c66614f4/src/oss/langgraph/interrupts.mdx).
DERIVED HYPOTHETICAL: confirm re-execution occurred; inspect skipped artifacts beyond file presence; confirm checkpoint persistence or use sync mode before relying on it.
## 4. environment diagnosis
No approved finding supplies a diagnostic procedure; UNKNOWN. Documented only: on deadline, one evaluation wrapper kills its owned process group, not the inference server, and keeps files already emitted. Buffered results not yet written cannot be recovered, and children that escape the group fall outside the contract (https://github.com/tenstorrent/tt-inference-server/blob/75000a69669cb116d9b4dd000594767a697ff2ab/docs/eval_execution_budgets.md). This is scoped containment, not correction.
## 5. reversible recovery
R4: UNKNOWN. No source compares minimal reversible correction with broad restart; rollback remains untested. Documented semantics:
- A checkpoint identifier can start a run from partway through a thread; the passage gives no reversibility guarantee and no outcome data (https://github.com/langchain-ai/langgraph/blob/6aa0afba682b0308fbcace31f66fb532978d4dca/libs/checkpoint/README.md).
- Interrupts re-run their node, so authors recommend idempotent side effects before an interrupt. A record update may overwrite or duplicate (https://github.com/langchain-ai/docs/blob/cd302e5548df094a85b34dfb6eb23823c66614f4/src/oss/langgraph/interrupts.mdx).
DERIVED HYPOTHETICAL: before resuming, check whether the re-run node has non-idempotent writes.
## 6. when stop
No supported rule and no universal attempt count; UNKNOWN. The only stop mechanism among approved findings is a deadline that terminates the owned process group (see section 4). Whether it improves outcomes is unmeasured.
## 7. when ask/search
No supported rule; UNKNOWN. No approved finding addresses asking or searching.
## 8. mixed evidence
No approved finding is classified MIXED, and no counterevidence was supplied. R1 and R3 have no approved findings: UNKNOWN, no accepted rule. Absence of harm in the sources does not show safety, because the cost of verification and recovery is unmeasured.
Applicability: the run-identifier recommendation applies to the SWE-bench evaluation harness when a changed prediction is re-evaluated, per its authors (https://github.com/SWE-bench/SWE-bench/blob/02e7a74ffd0b707aab73d203fe87bdc7c76afc8e/docs/guides/evaluation.md). It is a documented operating requirement of that harness, not a demonstrated recovery effect, and does not extend to other systems.
## 9. failure patterns
- Stale cached result reported as a new evaluation.
- Skipped trial presumed complete.
- Background checkpoint write not yet complete.
- Unvalidated resume value.
- Re-run of a node containing non-idempotent side effects.
- Tool call already executed during streaming.
- Hung evaluation subprocess with scoped termination.
These are failure classes documented as semantics, with no measured frequency.
## 10. sources
- https://github.com/SWE-bench/SWE-bench/blob/02e7a74ffd0b707aab73d203fe87bdc7c76afc8e/docs/guides/evaluation.md
- https://github.com/AISBench/benchmark/blob/a5b5eaf675b6324e45e455d307e5baa5f81cb487/docs/source_en/extended_benchmark/agent/harbor_bench.md
- https://github.com/langchain-ai/docs/blob/cd302e5548df094a85b34dfb6eb23823c66614f4/src/oss/langgraph/thinking-in-langgraph.mdx
- https://github.com/langchain-ai/docs/blob/cd302e5548df094a85b34dfb6eb23823c66614f4/src/oss/langgraph/interrupts.mdx
- https://github.com/langchain-ai/langgraph/blob/6aa0afba682b0308fbcace31f66fb532978d4dca/libs/checkpoint/README.md
- https://github.com/anthropics/anthropic-sdk-python/blob/50b78d17a8a73bef97c3884102310344ac00f056/tools.md
- https://github.com/tenstorrent/tt-inference-server/blob/75000a69669cb116d9b4dd000594767a697ff2ab/docs/eval_execution_budgets.md
Limits: documentation only; LangGraph sources are correlated; pilot excluded as invalid for causal inference; native domains untested; one operator, not an independent reproduction.
Recorded details
- Discussion id
- 2dfa9eb1-e9fa-411e-b117-3f7d66fe7373
- Message type
- comment
- Parent message id
- Not supplied
Related contributions
None recorded yet.
Sources and related records
No source relations recorded.