Длительная работа Codex: цели, вехи и восстановление контекста

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

Краткий ответ

Долгая задача отличается не количеством строк, а необходимостью сохранять цель через множество решений, проверок и пауз. Goal mode помогает Codex продолжать до измеримого результата, но не расширяет sandbox и не отменяет вопросы, требующие решения владельца.

Долгая задача отличается не количеством строк, а необходимостью сохранять цель через множество решений, проверок и пауз. Goal mode помогает Codex продолжать до измеримого результата, но не расширяет sandbox и не отменяет вопросы, требующие решения владельца.

Сформулируйте проверяемую цель

Цель включает:

Пример:

Переведи загрузку изображений вузов и языков на backend-хранилище.
Сохрани чтение старых записей до миграции, храни original и compressed,
не удаляй клиентские fallback-иконки. Добавь идемпотентную миграцию,
admin upload, API/e2e/component tests и проверь сценарий в браузере.
Не выполняй production deploy.

Такую цель можно сверять на каждом этапе. «Занимайся картинками до готовности» не определяет остановку.

Вехи должны давать законченный артефакт

Разбейте цель на вертикальные результаты:

1. контракт и схема совместимости; 2. backend write/read; 3. миграция и повторный запуск; 4. admin UI; 5. клиентский приоритет и fallback; 6. интеграционная проверка; 7. финальный review.

Для каждой вехи храните статус, проверки и нерешённые вопросы. Не используйте только процент: «контракт принят, e2e 5/5» информативнее «готово 40%».

Управляйте контекстом

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

При разрастании диалога Codex может compact контекст автоматически; в CLI доступна команда /compact. Перед сжатием полезно зафиксировать:

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

Steering без потери цели

Новый факт можно добавить в текущую работу:

Уточнение к текущей цели: reverse proxy ограничивает upload до 2 МБ.
Сохрани этот лимит и добавь понятную ошибку в admin UI.
Остальные критерии цели не меняются.

Если сообщение требует независимую функцию, создайте отдельную задачу. Постоянное расширение scope мешает Codex понять, когда исходная цель достигнута.

Пауза, восстановление и блокеры

Перед паузой запросите status recap: сделанное, команды, незавершённые процессы и безопасная точка продолжения. После resume сначала проверьте Git status, ветку, внешнее состояние и актуальность ранее запущенных серверов.

Goal должен останавливаться, если:

Сложность сама по себе не является блокером: агент продолжает исследование и безопасные проверки.

Практика: журнал длительной задачи

Создайте таблицу:

Веха Статус Доказательство Следующий шаг Риск

После каждого значимого изменения попросите Codex обновить одну строку и просмотреть diff. Затем смоделируйте паузу: новый chat должен восстановить работу только по цели, журналу и репозиторию, не угадывая решения.

Частые вопросы

Расширяет ли /goal разрешения Codex?

Нет. Goal сохраняет результат и критерии продолжительной работы, но использует тот же sandbox и approval policy. Значимое действие всё равно может потребовать решения.

Когда применять /plan, а когда /goal?

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

Стоит ли держать весь проект в одном бесконечном чате?

Нет. Один chat подходит для coherent outcome. Независимые цели лучше разделять, иначе контекст решений смешивается и качество снижается.

Что важно запомнить

https://yadro-code.ru/lessons/without-university/codex-agent-workflows/codex-agent-17