Блог

Goal Mode в Claude Code и Codex: автономная работа на 14 часов

Markdown

Как запускать Claude Code 2.1.139 и Codex CLI с командой /goal: настройка автономной работы, формулировка проверяемых целей, ограничения и расходы на токены.

Читать статью полностью

Кратко

Команда /goal появилась в Claude Code 2.1.139 (11 мая 2026 года) и Codex CLI 0.128.0 (30 апреля 2026 года; стабильный выпуск — с 21 мая). Пользователь один раз задаёт проверяемое условие завершения, после чего агент повторяет цикл планирования, действий и проверки, пока не выполнит условие или не исчерпает токены. OpenAI публично демонстрировала 25-часовой запуск с расходом 13 миллионов токенов. Такой режим подходит для миграций, бенчмарков и рефакторинга с измеримым результатом. Он плохо подходит для задач с неясной целью, например «сделай лучше», для изменений интерфейса и для рабочей базы данных.

Материалы о работе с Ailoot собраны в документации.

Что такое /goal и почему эта команда появилась в 2026 году?

Кратко

Раньше после каждого шага агент останавливался и ждал команды «продолжай». С /goal человек один раз задаёт условие готовности, а агент сам определяет, когда оно выполнено, и работает дальше без возврата управления после каждого шага.

До апреля 2026 года работа часто выглядела так: я просил Claude перенести проект с Pydantic v1 на v2. Через полминуты он останавливался, я проверял результат и писал «продолжай». После следующего шага он снова ждал. При крупной миграции таких команд могло набраться 200–300: вместо параллельной работы над своим кодом приходилось постоянно следить за агентом.

В объяснении OpenAI причина заключалась не в недостатке способностей модели, а в устройстве рабочего цикла. Без заданного критерия модель не понимает, в какой момент завершить задачу, и прекращает работу после каждого хода. Если же определить, что считать результатом, она может сама оценивать дальнейшие действия.

Так появилась /goal — встроенный в управляющий слой механизм, который позволяет продолжать работу до выполнения указанного условия.

Как настроить Goal Mode в Claude Code?

Кратко

Claude Code 2.1.139 выпущен 11 мая 2026 года с командой /goal. После каждого хода отдельная быстрая модель, по умолчанию Haiku, проверяет условие. Если оно ещё не выполнено, Claude продолжает работу. Условие может содержать до 4000 символов; в рамках сессии действует одна цель.

Вот краткий пример из официальной документации Anthropic:

claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

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

В интерактивном режиме введите /goal, а затем формулировку цели:

/goal все тесты pytest проходят и mypy strict даёт ноль ошибок

Дальше происходит следующее:

  • После каждого хода Claude отдельная быстрая модель, по умолчанию Haiku, получает условие и историю диалога.
  • Она отвечает «да» или «нет» и кратко объясняет решение.
  • При ответе «нет» Claude автоматически делает следующий ход, не передавая управление пользователю.
  • При ответе «да» цель снимается, и управление возвращается пользователю.

Официальная документация описывает цикл так: после каждого хода небольшая быстрая модель проверяет условие; если оно не выполнено, Claude продолжает без передачи управления пользователю.

Важные ограничения:

  • /goal доступна только в рабочей папке, для которой пользователь подтвердил доверие. В новой среде без сохранённого разрешения команда завершится ошибкой.
  • В корпоративной конфигурации с disableAllHooks или allowManagedHooksOnly команда недоступна.
  • Длина условия ограничена 4000 символами.
  • Одновременно в сессии активна только одна цель. Новая команда /goal заменяет предыдущую.
  • При запуске через --resume условие сохраняется, а счётчики ходов, времени и токенов сбрасываются.

Команды управления:

  • /goal без аргументов показывает текущий статус.
  • /goal clear удаляет цель. То же действие выполняют алиасы stop, off, reset, none и cancel.

По словам Anthropic, затраты на оценку «обычно ничтожны» на фоне стоимости основного хода. Haiku анализирует условие и историю диалога, но не вызывает инструменты. Основные расходы приходятся на ходы главной модели.

Как настроить /goal в Codex CLI?

Кратко

Codex CLI 0.128.0 получил экспериментальную /goal 30 апреля 2026 года. 21 мая режим стал стабильным в версии 26.519 / npm 0.133.0. Для продолжения и остановки используются два шаблона промпта: continuation.md и budget_limit.md. Цель относится к треду и сохраняется после перезапуска.

Пример использования похож на вариант для Claude:

codex
> /goal все тесты vitest проходят и нет ошибок eslint

В Codex предусмотрено больше команд для работы с целью:

КомандаНазначение
/goal условиеЗадать цель
/goalПосмотреть статус
/goal pauseПриостановить работу
/goal resumeПродолжить выполнение
/goal editИзменить условие (в стабильной версии)
/goal clearУдалить цель

Ключевое отличие от Claude в том, что Codex проверяет завершение сам, без отдельной модели. После каждого хода в контекст автоматически добавляется шаблон continuation.md из репозитория openai/codex. В нём содержится указание продолжать работу над активной целью, не повторять уже выполненное, выбирать следующий конкретный шаг и отмечать цель достигнутой только после проверки результата и подтверждения, что обязательная работа завершена.

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

Оба шаблона требуют честно оценивать состояние задачи: продолжать, пока цель не достигнута, а при исчерпании бюджета остановиться и сообщить, что ещё предстоит сделать.

В Codex цель привязана к треду, а не к сессии, поэтому её можно продолжить после перезапуска. Для работы, разбитой на отдельные отрезки времени, пригодится команда /goal resume.

Чем различается /goal в Claude Code и Codex?

Кратко

В Claude основная модель генерирует код, а отдельная небольшая модель оценивает выполнение условия. В Codex тот же агент проверяет собственную работу, следуя добавленному в контекст напоминанию. Устройство цикла разное, но в обоих инструментах возможны повторные бесплодные попытки.

Сравнение параметров помогает увидеть основные различия:

ПараметрClaude Code /goalCodex /goal
Выпускv2.1.139, 11 мая 2026 годаv0.128.0, 30 апреля 2026 года (экспериментальный режим) → v0.133.0 / 26.519, 21 мая 2026 года (стабильный режим)
Область действия целиСессияТред, сохраняющийся после перезапуска
Командыset, clear и алиасыset, view, pause, resume, edit, clear
Кто определяет, выполнено ли условиеОтдельная модель, по умолчанию HaikuТот же агент, которому добавляется промпт
Доступ оценщика к файламНет: оценка опирается на текст диалогаЕсть: агент может изучать файлы, тесты и логи
Настройка бюджетаТекстовое условие, например «остановись после 20 ходов»Встроенный лимит токенов и автоматическое применение budget_limit.md
Жёсткий предел расходовНет; действуют лимиты тарифаНет; действуют лимиты тарифа
Максимальная длина условия4000 символовНе указана
Доступные средыИнтерактивный режим, -p, приложение для компьютера, Remote ControlПриложение, расширение для IDE, CLI, клиенты ACP

Для пользователя практическое различие состоит в способе проверки: Claude поручает оценку отдельной модели, а Codex сам анализирует доступные файлы и логи. Выбирайте инструмент, исходя из того, какие данные нужны для проверки условия.

Подробнее об этих инструментах — в руководстве по сравнению Codex и Claude Code.

Как формулировать измеримый критерий завершения для /goal?

Кратко

Надёжный критерий можно проверить командой, которая завершается с кодом 0, либо однозначным результатом. Условие «все тесты прошли» проверяемо, а «код стал чище» — нет. Часто полезно объединить формальные проверки с количественным порогом, например тесты и минимальное покрытие.

В официальном Codex Cookbook OpenAI подчёркивает: нельзя считать цель достигнутой только потому, что модель так решила. Результат нужно сверить с конкретными артефактами — файлами, тестами, логами или бенчмарками.

Примеры формулировок, которые можно проверить:

Вид проверкиПример условия
Тесты«pytest tests/ завершается с кодом 0, покрытие — не ниже 80%»
Типы«mypy strict для src/ сообщает о нуле ошибок»
Lint«eslint . завершается с кодом 0 для всех изменённых файлов»
Сборка«npm run build завершается успешно, ошибок TypeScript нет»
Бенчмарк«k6 run показывает p95 ниже 200мс»
Diff«git diff содержит изменения только в файлах X, Y и Z»
Несколько условий«pytest проходит, mypy strict сообщает о нуле ошибок, ruff check завершается успешно»

В строке «Несколько условий» соединены тесты, mypy и lint. Цель выполнена лишь тогда, когда прошла каждая проверка.

Неудачные формулировки:

  • «Код стал лучше».
  • «Пользоваться стало удобнее».
  • «Производительность улучшена».
  • «Документация полная».

Разница между условиями «работает» и «не работает» определяется возможностью проверки. Если формулировку нельзя подтвердить командой или конкретным результатом, агенту не на что опереться. OpenAI описывает похожую способность как «long-horizon coherence»: агент может долго вести работу, но критерий того, что результат уже достаточно хорош, должен задать человек.

Какие задачи подходят для долгого автономного запуска?

Кратко

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

Лучше всего режим подходит для следующих видов работы:

  • Низкоуровневая разработка, где компиляция и запуск тестов быстро показывают результат.
  • Миграции с чёткими критериями — например, по типам, тестам и lint.
  • Бенчмарки и оптимизация, результат которых выражается числом.
  • Документация и журналы изменений, если для них задана понятная структура.

Сколько стоит /goal и как ограничить расход токенов?

Кратко

У /goal нет отдельного жёсткого порога остановки по сумме в долларах: применяются ограничения выбранного тарифа. В приведённой оценке час работы Codex на gpt-5.3-codex обходился примерно в 1.5–3 доллара. Claude требует расходов на основную модель и более дешёвую проверку условия. Чтобы ограничить длительность, можно включить в цель условие остановки после N ходов.

Публично приводились такие примеры расходов и длительности:

ЗапускДлительностьТокеныСтоимость
Демонстрация инструмента проектирования OpenAI25 часов13MВнутренний запуск
Миграция Pydantic v1→v231 час, 4 сессии~3.1M output~$44
Система голосовых интервью6 ч 44 мин общего времени (41 мин compute)6,8 млн input, 94% кэш-
Проверка шрифтов5 минут188 832Менее 5% недельной квоты

Ни Claude Code, ни Codex не обещают автоматическую остановку при достижении заданной суммы в долларах. Для контроля доступны три механизма:

  1. Лимиты подписки — Pro, Max или Enterprise. По приведённой оценке, 14-часовой ночной запуск укладывается в недельную квоту тарифа Anthropic Max стоимостью $100/мес.
  2. Ограничение в условии — укажите прямо в /goal, например: «остановись после 20 ходов».
  3. Лимит токенов Codex — при его достижении Codex автоматически добавляет budget_limit.md и завершает работу.

Расходы могут быстро расти в таких случаях:

  • Нечёткая цель вроде «сделай удобнее»: агент не знает, когда закончить, а оценщику не с чем сравнивать результат.
  • Вызовы внешних API без заглушек: повторные попытки потребляют дополнительные токены.
  • Объёмный контекст: после 6.7M токенов включается сжатие контекста, и часть сведений может потеряться.

О расходе токенов подробнее рассказано в руководствах о расходах в Claude Code и о контроле лимитов.

В каких пяти случаях не стоит запускать /goal?

Кратко

Избегайте /goal для расплывчатых пожеланий вроде «сделай красиво», мелких однострочных правок, работы с пользовательскими данными в рабочей базе, критических для безопасности изменений и задач с неясными внешними зависимостями. В таких условиях агент может бесконечно повторять попытки или тратить токены без пользы.

В документации OpenAI перечислены ситуации, для которых долгий автономный запуск не подходит:

  1. Однострочные изменения. Запускать /goal ради переименования переменной обычно затратнее, чем внести правку вручную.
  2. Расплывчатая постановка. «Улучши производительность», «сделай код чище» или «сделай удобнее» не задают проверяемого результата.
  3. Рабочая база с пользовательскими данными. Ошибка при миграции может привести к сбою, а восстановление резервной копии обойдётся дороже сэкономленного времени.
  4. Изменения, затрагивающие безопасность. Аутентификацию, шифрование и обработку платежей следует проверять с участием человека при каждом изменении.
  5. Внешние API без заглушек. Сетевые сбои приводят к повторным попыткам и дополнительным расходам, причём их причины могут не зависеть от вас.

Что делать, если агент застрял?

Кратко

О возможном цикле говорят три-четыре хода подряд с правками одного и того же места и возвратом к прежнему состоянию. Остановите работу через Ctrl+C и проверьте лог. Затем уточните критерий или уменьшите объём задачи. В Claude можно удалить цель командой /goal clear, а в Codex — поставить паузу и отредактировать условие.

Возможные признаки повторяющихся бесплодных попыток:

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

Дальнейшие действия:

  • В Claude Code выполните /goal clear, затем задайте более конкретное условие.
  • В Codex выполните /goal pause, изучите текущий thread, измените условие через /goal edit и возобновите работу командой /goal resume.
  • В обоих инструментах проверьте, можно ли однозначно подтвердить критерий: например, команда должна вернуть exit 0 или вывести заранее определённое значение.

Причина цикла может быть в самой постановке задачи. Например, «все тесты проходят» не поможет, если из-за серьёзной архитектурной проблемы тесты пока невозможно исправить. Тогда агент может снова и снова устранять симптомы, не добираясь до причины.

Познакомьтесь с Ailoot.

Подробнее

Вопросы и ответы

Какой критерий завершения полезен для /goal?

Задайте проверяемый результат: конкретный тест, проверку типов, сборку или бенчмарк и требуемый исход. Явно объедините обязательные проверки и укажите разрешённые файлы. «Сделай лучше» не даёт измеримой точки остановки.

Что делать, если агент повторяет одни и те же неудачные правки?

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

Все статьи