Задачи (Tasks)
Единица работы для каждого запуска агента с четким конечным автоматом состояний, таймаутами и правилами повторных попыток.
Задача (task) — это единица каждого запуска агента. Назначение задачи (issue) агенту, упоминание агента через @-mention в комментарии, отправка сообщения в чате или запуск Автопилота по расписанию — все это создает задачу. Предиктор Икс помещает ее в очередь; демон (daemon) забирает задачу и передает ее соответствующему AI-инструменту для написания кода, а после завершения записывает результат обратно на сервер.
Задачи (tasks) и тикеты/проблемы (issues) — это два разных объекта. Один и тот же тикет можно назначать, упоминать в нем агентов и перезапускать вручную много раз — и каждый раз будет создаваться новая задача.
Состояния, через которые проходит задача
- Queued (В очереди) — задача только что создана и ожидает, пока демон ее заберет.
- Dispatched (Отправлено) — демон зарезервировал задачу и запускает AI-инструмент разработки.
- Running (Выполняется) — AI-инструмент непосредственно выполняет работу.
- Completed (Завершено) — работа успешно завершена; выходные данные (комментарии, коммиты кода, изменения статуса) записаны обратно на сервер.
- Failed (Ошибка) — выполнение прервано из-за ошибки или таймаута; если причина ошибки допускает повтор, задача автоматически возвращается в статус
queuedдля еще одной попытки. - Cancelled (Отменено) — задача была отменена пользователем.
Что происходит при таймауте задачи
Сервер Предиктор Икс сканирует задачи каждые 30 секунд. К сбою приводят два типа таймаутов:
| Ситуация | Таймаут |
|---|---|
| Задача отправлена, но так и не запустилась (демон забрал ее, но не запустил AI-инструмент) | 5 минут |
| Слишком долгое выполнение | 2.5 часа |
Оба таймаута используют код ошибки timeout и повторяются автоматически (подробнее в следующем разделе). О связанной проверке отсутствия среды выполнения см. раздел Демон и среды выполнения → Когда среда выполнения помечается как офлайн.
Какие сбои повторяются автоматически, а какие нет
Сбои делятся на две категории: повторяемые (retryable) и неповторяемые (non-retryable).
Повторяемые (Предиктор Икс автоматически возвращает их в очередь):
runtime_offline— демон исчез после того, как задача была отправлена (dispatched).runtime_recovery— демон упал и перезапустился, восстанавливая задачи, которые он не успел завершить.timeout— таймаут среды выполнения или отправки.
Неповторяемые (задача остается в статусе сбоя):
agent_error— сам AI-инструмент сообщил об ошибке (ошибка API, превышение квоты, внутренний баг). Системные проблемы не повторяются автоматически, иначе это привело бы к бесконечному циклу.
Автоматический повтор также имеет два дополнительных условия:
- Не более 2 попыток — 1 исходная + 1 повторная. Если повторная попытка также не удалась, дальнейших попыток не предпринимается, даже если причина ошибки относится к повторяемым.
- Только для задач, запущенных из тикетов и чата — задачи, запущенные Автопилотом, не повторяются автоматически.
Задачи Автопилота не перезапускаются автоматически по задумке разработчиков. У Автопилота есть собственный график запуска (например, ежедневно); автоматические повторные попытки при сбое пересекались бы со следующим запланированным запуском. Если вам нужен немедленный перезапуск после сбоя, используйте ручной перезапуск (следующий раздел).
Как узнать, что задача Автопилота завершилась сбоем: уведомление придет в ваш Входящие (Inbox), а статус связанного тикета вернется из in_progress обратно в todo. Страница Автопилоты также показывает результат последнего запуска для каждого автопилота.
Ручной перезапуск против автоматического повтора
Ручной перезапуск (manual rerun) — это перезапуск, который вы инициируете из CLI или API (POST /api/issues/{id}/rerun):
predictorx issue rerun <issue-id>Поведение:
- По умолчанию перезапуск нацелен на текущего назначенного на тикет агента — это полезно, когда вы хотите, чтобы перезапуск следовал за текущим назначением, независимо от того, кто выполнял предыдущую задачу.
- Кнопка повтора в логе выполнения для конкретной строки отправляет вместе с запросом ID этой задачи. Таким образом, перезапуск нацелен на агента, который выполнял именно эту задачу, а не на текущего назначенного исполнителя. Это делает повтор по строкам полезным для совместной работы нескольких агентов, параллельных агентов через @-mention или в случаях, когда исполнитель задачи был изменен.
- Отменяет находящуюся в очереди или выполняющуюся задачу целевого агента по этому тикету (если таковая имеется). Задачи других агентов по этому же тикету (например, параллельные запуски через @-mention) не затрагиваются.
- Создает абсолютно новую задачу — счетчик попыток сбрасывается на 1, даже если исходная задача исчерпала лимит попыток.
- Запускает новую сессию агента — ID предыдущей сессии не наследуется. Ручной перезапуск означает, что вы сочли предыдущий результат неудачным, поэтому продолжение того же диалога привело бы к повторению испорченного состояния контекста. (Автоматический повтор, напротив, наследует сессию — этот путь предназначен для инфраструктурных сбоев, а не для плохого результата работы).
Сравнение:
| Критерий | Автоматический повтор | Ручной перезапуск |
|---|---|---|
| Триггер | Система, на основе причины сбоя | Вы, вручную |
| Лимит попыток | 2 попытки | Без ограничений |
| Применимые источники | Тикеты, чат | Тикеты с назначенным агентом |
| Выбор агента | Тот же агент, что и в упавшей задаче | Агент исходной задачи (при повторе из UI) или текущий исполнитель тикета (CLI / без task_id) |
| Наследование сессии | Да (продолжает прошлую сессию) | Нет (новая сессия) |
Как упавшая задача влияет на статус тикета
Если задача, запущенная из тикета, завершается сбоем (и автоматический повтор не помогает) при условии, что тикет был назначен агенту, статус тикета автоматически откатывается из in_progress назад в todo. Таким образом, открыв доску задач, вы сразу увидите, что эта проблема требует повторного рассмотрения. См. Тикеты и проекты.
Может ли задача продолжиться из предыдущего контекста
Да — при условии, что AI-инструмент поддерживает возобновление сессии.
Предиктор Икс фиксирует ID сессии дважды во время выполнения задачи: один раз в начале (когда AI-инструмент возвращает первое системное сообщение) и один раз в конце (при успешном завершении или сбое). Первый замер позволяет демону восстановиться в случае падения в процессе работы; второй зарезервирован для следующего автоматического повтора, когда этот ID передается обратно, чтобы агент мог продолжить прошлый диалог и работу с файлами. Ручной перезапуск намеренно игнорирует это и начинает чистую сессию — см. Ручной перезапуск против автоматического повтора.
Однако поддержка этой функции среди AI-инструментов сильно различается:
- ✅ Полная поддержка — Antigravity, Claude Code, Codex, Copilot, Cursor, Hermes, Kimi, Kiro CLI, OpenCode, OpenClaw, Pi
- ❌ Нет поддержки — Gemini
См. таблицу Матрица провайдеров → Возобновление сессии.
Что дальше
- Матрица провайдеров — различия в возможностях 12 AI-инструментов написания кода (включая точный статус поддержки возобновления сессий).
- Назначение тикетов агентам / Упоминание агентов в комментариях / Чат / Автопилоты — четыре способа запустить задачу.
Установка среды выполнения агента
Предиктор Икс работает с любыми инструментами программирования на базе ИИ, установленными на вашем компьютере. На этой странице показано, как установить каждый из 12 поддерживаемых инструментов, чтобы демон мог их обнаружить.
Матрица инструментов для ИИ-кодинга
Предиктор Икс поддерживает 12 инструментов для ИИ; они реализуют один и тот же интерфейс, но возможности каждого из них существенно различаются.