Перейти к содержимому
AIupick

Руководство: разработчики · задач: 18

ИИ для разработчиков: агенты для программирования, расходы и безопасная передача задач

Если вы уже пользуетесь автодополнением и чатом, следующий шаг — агенты, которые читают репозиторий, выполняют команды и открывают pull request. Сэкономит ли это время, зависит не столько от модели, сколько от настройки. Первая часть подходит для любого агента для программирования; части о Claude Code и Codex разбирают команды, файлы и настройки каждого из них по официальной документации.

  1. Любой агент для программирования

    01

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

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

    Пример

    «Исправь парсер дат для дат в формате недель ISO. Готово, когда проходит npm test -- dates, включая новый тест для 2026-W01. Не меняй тесты». Агент запускает тест, пока тот не пройдёт, и вставляет вывод; вы проверяете diff на 30 строк, а не догадку.

    Как это сделать

    1. 1Прежде чем передавать задачу, напишите проверку или укажите на неё: падающий тест или команду и её ожидаемый вывод.
    2. 2Дайте агенту задачу с помощью промпта на этой странице, указав файлы, которые ему можно менять, и те, которые нельзя.
    3. 3Пусть агент сам запустит проверку и вставит итоговый вывод.
    4. 4Проверяйте diff как pull request коллеги: пройденная проверка — начало ревью, а не его конец.

    Встроенная функция

    Промпт для копирования

    Задача: [изменение].
    Готово, когда: [тест или команда] проходит и выводит [ожидаемый вывод]. Запусти это перед завершением и вставь результат.
    Можно менять: [пути]. Нельзя менять: [пути], зависимости и тесты.
    Если не получается добиться прохождения, остановись и объясни почему, а не обходи проверку.

    Где всё может пойти не так

    • Иногда агенты добиваются прохождения теста, ослабляя его. Запретите менять тесты и ищите такие правки в diff.
    • Задача, слишком большая для одной проверки, слишком велика и для одной передачи. Разделите её.
  2. 02

    Запускайте задачи в облаке, пока заняты другим

    Облачные агенты работают с вашим репозиторием в собственной среде и возвращаются с изменениями на проверку, так что несколько задач выполняются, пока вы заняты другим. Это окупается только для чётко поставленных задач; расплывчатые возвращаются большими diff, которые приходится распутывать.

    Пример

    Три небольшие задачи до обеда: обновить одну зависимость, добавить недостающий индекс в базу данных, исправить нестабильный тест. Каждая уходит облачному агенту со своей проверкой, и после обеда вы проверяете три pull request вместо того, чтобы трижды переключать контекст.

    Как это сделать

    1. 1Выберите тот, что ближе к вашему коду: Codex Cloud, облачный агент Copilot на GitHub или Claude Code on the web.
    2. 2Убедитесь, что в его среде можно установить ваши зависимости и запустить тесты; без них агент действует наугад.
    3. 3Отправляйте небольшие независимые задачи, каждую со своей проверкой, как в задаче выше.
    4. 4Пусть каждый pull request сначала прочитает автоматический ревьюер, а затем проверьте его сами.

    Встроенная функция

    Промпт для копирования

    В этом репозитории: [задача].
    Контекст: [где в коде, связанный issue].
    Готово, когда: [тест или команда] проходит в твоей среде; вставь его вывод в описание pull request.
    Pull request должен содержать меньше [число] изменённых строк. Если нужно больше, остановись и предложи, как разделить задачу.

    Где всё может пойти не так

    • Тесты, которым нужны ненастроенные вами секреты или сервисы, пропускаются или падают. Зелёный прогон без них мало что доказывает.
    • Несколько агентов, работающих со связанным кодом, создают конфликтующие pull request. Разносите параллельные задачи по разным частям кода.
  3. 03

    Пусть проверки выполняются без вас

    Не тратьте время ревью на то, что может проверить машина. Хуки запускают форматтер, линтер и тесты после каждого изменения агента, а бот-ревьюер читает каждый pull request раньше вас. Тогда ваше ревью касается архитектуры, а не опечаток.

    Пример

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

    Как это сделать

    1. 1Запишите команды сборки, тестов и линтинга в файл инструкций, который агент читает в начале каждой сессии; название файла указано в документации каждого агента.
    2. 2В Claude Code добавьте хуки, которые запускают форматтер и тесты после каждой правки, чтобы агент видел сбои и исправлял их.
    3. 3Пусть бот проверяет каждый pull request: включите «Automatic review» в Codex или назначьте Copilot ревьюером.
    4. 4Когда агент дважды допускает одну и ту же ошибку, превратите её в тест или правило в файле инструкций.

    Встроенная функция

    Промпт для копирования

    Прочитай этот репозиторий и напиши файл инструкций для агентов, которые пишут код:
    1. Точные команды для установки, сборки, тестов, линтинга и форматирования.
    2. Структура проекта не более чем в 10 строках.
    3. Соглашения, которые новички здесь нарушают, с одним примером для каждого.
    4. Чего агент здесь не должен делать никогда, например менять миграции или редактировать сгенерированные файлы.
    Перечисляй только команды, которые ты успешно запустил; остальные помечай «не проверено».

    Где всё может пойти не так

    • Файл инструкций с командами, которые больше не работают, приучает агента его игнорировать. Перезапускайте эти команды, когда меняется настройка.
    • Боты-ревьюеры тоже уверенно ошибаются. Воспринимайте их комментарии как предложения.
  4. 04

    Подключайте агента к своим инструментам с минимальными правами

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

    Пример

    Агент читает issue 482 в трекере, находит трассировку стека в логах и сверяется с документацией библиотеки, затем называет файл с ошибкой — и всё это через токены только для чтения. Исправление он пишет в вашем репозитории, где вы проверяете его как обычно.

    Как это сделать

    1. 1Перечислите то, что чаще всего вставляете в чаты, например issues, логи ошибок, документацию или схему. Подключите это в первую очередь.
    2. 2Добавьте для каждого официальный MCP-сервер с токеном, у которого есть доступ только на чтение. В Gemini CLI расширение может включать MCP-сервер вместе с его настройкой.
    3. 3Дайте агенту задачу, для которой они нужны, и проверьте, что он обратился к нужному.
    4. 4Раз в несколько недель удаляйте серверы, которыми больше не пользуетесь.

    Встроенная функция

    Промпт для копирования

    Прежде чем что-либо менять: прочитай issue [id] в трекере, найди ошибку в логах и посмотри документацию по [библиотека].
    Скажи, что ты узнал из каждого источника и в каком файле, по-твоему, ошибка.
    Ничего не записывай ни в один из подключённых инструментов.

    Где всё может пойти не так

    • Веб-страница, issue или документ могут содержать текст, написанный, чтобы управлять агентом. Не давайте доступ на запись инструментам, которые читают контент извне.
    • Токены в конфигурационных файлах утекают. Используйте хранилище секретов клиента или переменные окружения, но никогда не репозиторий.
  5. 05

    Выбирайте между подпиской и оплатой за токены

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

    Пример

    Неделя ежедневной работы с агентом — это около 40 млн входных и 3 млн выходных токенов. Посчитайте их стоимость на странице цен API для вашей модели и сравните с месяцем подписки. Если подписка дешевле и её лимиты подходят под вашу неделю, берите её, а для CI держите ключ API с лимитом расходов.

    Как это сделать

    1. 1Проверьте, за что вы уже платите: тарифы ChatGPT включают Codex, а платные тарифы Claude — Claude Code.
    2. 2Запишите расход токенов в нескольких типичных сессиях — там, где агент его показывает.
    3. 3Посчитайте стоимость этого расхода на нашей странице цен API и сравните с подпиской.
    4. 4Для автоматизации и CI используйте ключи API с лимитом расходов, чтобы зациклившийся запуск не набрал большой счёт.

    Встроенная функция

    Промпт для копирования

    Вот мой расход за [число] типичных сессий: [входные и выходные токены]. Я работаю примерно [число] дней в неделю.
    Оцени мою месячную стоимость при оплате за токены по этим ценам: [вставьте со страницы цен API].
    Сравни её с подпиской за [цена] в месяц. Покажи расчёт, чтобы его можно было проверить.

    Где всё может пойти не так

    • У подписок тоже есть лимиты использования. Упереться в лимит посреди задачи — значит потерять время; смотрите на лимит, а не только на цену.
    • Больше всего на счёт влияет модель. Сравнивайте по той модели, которой действительно пользуетесь.
  6. Claude Code

    06

    Начинайте каждую сессию одинаково с помощью CLAUDE.md

    Если вы в начале каждой сессии объясняете команды сборки и соглашения, вы делаете то, для чего существует CLAUDE.md. Claude читает его в начале каждой сессии; держите его коротким и актуальным, и одни и те же ошибки перестанут повторяться.

    Пример

    Репозиторий, где Claude раз за разом запускал npm test вместо принятого в проекте pnpm test:unit и редактировал сгенерированные файлы. Две строки в CLAUDE.md — правильная команда и «никогда не редактируй src/gen/» — и обе ошибки прекращаются.

    Как это сделать

    1. 1Выполните /init в репозитории: команда анализирует кодовую базу и пишет начальный CLAUDE.md или предлагает улучшения для уже существующего.
    2. 2Командные правила, например команды сборки и тестов и стандарты кода, храните в ./CLAUDE.md и закоммитьте его. Личные предпочтения записывайте в ~/.claude/CLAUDE.md для всех проектов или в CLAUDE.local.md для текущего.
    3. 3Вместо того чтобы вставлять длинные документы целиком, ссылайтесь на них: @path/to/file импортирует другой файл при запуске.
    4. 4Каждый раз, когда Claude дважды ошибается в одном и том же, добавляйте одну строку, которая бы это предотвратила.

    Промпт для копирования

    Прочитай этот репозиторий и улучши CLAUDE.md. Объём — не больше 60 строк:
    1. Точные команды для сборки, тестов и линтинга.
    2. Структура в нескольких строках.
    3. Соглашения, которые новичок здесь нарушает.
    4. Файлы и папки, которые нельзя редактировать никогда.
    Удали всё, что больше не соответствует действительности. Команды, которые ты не запускал, помечай «не проверено».

    Где всё может пойти не так

    • Всё содержимое CLAUDE.md загружается в каждой сессии и занимает контекст. Выносите подробности в файлы, которые он импортирует.
    • Устаревшие инструкции хуже, чем никаких. Перепроверяйте команды, когда меняется настройка.

    Из официальной документации: Claude Code docs: How Claude remembers your project

  7. 07

    Сначала план, потом правки

    Когда изменение затрагивает много файлов, дорого обходится неверный подход, а не неверная строка. В режиме планирования (plan mode) Claude изучает код и пишет план, не редактируя исходные файлы; вы исправляете план, а затем утверждаете его.

    Пример

    Перевод аутентификации с cookies на токены в 14 файлах. В первом плане забыт мобильный клиент; вы указываете на это, в плане появляется ещё один шаг, и только после этого Claude начинает что-то редактировать.

    Как это сделать

    1. 1Нажимайте Shift+Tab, пока в строке состояния не появится «plan mode on», или начните промпт с /plan.
    2. 2Опишите изменение и то, что меняться не должно. Claude по-прежнему может запускать команды, чтобы изучить код, но во время планирования не редактирует файлы.
    3. 3Читайте план как проектную записку: не тот файл, упущенный случай, слишком большое изменение. Просите правки, пока план не станет верным, затем утвердите его.
    4. 4Перед следующей, не связанной задачей начните с чистого листа командой /clear.

    Промпт для копирования

    /plan Измени [что], чтобы [цель]. Ограничения: [что не должно меняться].
    Перечисли файлы, которые затронешь, порядок изменений, тест, который подтверждает каждый шаг, и всё, в чём ты не уверен. Ничего не редактируй, пока я не утвержу план.

    Где всё может пойти не так

    • Тревожный сигнал — план, который затрагивает больше файлов, чем вы ожидали. Прежде чем утверждать, спросите почему.
    • В режиме планирования команды для изучения кода всё равно выполняются. Безопасным для запуска незнакомый репозиторий он не делает.

    Из официальной документации: Claude Code docs: Choose a permission mode · Claude Code docs: Commands · Claude Code docs: Best practices

  8. 08

    Хватит подтверждать одну и ту же команду пятьдесят раз

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

    Пример

    Команда разработчиков в общих настройках проекта разрешает свои команды тестов и линтинга и запрещает чтение файлов .env. Запросов остаётся немного — только для команд, которые стоит прочитать, и ни одна сессия не может открыть ключи.

    Как это сделать

    1. 1Откройте /permissions, чтобы увидеть все правила и файл настроек, из которого взято каждое.
    2. 2Правила для всей команды запишите в .claude/settings.json и закоммитьте его. Личные правила — в ~/.claude/settings.json или .claude/settings.local.json.
    3. 3Правила проверяются в порядке deny, затем ask, затем allow, поэтому одно правило deny перевешивает любое allow.
    4. 4Переключайте режимы с помощью Shift+Tab: acceptEdits подтверждает правки файлов в рабочей папке. bypassPermissions отключает запросы подтверждения и проверки безопасности; документация советует использовать его только в изолированных контейнерах или виртуальных машинах без доступа к интернету.

    Промпт для копирования

    Посмотри на команды, которые ты выполнял в этой сессии. Предложи правила разрешений для .claude/settings.json: разреши команды только для чтения и тестов, которыми мы пользуемся каждый день, запрети всё, что читает секреты или удаляет файлы за пределами проекта, а для всего остального оставь запрос подтверждения. Объясни каждое правило одной строкой.

    Где всё может пойти не так

    • Правило allow, которое подходит под любую команду, — то же самое, что отсутствие запросов. Разрешайте конкретные команды.
    • После коммита правила в .claude/settings.json действуют для всей команды. Проверяйте их как код.

    Из официальной документации: Claude Code docs: Configure permissions · Claude Code docs: Settings files and precedence · Claude Code docs: Choose a permission mode

  9. 09

    Держите каждую сессию сосредоточенной на одной задаче

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

    Пример

    Исправив баг, вы просите рефакторинг в той же сессии, а Claude продолжает следовать старому обходному решению для этого бага. /clear и одно предложение контекста — и этого больше не происходит.

    Как это сделать

    1. 1Между не связанными задачами /clear начинает новый разговор с пустым контекстом.
    2. 2В длинной задаче /compact с указанием фокуса, например «/compact сохрани план и падающий тест», кратко обобщает всё, что было раньше.
    3. 3Широкий поиск поручайте субагенту: каждый работает в собственном контекстном окне, поэтому в вашу сессию возвращается только его ответ.
    4. 4Claude Code и сам сжимает контекст, когда приближается к лимиту; если сделать это самому в удачный момент, сохранится то, что выберете вы.

    Встроенная функция

    Промпт для копирования

    /compact Сохрани: цель, план, уже изменённые файлы и тест, который всё ещё падает. Исследование кода отбрось.

    Где всё может пойти не так

    • /clear стирает разговор. Всё, что понадобится снова, сначала запишите в CLAUDE.md.
    • От субагента вы получаете только его ответ. Просите пути к файлам и номера строк, а не только выводы.

    Из официальной документации: Claude Code docs: Commands · Claude Code docs: Best practices · Claude Code docs: Create custom subagents

  10. 10

    Запускайте две задачи одновременно без конфликтов

    Две сессии в одной рабочей копии правят одни и те же файлы, мешая друг другу. claude --worktree даёт каждой сессии собственную копию в собственной ветке, так что рефакторинг и исправление бага могут идти параллельно.

    Пример

    Обновление зависимости в одном worktree и исправление интерфейса в другом, оба выполняются, пока вы проверяете третий pull request. Ни одна сессия не видит недоделанные файлы другой.

    Как это сделать

    1. 1Запускайте каждую сессию командой claude --worktree <name> (или -w). Она создаёт git worktree в .claude/worktrees/<name>/ в ветке worktree-<name>.
    2. 2Добавьте .claude/worktrees/ в .gitignore, как рекомендует документация.
    3. 3Давайте каждой сессии одну задачу с собственной проверкой, чтобы проверять их по очереди.
    4. 4Проверяйте и сливайте каждую ветку как любой другой pull request.

    Промпт для копирования

    Ты работаешь в worktree в ветке worktree-[имя]. Задача: [одно изменение]. Готово, когда: [тест или команда] проходит. Делай коммиты только в эту ветку; не выполняй merge или rebase других веток.

    Где всё может пойти не так

    • Каждый worktree — отдельная папка, поэтому зависимости и результаты сборки у них не общие. Устанавливайте зависимости в каждом.
    • Две задачи, затрагивающие одни и те же файлы, всё равно конфликтуют при слиянии, с worktree или без.

    Из официальной документации: Claude Code docs: Run parallel sessions with worktrees

  11. 11

    Отменяйте неверный шаг с помощью rewind

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

    Пример

    Рефакторинг, который три промпта назад пошёл не в ту сторону. Откат к моменту до него восстанавливает файлы и разговор, и вы переформулируете запрос, вместо того чтобы уговаривать Claude вернуть код.

    Как это сделать

    1. 1Дважды нажмите Esc в пустой строке ввода или введите /rewind (также работают /checkpoint и /undo).
    2. 2Выберите момент до того, как всё пошло не так, и восстановите разговор, код или и то и другое.
    3. 3Помните об ограничениях: файлы, изменённые командами оболочки вроде rm, mv или cp, не восстанавливаются, как и правки, сделанные вне Claude Code или в другой сессии.
    4. 4Делайте коммит перед рискованными шагами. Контрольные точки нужны для быстрого восстановления внутри сессии, они не заменяют git.

    Промпт для копирования

    Прежде чем начать, закоммить текущее состояние с сообщением «контрольная точка перед [задача]». Затем [задача]. Спрашивай меня перед любой командой, которая удаляет или перемещает файлы.

    Где всё может пойти не так

    • Rewind не вернёт файл, удалённый командой. Это может только git.
    • Правки, которые вы тем временем сделали вручную, тоже не сохраняются. Закоммитьте их перед откатом.

    Из официальной документации: Claude Code docs: Checkpointing · Claude Code docs: Commands

  12. 12

    Запускайте Claude Code из скриптов и CI

    Тот же агент работает и без чата: claude -p принимает промпт, выполняет работу и завершается с кодом, который может проверить ваш скрипт. В CI флаг --bare пропускает ваши локальные хуки, навыки, MCP-серверы и CLAUDE.md, поэтому запуск ведёт себя везде одинаково.

    Пример

    Ночное задание запускает claude -p с промптом «обнови changelog по pull request, слитым сегодня» и --output-format json и проваливает сборку, если код завершения не 0, так что сбойный запуск замечают на следующее утро.

    Как это сделать

    1. 1claude -p "..." работает в неинтерактивном режиме. --output-format json или stream-json выдаёт вывод, который скрипт может разобрать.
    2. 2При успехе код завершения 0, при сбое — ненулевой, так что CI может на него опираться.
    3. 3Добавляйте --bare в CI для запусков, которые не должны зависеть от локальной настройки.
    4. 4Для pull request команда /install-github-app настраивает Claude Code GitHub Actions (только для репозиториев на github.com); после этого упоминайте @claude в pull request или в комментарии к issue.

    Промпт для копирования

    claude -p "Прочитай diff относительно main. Перечисли все изменения, которые добавляют зависимость, затрагивают аутентификацию или меняют миграцию базы данных, в виде JSON: {\"files\": [], \"reason\": \"\"}. Если таких нет, верни пустой список." --output-format json

    Где всё может пойти не так

    • Скрипт работает с теми правами, которые вы ему дали. Давайте CI минимум необходимого.
    • /install-github-app работает только с репозиториями на github.com.

    Из официальной документации: Claude Code docs: Run Claude Code programmatically · Claude Code docs: GitHub Actions

  13. Codex

    13

    AGENTS.md: инструкции, с которых начинается каждая задача Codex

    Прежде чем приступить к работе, Codex читает AGENTS.md — от вашего глобального файла до папки, в которой он работает. Запишите команды и правила один раз, рядом с кодом, к которому они относятся; приоритет у ближайшего файла.

    Пример

    Репозиторий с веб-приложением и платёжным сервисом. В корневом AGENTS.md — общие команды; payments/AGENTS.md добавляет «никогда не меняй округление валют без теста». Работа в payments/ следует обоим файлам, а там, где они расходятся, приоритет у более близкого.

    Как это сделать

    1. 1Выполните /init в CLI, чтобы создать начальный AGENTS.md в текущей папке.
    2. 2Личные указания храните в ~/.codex/AGENTS.md, а правила проекта — в репозитории. У подпапки может быть собственный файл; приоритет у файлов, которые ближе к месту работы Codex.
    3. 3Делайте файлы короткими: их общий размер ограничен, по умолчанию 32 KiB.
    4. 4Добавьте раздел «## Code Review Rules»: ревью Codex на GitHub следуют ему.

    Промпт для копирования

    Прочитай этот репозиторий и напиши AGENTS.md:
    1. Точные команды для установки, сборки, тестов и линтинга.
    2. Структура в нескольких строках.
    3. Соглашения, которые новичок здесь нарушает.
    4. Раздел «## Code Review Rules» с тем, на что ревьюер должен указывать всегда.
    Перечисляй только команды, которые ты успешно запустил; остальные помечай «не проверено».

    Где всё может пойти не так

    • Длинные файлы работают против вас: общий размер по умолчанию ограничен 32 KiB.
    • Файл в подпапке, который молча противоречит корневому, сбивает с толку и людей, и Codex. Укажите, что именно он переопределяет.

    Из официальной документации: Codex docs: AGENTS.md · Codex docs: CLI commands · Codex docs: GitHub integration

  14. 14

    Решите, сколько Codex может делать самостоятельно

    Режим разрешений определяет, что Codex делает, не спрашивая. «Ask for approval» работает внутри рабочей области и останавливается, прежде чем выйти за её пределы; «Full access» убирает песочницу и вопросы. Выбирайте для каждой задачи, а не раз и навсегда.

    Пример

    Сначала вы читаете незнакомый репозиторий в режиме только для чтения, затем переключаетесь на «Ask for approval», чтобы исправить один баг. Codex правит файлы внутри репозитория, но останавливается и спрашивает, прежде чем выйти за его пределы.

    Как это сделать

    1. 1В CLI команда /permissions переключает режим, а /status показывает действующую политику подтверждений и папки, доступные для записи.
    2. 2«Ask for approval» — рекомендуемый режим по умолчанию: он редактирует файлы и выполняет команды внутри рабочей области и останавливается, прежде чем выйти за её пределы.
    3. 3«Approve for me» сохраняет ту же песочницу, но отправляет запросы на подтверждение не вам, а на автоматическую проверку.
    4. 4«Full access» снимает ограничения на файловую систему и сеть. Документация сопровождает его предупреждением; используйте этот режим только в средах, которые не жалко выбросить.

    Промпт для копирования

    Прежде чем начать, выполни /status и сообщи мне политику подтверждений и папки, доступные для записи. Затем [задача]. Спрашивай перед любой командой, которой нужна сеть или которая пишет за пределами этого репозитория.

    Где всё может пойти не так

    • В режиме «Approve for me» запросы не читает ни один человек. Используйте его там, где неверное действие легко отменить.
    • «Full access» действует на весь компьютер, а не только на репозиторий.

    Из официальной документации: Codex docs: Permission modes · Codex docs: Sandboxing · Codex docs: Approvals and security · Codex docs: CLI commands

  15. 15

    Запускайте Codex из скриптов и CI

    codex exec выполняет задачу без чата: ход работы выводится в stderr, а в stdout — только итоговое сообщение, так что скрипт может использовать ответ. По умолчанию запуск идёт только с правом чтения; давайте доступ на запись, лишь когда он нужен для задачи.

    Пример

    Скрипт релиза запускает codex exec с промптом «напиши примечания к выпуску по коммитам с последнего тега» и сохраняет stdout в RELEASE.md. Доступа только на чтение достаточно, потому что файл записывает сам скрипт.

    Как это сделать

    1. 1codex exec "..." работает в неинтерактивном режиме и по умолчанию использует песочницу только для чтения.
    2. 2Добавьте --sandbox workspace-write, если нужно редактировать файлы; --full-auto устарел.
    3. 3--json выдаёт поток событий в формате JSON Lines для скриптов, которым нужен каждый шаг.
    4. 4В GitHub Actions openai/codex-action@v1 запускает codex exec за вас.

    Промпт для копирования

    codex exec "Прочитай изменения с тега [v1.2.0]. Напиши примечания к выпуску, сгруппированные по разделам Added, Changed и Fixed: по одной строке на изменение, словами, понятными пользователю, без хешей коммитов."

    Где всё может пойти не так

    • В старых руководствах до сих пор используется --full-auto. Этот флаг устарел; используйте --sandbox workspace-write.
    • Задание, которое только читает, должно оставаться с доступом только на чтение, и в CI тоже.

    Из официальной документации: Codex docs: Non-interactive mode · Codex docs: GitHub Action

  16. 16

    Получайте ревью перед push

    Codex проверяет рабочее дерево, ветку или pull request. На GitHub он отмечает только самые серьёзные проблемы, P0 и P1, поэтому его комментарии стоит читать. Запускайте ревью перед push и поручите ему проверять каждый pull request.

    Пример

    Перед push миграции /review отмечает, что у нового столбца нет значения по умолчанию, поэтому на существующих строках миграция упадёт. Одна минута перед push вместо проваленного деплоя.

    Как это сделать

    1. 1/review в CLI проверяет рабочее дерево. codex review делает то же самое без чата — относительно базовой ветки, коммита или незакоммиченных изменений.
    2. 2На GitHub оставьте в pull request комментарий @codex review.
    3. 3Включите автоматические ревью в разделе «Personal preferences» настроек Codex; тогда комментарий не нужен.
    4. 4Запишите правила своей команды в разделе «## Code Review Rules» файла AGENTS.md.

    Встроенная функция

    Промпт для копирования

    ## Code Review Rules
    - Указывай на любое изменение аутентификации или прав доступа.
    - Указывай на миграции базы данных без возможности отката.
    - Указывай на новые зависимости и оценивай, нужны ли они.
    - Форматирование игнорируй: за него отвечает линтер.

    Где всё может пойти не так

    • Ревью на GitHub отмечают только проблемы P0 и P1. Отсутствие комментариев не значит, что архитектура верна.
    • Ревью — это второе мнение, а не прогон тестов. Тесты остаются.

    Из официальной документации: Codex docs: CLI commands · Codex docs: GitHub integration

  17. 17

    Передавайте задачи в Codex Cloud

    Codex Cloud продолжает работать, пока ваш компьютер спит; каждая задача выполняется в собственной рабочей области, созданной из среды, которую вы настраиваете один раз. С правильно настроенной средой он может устанавливать зависимости, собирать и тестировать; без неё — действует наугад.

    Пример

    Перед встречей вы отправляете четыре небольших рефакторинга через codex cloud exec, каждый в своей рабочей области из одной и той же среды. Для самого сложного вы запросили три попытки и оставляете лучшую; после встречи проверяете четыре diff.

    Как это сделать

    1. 1Создайте среду с репозиториями, зависимостями, инструментами и настройками доступа, которые нужны задачам. Новые среды сохраняют скрипт установки и навык запуска.
    2. 2Настройте доступ к интернету для каждой среды: только менеджеры пакетов, выбранные домены или всё.
    3. 3Запускайте задачи из ChatGPT, из расширения для IDE для более долгих работ или из терминала командой codex cloud exec; --attempts 1-4 запрашивает несколько попыток для сравнения.
    4. 4Code Review и интеграции с GitHub и Linear пока работают на старой версии Codex Cloud (Legacy), которую OpenAI планирует закрыть.

    Встроенная функция

    Промпт для копирования

    codex cloud exec --attempts 3 "Задача: [изменение]. Контекст: [файлы]. Готово, когда [тест] проходит в этой среде. Diff должен быть меньше [число] строк."

    Где всё может пойти не так

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

    Из официальной документации: Codex docs: Cloud environments · Codex docs: CLI commands · Codex docs: IDE extension

  18. 18

    Настройте Codex один раз: конфигурация, профили и MCP

    Если вы в каждой сессии вручную меняете модель и настройки, запишите их в config.toml. Codex каждый раз читает ~/.codex/config.toml, а в доверенных проектах — ещё и настройки проекта; профиль переключает сразу весь набор.

    Пример

    Профиль «deep» с высоким уровнем рассуждений для вопросов проектирования и настройки по умолчанию для быстрых исправлений. codex --profile deep перед вопросом об архитектуре; просто codex для всего остального.

    Как это сделать

    1. 1Задайте модель и уровень рассуждений по умолчанию в ~/.codex/config.toml (model и model_reasoning_effort). Этот файл общий для CLI и расширения для IDE.
    2. 2Создайте профиль отдельным файлом ~/.codex/<name>.config.toml и запускайте с --profile <name>.
    3. 3Добавляйте MCP-серверы командой codex mcp add <name> -- <command>; каждый становится таблицей [mcp_servers.<name>], а /mcp показывает список активных.
    4. 4/status показывает действующие настройки, а codex resume --last продолжает последнюю сессию в этой папке.

    Промпт для копирования

    Прочитай ~/.codex/config.toml и .codex/config.toml этого проекта. Скажи, какие модель, уровень рассуждений, песочница и MCP-серверы действуют сейчас, из какого файла взята каждая настройка и что противоречит друг другу.

    Где всё может пойти не так

    • Настройки проекта загружаются только для доверенных проектов. Если какая-то настройка, кажется, игнорируется, сначала проверьте это.
    • Теперь профили — это отдельные файлы. Руководства, где [profiles.name] записывают внутри config.toml, устарели.

    Из официальной документации: Codex docs: MCP · Codex docs: Config basics · Codex docs: Advanced config · Codex docs: CLI commands

Правила: разработчики

  • Никогда не вставляйте в промпт секреты, ключи или данные клиентов; не держите их в индексируемых папках.
  • Запускайте агентов в отдельной ветке с разрешениями, при которых перед командами запрашивается подтверждение; проверяйте каждый diff.
  • Прежде чем сливать код, написанный агентом, запустите тесты сами.
  • Установите лимит расходов на каждый ключ API, которым пользуется агент.

Подробнее

Esc
↑ ↓ — перемещениеEnter — открыть