Skip to content

Advanced Techniques and Speed Optimization

📚 Навигация по серии: Предыдущая статья «30 Выбор модели» подробно описала выбор моделей и настройку интенсивности рассуждений под разные типы задач. В этой главе мы идем дальше: наибольшее влияние на вашу дневную производительность оказывает то, как именно вы передаете контекст, управляете сессиями и организуете параллельное выполнение задач. В следующей статье «32 Миграция с Claude Code» мы поговорим о том, как перенести свои наработки старым пользователям.

В конце предыдущей статьи я упомянул: зачастую скорость вашей работы падает не из-за слабости модели, а из-за запутанного контекста, который вы ей передаете. В этой главе мы подробно разберем эту тему.

Приведу пример из своей практики. В марте 2025 года я создавал небольшую утилиту на Python. Реализация одной функции отняла у меня целый день. Проанализировав логи сессий по команде /status, я обнаружил, что на одну эту задачу ушло 11 циклов (раундов) общения с ИИ. В процессе выполнения Codex дважды изменял не те файлы и один раз без спроса «оптимизировал» конфигурацию, которую я просил не трогать. Проведя аудит, я понял: проблема была не в модели gpt-5.5, а в том, что в первом запросе я просто написал «добавь функцию экспорта», и все последующие 10 раундов ушли на исправление ошибок и дополнение контекста.

Основной фактор медленной работы ИИ-ассистентов — это переделки и возвраты назад, а не время генерации текста. Если вы некорректно описали задачу, ИИ уходит по ложному пути. Вам приходится возвращать его назад, тратя на это драгоценные минуты. Скорость модели не компенсирует время, потерянное на исправление ошибок.

В этой главе мы разберем практические шаги по устранению переделок и оптимизации скорости взаимодействия с Codex.

Прочитав эту статью, вы получите:

  • Понимание ключевого правила: сокращение количества переделок > погоня за скоростью работы модели; сделать правильно с первого раза — самый быстрый путь
  • Готовую формулу эффективного запроса: Цель + Контекст + Ограничения + Критерии готовности (с примерами «до и после»)
  • Три способа управления окном контекста (context window): очистка через /compact, своевременный запуск новых сессий и точечная передача файлов через @ вместо сканирования всего репозитория
  • Рекомендации по оптимизации затрат за счет снижения мощности моделей для простых задач
  • Продвинутые техники параллельного запуска задач и автоматической валидации результатов ИИ
  • Практическое упражнение по переписыванию нечетких запросов в структурированные по четырехкомпонентной схеме

⚠️ Перечень команд, параметров и настроек в этой статье основан на официальной документации Codex. Коэффициенты списания кредитов (credit) за использование быстрого режима /fast и названия моделей могут меняться от версии к версии, проверяйте их в выводе справки codex --help.


01 Суть оптимизации: уменьшаем количество переделок, а не время генерации

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

Большинство разработчиков при попытке ускорить работу начинают переключать модели на более легкие, отключать рассуждения или искать режимы турбо-ускорения. Все эти методы будут описаны ниже, но они вторичны. Основная потеря времени — это переделки.

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

То же самое происходит при написании кода с ИИ. Если Codex выбрал неверное направление, изменил не тот модуль или неправильно понял вашу задачу, возвращение к исходной точке отнимет гораздо больше времени, чем секунды работы процессора.

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

Пример некорректного взаимодействия: я попросил ИИ «оптимизировать функцию», не указав, по какому критерию проводить оптимизацию и какие зависимости нельзя трогать. В результате Codex переписал метод, изменив его сигнатуру, что привело к падению зависимых модулей. На исправление последствий этой «оптимизации» у меня ушло 20 минут. После этого я ввел правило: никогда не использовать абстрактные формулировки вроде «оптимизируй код».

Приоритеты оптимизации времени работы:

Ошибочный подходПравильный подход
❌ Использование легкой модели для всех задач без разбора✅ Четкое описание задачи в первом запросе для сокращения циклов правок
❌ Отключение рассуждений ИИ ради мгновенного ответа✅ Подбор интенсивности рассуждений под сложность задачи
❌ Передача всего репозитория в контекст ИИ✅ Точечное указание файлов через символ @
❌ Ведение длинного диалога в одном окне чата✅ Запуск новой сессии под каждую отдельную задачу
❌ Ручная проверка каждой строки изменений✅ Настройка автоматических тестов для самопроверки ИИ

💡 Резюме в одном предложении: Главный секрет ускорения работы с ИИ — это минимизация количества циклов исправления ошибок за счет четкой постановки задачи, а не скорость генерации ответов.


02 Формула эффективного запроса: Цель + Контекст + Ограничения + Критерии готовности

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

Аналогия: заказ доставки еды. Если вы напишете в комментарии к заказу просто «привезите плов», повар приготовит его по своему вкусу — возможно, добавит слишком много специй или положит ингредиенты, на которые у вас аллергия. Но если вы напишете: «Ташкентский плов, не острый, без добавления лука, привезти к 14:00», вы получите именно то, что нужно, с первой попытки. При работе с Codex каждый сэкономленный на описании символ заставляет ИИ додумывать контекст самостоятельно.

Официальное руководство предлагает четырехкомпонентную формулу составления запроса:

  • Цель (Goal) — что именно нужно сделать или изменить?
  • Контекст (Context) — какие файлы, библиотеки или логи ошибок имеют отношение к задаче? (Используйте символ @ для привязки).
  • Ограничения (Constraints) — какие правила проектирования нельзя нарушать, какие файлы не должны быть изменены?
  • Критерии готовности (Done when) — по каким признакам задача считается выполненной? (Тесты проходят, логи чистые, баг не воспроизводится).

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

Сравнение запросов:

❌ Размытый промпт (приведет к ошибкам)✅ Структурированный промпт (высокая вероятность выполнения с первого раза)
Добавь экспорт в проектеЦель: Добавить функцию экспорта отчетов в формат CSV в файле report.py.
Контекст: Использовать шаблон экспорта из файла @export/json_export.py.
Ограничения: Не изменять структуру полей класса Report.
Критерии готовности: Сгенерированный файл должен содержать заголовки колонок, все тесты в файле tests/test_export.py должны завершаться успешно.
Функция работает медленно, оптимизируй еёЦель: Сократить время выполнения метода search() с 2 секунд до 200 мс на выборке из 10 000 записей.
Контекст: Код метода находится в файле @core/search.py.
Ограничения: Не менять сигнатуру метода и формат возвращаемых данных.
Критерии готовности: Запуск теста pytest tests/test_search.py::test_perf подтверждает время выполнения менее 0.2 с.
Исправь баг с авторизациейЦель: Устранить появление белого экрана после успешного ввода учетных данных.
Контекст: Ошибка воспроизводится по сценарию «ввод пароля → нажатие Войти → белый экран». Код авторизации в @auth/login.py.
Ограничения: Не менять логику проверки токенов.
Критерии готовности: После авторизации открывается главная страница приложения.

При использовании структурированных запросов количество циклов правок сокращается с 5-8 раундов до 1-2.

Если задача слишком сложна и вы не знаете, с чего начать, переключите Codex в режим планирования (Plan mode) с помощью команды /plan (или сочетания клавиш Shift+Tab в консоли). ИИ проанализирует контекст, задаст уточняющие вопросы и предложит план действий до написания кода, что убережет проект от ошибок.

💡 Резюме в одном предложении: Эффективный запрос строится по схеме: Цель + Контекст + Ограничения + Критерии готовности. Чем точнее описаны условия, тем меньше времени уйдет на исправление неверно сгенерированного кода.


03 Управление окном контекста: отсекаем лишнюю информацию

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

Объем информации, который ИИ может удерживать в памяти одновременно, называется окном контекста (context window). При переполнении окна старая информация начинает вытесняться или сжиматься, что снижает качество ответов.

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

Три правила управления окном контекста:

1. Точечная передача файлов через @. Не просите ИИ «найти нужный код в проекте». Если вы знаете, с какими файлами связана задача, укажите их через символ @. Это сэкономит память и ускорит анализ.

2. Использование команды /compact. В длинных диалогах накапливается много устаревшей информации. Команда /compact сжимает историю переписки до краткого резюме, освобождая место для новых запросов.

3. Новая задача — новая сессия. Это ключевое правило гигиены работы с ИИ. Не ведите переписку по разным задачам в одном чате.

Используйте следующие команды управления сессиями в CLI:

text
/compact    Сжатие истории текущего диалога для освобождения памяти
/status     Просмотр статуса сессии и объема заполнения окна контекста
/fork       Создание ответвления от текущего диалога с сохранением истории
/resume     Восстановление сохраненной ранее сессии по её ID

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

💡 Резюме в одном предложении: Держите контекст чистым: указывайте файлы через @, используйте /compact для сжатия длинных диалогов и всегда открывайте новую сессию для новой задачи.


04 Оптимизация за счет смены моделей под тип задачи

Этот раздел развивает идеи предыдущей статьи о выборе моделей с точки зрения оптимизации скорости работы.

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

Главное правило оптимизации: простые рутинные задачи выполняйте на легких моделях. Рекомендации по выбору интенсивности рассуждений:

  • Простые локальные правки: уровень low или minimal.
  • Стандартное написание функций, отладка: уровень medium или high.
  • Сложный рефакторинг архитектуры: уровень xhigh.

Для простых задач (замена строк, форматирование, написание комментариев) переключайтесь на легкую модель gpt-5.4-mini с уровнем рассуждений low. Это сэкономит время генерации и ваши лимиты токенов.

Используйте флагманскую модель gpt-5.5 с уровнем high только для сложных задач. Держите базовые настройки в сбалансированном среднем режиме, повышая или снижая мощность при необходимости.

💡 Резюме в одном предложении: Экономьте ресурсы: запускайте рутинные и простые задачи на легкой модели gpt-5.4-mini с низким уровнем рассуждений, оставляя флагман для сложного анализа.


05 Параллельное выполнение задач

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

Не ждите, пока ИИ закончит одну операцию, чтобы дать следующую. Вы можете запустить процесс рефакторинга в фоновом режиме, а сами продолжить писать код.

Для изоляции фоновых процессов используйте механизм git worktrees (подробно описанный в 25-й статье), чтобы Codex работал в отдельной папке и не перезаписывал файлы, которые вы редактируете в данный момент.

Способы параллельной работы:

СценарийМетод изоляцииРаздел
Запуск нескольких независимых задач одновременноКаждая задача запускается в своем git worktreeГлава 25 (Worktrees)
Делегирование вспомогательных проверокГлавный агент поручает сбор информации и тесты под-агентамГлава 21 (Subagents)

Схема организации работы: головной агент ведет разработку основного функционала, а вспомогательные задачи (написание тестов, запуск линтеров, проверку типов) делегирует под-агентам в изолированных каталогах worktree. К моменту завершения написания кода результаты проверок уже будут готовы.

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


06 Автоматическая валидация результатов силами ИИ

Один из лучших способов ускорить разработку — поручить проверку результатов работы самому Codex, исключив этап вашего ручного контроля.

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

Для этого укажите в промпте или файле AGENTS.md следующие требования для Codex:

  • Самостоятельно писать или обновлять модульные тесты для измененного кода.
  • Запускать тестовые пакеты (например, pytest или npm test) после внесения правок.
  • Проверять код линтерами и сборщиками на наличие синтаксических ошибок.
  • Проводить ревью полученного diff изменений на наличие уязвимостей перед сдачей работы.

Вы можете использовать встроенную команду /review для анализа незакоммиченных изменений.

Самый простой способ — дописать в конце вашего запроса фразу: «После внесения изменений запусти тесты командой npm test и сдавай работу только при их успешном прохождении». Это избавит вас от цепочки «ИИ внес правки → вы запустили тесты → тесты упали → вы просите ИИ исправить → ИИ правит». Codex сам пройдет этот цикл отладки в фоновом режиме и вернет вам уже рабочий результат.

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


07 Быстрый режим (Fast mode)

В Codex доступен быстрый режим (Fast mode), который увеличивает скорость генерации ответов поддерживаемых моделей примерно в 1.5 раза за счет повышенного списания кредитов (credits). Например, для модели gpt-5.5 стоимость запроса возрастает в 2.5 раза, а для gpt-5.4 — в 2 раза.

Управление быстрым режимом в CLI:

text
/fast on        Включить быстрый режим
/fast off       Выключить быстрый режим
/fast status    Проверить статус работы режима

Для постоянной активации режима пропишите в ~/.codex/config.toml:

toml
service_tier = "fast"

[features]
fast_mode = true

Обратите внимание: быстрый режим доступен только при авторизации через аккаунт ChatGPT, при работе по API-ключам действуют стандартные тарифы.

Помните, что Fast mode — это лишь вспомогательный инструмент. Основную экономию времени дает правильное управление контекстом и минимизация переделок. Используйте быстрый режим только при острой нехватке времени на сложных задачах.

💡 Резюме в одном предложении: Быстрый режим (Fast mode) увеличивает скорость ответов в 1.5 раза за счет повышенного расхода кредитов, используйте его как вспомогательное средство при дедлайнах.


08 Практика: переписываем нечеткий запрос по формуле

Закрепим навык составления эффективных запросов. Проведем эксперимент в тестовом репозитории.

Шаг 1: Формулировка размытого запроса

Отправьте Codex в чате простое текстовое сообщение:

text
Добавь логгер в проект

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

Шаг 2: Создание структурированного запроса

Перепишите этот же запрос по четырехкомпонентной схеме:

text
Цель: Настроить логирование процессов в файле logger.py с разделением на уровни INFO и ERROR.
Контекст: Использовать параметры конфигурации из файла @config.py.
Ограничения: Использовать только стандартную библиотеку logging.
Критерии готовности: Создается файл лога logs/app.log, запуск main.py записывает тестовую строку INFO без ошибок.

Шаг 3: Тестирование в новой сессии

Откройте новую чистую сессию и отправьте переписанный запрос.

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

💡 Резюме в одном предложении: Практическое упражнение доказывает: детализация промпта по схеме «Цель + Контекст + Ограничения + Критерии» сокращает количество раундов общения с ИИ до минимума.


Итоги

Мы разобрали продвинутые техники оптимизации времени и стоимости работы с Codex.

Главные выводы главы:

МетодСуть оптимизацииКлючевой нюанс
Главный приоритетМинимизация переделок кодаОшибки ИИ и возвраты назад отнимают больше всего времени
Формула запросаЦель + Контекст + Ограничения + КритерииИсключает необходимость ИИ додумывать параметры
Очистка контекстаСимвол @ и команда /compactПредотвращает переполнение памяти ИИ лишними файлами
Оптимизация моделейСнижение мощности для простых задачИспользование gpt-5.4-mini экономит токены и время
Параллельная работаФоны worktree и под-агентыПозволяет вести разработку, не дожидаясь ответов ИИ
Самопроверка ИИЗапуск тестов силами CodexИсключает ручную проверку сборки разработчиком

Теперь вы умеете:

  • Составлять структурированные запросы по четырехкомпонентной формуле для снижения количества переделок.
  • Управлять окном контекста сессии, своевременно сжимая историю и открывая новые чаты.
  • Оптимизировать скорость и стоимость вычислений за счет смены моделей под сложность задач.
  • Организовывать параллельное выполнение задач в фоновых окружениях.
  • Настраивать автоматическую проверку кода силами самого ИИ для экономии вашего времени.

Применение этих правил позволит вам выстроить максимально быстрый и комфортный процесс разработки.


В следующей статье 32 · Миграция с Claude Code мы поговорим о переходе на Codex для пользователей Claude Code. Мы сравним аналоги команд, структуру файлов конфигурации (CLAUDE.md vs AGENTS.md) и особенности адаптации привычных навыков под архитектуру Codex.


Рекомендуемое чтение