Перейти к содержимому

Контрольные точки

Контрольные точки автоматически сохраняют снимок рабочего пространства перед тем, как агент приступает к обработке каждого сообщения. Если агент пошёл не в том направлении, можно восстановить любое более раннее состояние — состояние файлов и история разговора перематываются вместе.

Каждый раз, когда вы отправляете сообщение, Kodik сохраняет снимок, привязанный к этому сообщению. Снимок фиксирует содержимое всех файлов, которые агент изменил. Контрольные точки:

  • Создаются автоматически — никаких ручных действий не требуется.
  • Не вмешиваются в историю Git. Хранение снимков осуществляется отдельным слоем сессии.
  • Отслеживают, какие файлы были созданы или изменены, чтобы при восстановлении затронуть только нужные файлы.

Контрольные точки должны быть включены в настройках. При отключённой функции действие восстановления блокируется с предупреждением.

Чтобы восстановить более раннее состояние разговора:

  1. Найдите сообщение пользователя, к которому хотите вернуться.
  2. Нажмите действие восстановления на этом сообщении.
  3. Kodik перематывает историю разговора до этого сообщения, восстанавливает содержимое файлов из сохранённого снимка и очищает весь последующий контекст API.

После восстановления агент готов принять новое сообщение с этой точки. Можно отредактировать исходное сообщение перед повторной отправкой — см. Редактирование Сообщений.

После обычного восстановления маркер Контрольная точка восстановлена содержит действие Повторить. Используйте его, чтобы вернуть ветку, которую только что перемотали. Если отправить новое сообщение из восстановленной точки, Kodik считает это новой веткой и отключает путь повтора.

Маркер хранится вместе с задачей, поэтому после перезагрузки окна восстанавливается ровно одна его копия вместе с действием Повторить. Повтор, редактирование с повторной отправкой, новое сообщение или резюмирование чата (/compact или автоматическое) закрывают маркер и фиксируют выбранную ветку.

Если восстановление возвращает задачу до первого сообщения, видимая история чата также сразу очищается.

Если одна и та же задача открыта в нескольких окнах Kodik, восстановление выполняет окно, из которого вы его запустили, а другое окно показывает восстановленный разговор с кнопкой Redo без перезагрузки. Восстановление работает и во время резюмирования чата: резюме, которое ещё описывает отменённые ходы, отбрасывается.

Восстановление контрольной точки считает сохранённое состояние файлов до сообщения авторитетным. После подтверждения Kodik записывает именно это содержимое, даже если текущие байты отличаются, удаляет файлы, созданные отброшенной веткой, и заново создаёт файлы, которые эта ветка удалила. Все более поздние правки, результаты форматирования, изменения участников сохранения и другие изменения этих файлов на диске будут отброшены, поэтому сначала просмотрите или зафиксируйте всё, что хотите сохранить.

Контрольную точку можно восстановить сразу после появления ответа ассистента, в том числе сразу после изменения файла или после продолжения работы из ранее восстановленной точки. Ждать дополнительного фонового завершения не требуется.

Это намеренно отличается от действий Keep и Undo в File Review. File Review остаётся осторожным интерфейсом проверки: он может сохранить более поздние непересекающиеся правки или отказаться от конфликтующего отката; его правила не определяют поведение восстановления контрольной точки.

Когда восстановление охватывает несколько старых записей контрольных точек, Kodik сначала проверяет весь набор файловых откатов и только потом записывает или удаляет файлы. Если ресурс невозможно восстановить побайтово, восстановление останавливается до изменения рабочей области.

Очень старые записи контрольных точек могут не содержать неизменяемое содержимое файла, необходимое для точного восстановления. В таком случае Kodik оставляет файл без изменений и сообщает, что не может восстановить эту контрольную точку, вместо того чтобы угадывать.

Если восстановление не удалось из-за хранилища чатов (например, диск заполнен или заблокирован другой программой), уведомление объясняет причину, а файлы и разговор остаются без изменений, поэтому восстановление можно повторить. Если отправить сообщение, пока восстановление ещё перезаписывает файлы, Kodik вернёт эти файлы обратно и сообщит, что чат изменился во время восстановления; повторите восстановление, когда чат будет свободен. Контрольную точку, у которой больше 200 изменений файлов ещё ждут Keep или Undo, нельзя восстановить, пока вы не примете по ним решение; Kodik откажет до изменения любых файлов.

Если вы восстанавливаетесь к более поздней точке задачи, а более ранние правки AI всё ещё остаются, File Review синхронизируется с восстановленным состоянием. Kodik очищает только строки для действительно перемотанных правок, а оставшиеся ожидающие правки остаются видимыми для проверки.

Создание новой задачи из сообщения (ответвление)

Заголовок раздела «Создание новой задачи из сообщения (ответвление)»

Рядом с действием восстановления у каждого сообщения пользователя есть действие Ответвить (значок ответвления). В отличие от восстановления, ответвление не разрушает текущий разговор — он и его файлы остаются без изменений.

Когда вы ответвляетесь от сообщения, Kodik:

  1. Копирует разговор до этого сообщения в новую задачу с названием Fork of <исходное название> (само сообщение исключается). Предыдущие реплики переносятся дословно — а не в виде резюме — поэтому новая задача продолжается с полным контекстом.
  2. Переключает вас на новую задачу, оставляя исходную нетронутой.

Ответвление сохраняет унаследованный разговор и контекст модели при перезагрузке окна и повторном открытии задачи. Отчёты субагентов, завершённые до точки ответвления, остаются доступны целиком в разделе Агенты новой задачи.

Если в исходной задаче вы восстановили более ранний чекпоинт, ответвление начинается с того, что вы там видите: отменённые восстановлением ходы не копируются ни в новую задачу, ни в то, что она отправляет модели, а новая задача не предлагает их повторить.

Используйте это, чтобы начать новое направление из более раннего момента разговора, сохранив исходную ветку без изменений.

Контрольные точки особенно полезны при включённом режиме Авто-Подтверждения: агент работает без остановок, поэтому контрольные точки — основной способ откатить нежелательный результат.

  • Попробовать другой подход: восстановить состояние до редактирования и дать агенту другое указание.
  • Исправить непредвиденные изменения: если агент затронул файлы, которые вы не планировали изменять, восстановите состояние до этого шага.
  • Безопасные эксперименты: позвольте агенту попробовать что-то рискованное, просмотрите разницу и восстановите, если результат не устраивает.

После восстановления контрольной точки можно сразу отправить /goal <цель>, в том числе повторить отменённую цель. Отправлять обычное сообщение между восстановлением и новой целью не нужно.