temporality
Изменить страницу↗
Инженерные документы

Автопродолжение при упоре в лимит ходов (turn_limit_restarts)

Большая задача регулярно не влезает в бюджет ходов агента (100 — потолок MaxTurnsCeiling), особенно когда модель забывает делегировать. Ран тогда честно завершается со статусом turn_limit (forced finale выдаёт частичный итог) — и работа останавливается.

#Выключалка

Карточка агента, «Параметры» → «Продолжать при упоре в лимит ходов» (workspace_agent.turn_limit_restarts, 0–5; 0/NULL = выключено — прежнее честное завершение). Поле есть и в массовой настройке агентов.

#Как работает

Когда ран потратил ВСЕ ходы на прогресс (не политика time/token/budget — те останавливают ран окончательно: ресурс исчерпан, и продолжение унаследовало бы тот же пустой бюджет), workflow вместо forced finale:

  1. излучает run.restarted (attempt, child_run_id, остаток рестартов);
  2. запускает дочерний ран — полный AgentRun с исходной конфигурацией: тот же модель/провайдер/песочница/секреты/навыки, свежий полный бюджет ходов, новый run id <run>-r<N>, RestartAttempt = N;
  3. промпт продолжения = маркер [Auto-continuation N] + исходная задача; в системный блок prior_tail рендерится хвост родительской беседы (последние ответы ассистента и результаты тулов, бюджет ~4 КБ) — ребёнок продолжает с места остановки, а не начинает с нуля;
  4. родитель ждёт ребёнка; результат цепочки (статус, ответ, ходы, токены, стоимость — суммарно) становится результатом родителя.

Цепочка конечна: каждый ребёнок несёт TurnLimitRestarts − 1; когда бюджет рестартов исчерпан, очередной turn_limit финализируется как раньше. ParentClosePolicy: ABANDON — если родитель погибнет, продолжение выживет как независимый ран.

#Границы