Agent Retry Budgets в 2026: сколько повторов можно позволить до того, как агент начнёт вредить

Agent retry budgets в 2026: как ограничивать retries по шагам, tools, workflows и routes, чтобы агент не превращал recoverable failure в дорогой каскад.

Agent retry budgets в 2026 нужны потому, что retries выглядят как полезная resilience-мера ровно до того момента, когда агент начинает зацикливаться, прожигать budget, перегружать tools и увеличивать blast radius уже после того, как problem ceased to be recoverable. В production не все ошибки стоит повторять одинаково. У каждого шага, tool class и workflow есть свой разумный предел повторов.

Retry budget - это ограничение на количество и стоимость повторных попыток. Оно отвечает на вопрос не "можно ли ретраить", а "сколько ретраев ещё рациональны до перехода в fallback, escalation или terminate".
Самый вредный anti-pattern - строить retries как отдельную техническую деталь без product context. Для AI-системы лишний retry - это не только latency, но и лишние tool calls, approvals, cost и риск side effects.

Короткая версия

Хороший retry-budget design в 2026 обычно включает:

  1. Per-step retry limits
  2. Per-tool retry semantics
  3. Workflow-level budget
  4. Escalation or fallback thresholds
  5. Budget-aware observability

Что особенно важно

  • не every failure is retryable;
  • read-only и side-effect steps требуют разных budgets;
  • budget полезно считать не только в attempts, но и в time/cost;
  • exhausted retry budget должен вести к next state, а не к хаосу.
Без техники
Agent семь раз подряд пытается один и тот же flaky tool path, растит latency и всё равно заканчивает incidentом.
С техникой
У route есть retry budget по step, tool и workflow. После исчерпания система честно идёт в fallback или human escalation.
ПромптRetry budget intuition
Почему много retries могут быть хуже, чем ранний fallback?
Ответ модели

Потому что retries сжигают время, quota и operator trust. Если failure уже не выглядит recoverable, ранний fallback часто дешевле и безопаснее.

1. Retry budget полезнее считать как control mechanism

Он помогает ответить:

  • когда retry ещё рационален;
  • когда нужно сменить strategy;
  • когда нужен human review;
  • когда workflow лучше terminate;
  • сколько recovery cost допустимо для route.

Это делает retries частью orchestration, а не reflex reaction на каждую ошибку.

2. Budget нужно раскладывать по уровням

Step-level

Например:

  • query rewrite retry;
  • retrieval retry;
  • parser retry.

Tool-level

  • search API;
  • browser action;
  • payment write;
  • export tool.

Workflow-level

Даже если отдельные шаги ещё retryable, весь run может уже быть слишком дорогим или too old to matter.

Если у workflow нет общего retry ceiling, локально разумные retries на разных шагах могут в сумме создать absurdly expensive и бесполезный run.

3. Retryability зависит от semantics шага

Полезное разделение:

  • transient errors with safe replay;
  • deterministic errors needing fix, not retry;
  • side-effecting writes needing dedupe and idempotency;
  • ambiguity after partial commit requiring investigation.

Одинаковый retry count для этих классов почти всегда плохая идея.

4. Budget можно считать не только в попытках

В production полезны и другие измерения:

  • total elapsed time;
  • token spend;
  • external API cost;
  • tool-call count;
  • operator burden caused by retries.

Иногда второй retry ещё нормален, но третий уже нарушает route SLA или unit economics.

5. Exhausted budget должен вести к явному переходу

Например:

  • fallback to cached result;
  • switch to manual mode;
  • request clarification;
  • force approval;
  • terminate and log diagnosis.

Retry budget без next-state policy просто обрывает run в произвольной точке.

6. Что особенно часто ломают команды

Same retry count for everything

Никакой semantics awareness.

No workflow-level ceiling

Run расползается по времени и стоимости.

Retries without route SLA awareness

Пользователь уже давно не получит value.

No budget observability

Команда не видит, где retries реально съедают систему.

Side-effect retries without idempotency context

Recoverability illusion превращается в risk multiplier.

7. Какие метрики полезны

Минимальный retry-budget dashboard обычно включает:

  • retry attempts by tool and route;
  • exhausted-budget rate;
  • fallback-after-retry rate;
  • cost of retries per successful outcome;
  • duplicate-side-effect incidents;
  • p95 recovery time by workflow class.

Плюсы

  • Retry budgets останавливают бессмысленные recovery loops
  • Per-tool semantics делают retries безопаснее
  • Workflow ceilings защищают SLA и economics
  • Явные next states делают exhaustion predictable

Минусы

  • Нужно проектировать budgets по классам failure
  • Слишком жёсткие limits могут обрывать recoverable runs
  • Без observability budgets быстро устаревают
  • Retry budgets должны жить вместе с idempotency and fallback design

Пример retry budget record

{
  "route": "browser_checkout_agent",
  "step_retry_limit": 2,
  "tool_retry_limits": {
    "search": 3,
    "browser_submit": 0,
    "browser_read": 2
  },
  "workflow_budget": {
    "max_retries_total": 5,
    "max_elapsed_seconds": 90
  },
  "on_exhaustion": "manual_escalation"
}

Практический checklist

1. Separate retry budgets by step and tool semantics
2. Add workflow-level ceilings for time and cost
3. Distinguish retryable from non-retryable failures explicitly
4. Define clear fallback or escalation after budget exhaustion
5. Track retry spend and recovery quality, not just attempt count

Практический совет: зрелый агент не тот, который retry-ит дольше всех, а тот, который раньше понимает, когда recovery перестала быть экономически и operationally разумной.

Проверьте себя

1. Почему retry budget полезнее простого `max_retries=3`?

2. Что особенно важно для exhausted retry budget?

3. Какой anti-pattern особенно вреден?