Free to read · no account needed

16 min · agents

Failure modes and retries

Goal: recognize common agent failures and retry without making things worse.

Best for: when the agent loops, invents success, or keeps breaking the same step.

Agents fail in boring ways: wrong file, tool error, invented “done,” endless retry. Your job is to name the failure and change the plan—not spam “try again.”

Retries without a new hypothesis create duplicate side effects. Classify the failure, change one variable, cap attempts.

Why beginners skip this

Mash-retry feels productive until the same failure burns three attempts and you widen permissions out of frustration. Classify the failure first; change one constraint; never auto-retry a write or send.

Habit this week (Asia/Shanghai): on one failed run, name the failure type, change one constraint, log the retry—date the line.

Step 1 — Name the failure type

Pick one: tool error, wrong target, incomplete evidence, scope creep, or hallucinated success.

Here is what happened:
[paste agent output / error]
Classify failure type (one).
Explain in plain words.
Propose the smallest next experiment.
Example

Filled prompt

Last run error: "403 insufficient scopes" while agent tried to label inbox mail, then auto-retried twice.
Classify failure mode in one word. Propose next attempt as a smaller step (read-only list 5 threads) with one check.
Ban retry of any write/send until I re-read the payload.

What good output looks like

  • Done boxes for “Failure modes and retries” are explicit and checkable
  • Allow-list tools only; never-do lines honored
  • Stops before send/delete without human gate
  • Pass/fail: Plan→Act one→Check visible for agents-failure-modes-and-retries
  • Pass/fail dated (Asia/Shanghai) sits next to the artifact

Step 2 — Retry with a narrower act

Retries should shrink scope: one file, one query, one tool call.

Retry policy: do NOT repeat the same step unchanged.
Narrow to: [constraint]
Show plan for one retry only, then stop.
Example

Filled prompt

Last run: agent reported "done" after drafting 40 emails but send tool returned 429; it retried send 6 times.
Classify failure mode. Next attempt: draft-only batch of 5, human send.
Ban auto-retry on send. One log row.

What good output looks like

  • Allow-list tools only; never-do lines honored
  • Stops before send/delete without human gate
  • Pass/fail: Plan→Act one→Check visible for agents-failure-modes-and-retries
  • Done boxes for “Failure modes and retries” are explicit and checkable

Step 3 — Know when to stop the agent

Stop if: two failures same way, touching red-lines, or you cannot verify. Switch to chat mode and finish manually.

Write a beginner stop-card (≤8 bullets): when to halt an agent and finish by hand.
Example

Filled prompt

≤8 bullets: when to halt an agent and finish manually.
Context: live job for agents-failure-modes-and-retries — “recognize common agent failures and retry wit.” Keep never-invent / draft-only.

What good output looks like

  • Names one failure mode word first
  • Next step is smaller than the failed call
  • Explicit ban on retrying write/send
  • Log line you could paste into your table

Save this card

Card: classify failure → change one constraint → retry · never auto-retry write/send.

1. What I shipped: ___ 2. What I refused: ___ 3. What I will never-do again: ___ (date: Asia/Shanghai)

  • [ ] Tools/writes paused
  • [ ] Refuse-line dated
  • [ ] Artifact path saved
  • [ ] Next link chosen (or stop)

Before you start

Write Done (checkboxes) and the human gate on paper before any run for “recognize common agent failures and retry.” Allow-list tools; leave send/delete off. Guide: agents-failure-modes-and-retries. If you only have a blank practice box, stop and fetch the real job first.

  • Goal in one line: ___
  • Allowed tools: ___
  • Forbidden: ___
  • Human approve needed for: ___

How to use this week

When the next tool error hits, label it in one word (auth, scope, timeout, bad-input, hallucinated-success). If it was a send/write, do not retry until a human re-reads the payload. on a live artifact—not a blank demo. Write one refuse-line and date the note (Asia/Shanghai). If you only skimmed agents-failure-modes-and-retries, put 25 minutes on the calendar and redo once.

Close the week by quoting aloud the refuse line you actually used once. If you cannot, rerun Practice now and date the pass/fail (Asia/Shanghai).

No blind send retry

Classify first. Cap read-only retries at two. Writes need a human.

Red flag

Mash-retry on the same failure; widening permissions on retry; no stop condition after two fails—treat as an incident.

Pitfalls

PitfallFix
Treating every error as “model dumb”Check permissions and tool target first
Retrying forever without a budgetCap retries (e.g. 2) then human
Identical retriesChange one variable
Ignoring tool errors in the logRead the error text
Letting loops burn quota overnightCap steps/time
Example

Filled prompt

Temptation: skip the habit for agents-failure-modes-and-retries to “save five minutes.”
Job still: recognize common agent failures and retry
Do the smallest correct pass: Done visible · one checkable artifact · Unknowns labeled [?].
Boundaries: draft only; no silent send; no invented metrics.
Return: the artifact + the refuse-line you said aloud.

What good output looks like

  • Names the shortcut you refused (specific to agents-failure-modes-and-retries)
  • Still delivers a checkable artifact for “recognize common agent failures and retry”
  • Unknowns labeled; draft-only respected
  • Pass/fail: refuse-line written and dated (agents-failure-modes-and-retries #4)

Practice now

Live card: pick one past agent fail; map to mode (tool/loop/permission) + one retry rule you will actually use (Asia/Shanghai).

Today on a real failure: name the type (permission / hallucination / timeout / unclear goal), retry once with a narrower action, then stop if it still fails. Write pass/fail + never-do (date: Asia/Shanghai).

Three-line failure card (copy): 1. Failure type: ___ (permission / hallucination / timeout / unclear goal / wrong tool) 2. First retry: narrowed how? ___ · still failed? Y/N 3. Stop rule used: ___ · refuse-line dated: ___

If you cannot name the type in one word, do not retry—ask a human or open a debug note first.

  • [ ] Artifact path written
  • [ ] Refuse example would say "yes"
  • [ ] Dated Asia/Shanghai

One sentence takeaway

Classify the failure, change one constraint, never auto-retry write/send. This week: one dated classify→retry log line (Asia/Shanghai).

Next

Plan → act → check · Human-in-the-loop checkpoints · Debug broken tool calls · Logging what matters · Define done and permissions

Pair with today: open the first Next link (agents-plan-act-check-loop) only after you dated a refuse-line for this guide (Asia/Shanghai).

← Back to home · Learn · Tools · Compare · Start