Длительная работа Codex: цели, вехи и восстановление контекста
Долгая задача отличается не количеством строк, а необходимостью сохранять цель через множество решений, проверок и пауз.
Краткий ответ
Долгая задача отличается не количеством строк, а необходимостью сохранять цель через множество решений, проверок и пауз. Goal mode помогает Codex продолжать до измеримого результата, но не расширяет sandbox и не отменяет вопросы, требующие решения владельца.
Долгая задача отличается не количеством строк, а необходимостью сохранять цель через множество решений, проверок и пауз. Goal mode помогает Codex продолжать до измеримого результата, но не расширяет sandbox и не отменяет вопросы, требующие решения владельца.
Сформулируйте проверяемую цель
Цель включает:
- outcome — конечное состояние системы;
- constraints — совместимость, область и запрещённые действия;
- verification — доказательства завершения.
Пример:
Переведи загрузку изображений вузов и языков на 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. Независимые цели лучше разделять, иначе контекст решений смешивается и качество снижается.
Что важно запомнить
- Длительная работа начинается с outcome, constraints и verification.
- Веха должна завершаться проверяемым артефактом.
- Compact summary сохраняет решения, статус и следующий шаг, а не весь лог.
- Goal поддерживает настойчивость, но не расширяет доступ и scope.
https://yadro-code.ru/lessons/without-university/codex-agent-workflows/codex-agent-17