Anthropic Academy Courses My Profile Sign Out

Управление длинными сессиями

Попросить Claude быстро выполнить небольшую задачу — легко. Вы спрашиваете, он работает, вы проверяете результат. Но длинные задачи — совсем другая игра. Рефакторинг десятка файлов или разработка новой функции может занять часы. И чем больше вам приходится направлять Claude по ходу дела, тем дольше всё тянется.

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

Определите объём работы заранее с помощью режима планирования

Прежде чем Claude напишет хоть одну строку, попросите его составить план. В режиме планирования Claude исследует код в режиме только для чтения. Он читает код, выясняет, что нужно изменить, и отдаёт вам план на проверку.

Когда получите план, действительно прочитайте его. Не просматривайте по диагонали. Чем тщательнее план, тем меньше сюрпризов будет, когда Claude начнёт его выполнять. Если что-то не так или чего-то не хватает, просто попросите Claude добавить это туда, куда нужно. Итерации над планом проходят гораздо быстрее, чем запуск Claude наугад с надеждой на лучшее, а затем разбор последствий.

Направляйте Claude, пока он работает

Когда Claude уже работает, у вас есть несколько способов удерживать его в правильном направлении. Первый — это компактизация.

Compact

Compact суммирует вашу беседу, использует это резюме как новый контекст и удаляет старые сообщения. Это освобождает контекстное окно, чтобы Claude мог продолжать. Риск в том, что что-то важное потеряется в резюме, и Claude уйдёт в сторону.

Поэтому не запускайте /compact сам по себе. Добавьте инструкции после команды, чтобы указать Claude, как делать резюме. Например, если вы давно закончили отладку и теперь вас интересуют только изменения некоего API, так и скажите:

```

/compact Focus on the --version flag implementation

```

Всё, что вы пишете после команды, определяет, что сохранит резюме. Это ваш руль для управления контекстом.

Rewind

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

В меню отката есть несколько вариантов:

  • Restore code and conversation — откатить и код, и беседу вместе.
  • Restore conversation — откатить только чат.
  • Restore code — откатить только файлы.
  • Summarize from here — резюмирует всё после чекпоинта. Отлично, если у вас был побочный разговор и вы просто хотите освободить место.
  • Summarize up to here — резюмирует всё до чекпоинта. Отлично, когда была долгая фаза настройки, которую хочется сжать, но важно сохранить части с реализацией нетронутыми.

Пусть Claude работает более автономно

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

Goal

Goal задаёт условие завершения. Вы описываете, как выглядит «готово», и Claude продолжает работать от хода к ходу, пока быстрый оценщик не подтвердит выполнение этих условий. Он не просто остановится при первом ощущении, что закончил.

Например:

```

/goal all tests in src/billing pass, and the type checker reports zero errors

```

Чтобы отменить, выполните /goal clear. Одно важное ограничение: оценщик читает только транскрипт. Поэтому условие должно проверяться по тому выводу, который Claude реально создаёт, например по результатам прогона тестов.

Loop

Loop выполняет промпт с интервалом между ходами, фиксированным или в собственном темпе. Используйте его, чтобы подтягивать что-то внешнее, например прогон CI или деплой, и реагировать при изменении состояния.

Чтобы остановить цикл, просто нажмите escape.

Параллельная работа с worktrees

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

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

Поскольку у каждого агента своё дерево, они не могут затереть изменения друг друга. Когда сессия завершается, чистое рабочее дерево автоматически удаляется.

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

Собираем всё вместе

Работа с длинными сессиями Claude Code сводится к нескольким привычкам:

  • Сначала определите объём работы, затем направляйте.
  • Управляйте компактизацией, чтобы резюме сохраняло важное.
  • Используйте меню отката, чтобы скорректировать курс, когда Claude отклоняется.
  • Задавайте цель, когда можете описать «готово» лучше, чем шаги.
  • Выполняйте параллельную работу в worktrees.

Делайте так, и сможете доверять длинному прогону, не присматривая за каждым его шагом.