pimenov.ai

Осваиваем Codex Mobile для инженерной работы

Перевод полевого руководства Thomas Ricouard (OpenAI) о том, как превратить телефон в центр управления разработкой с Codex Mobile: worktree-ы, боковые чаты, планы и цели, обзор кода и работа с локальными данными телефона.

ИИРазработкаПрактика
📲
Этот материал я нашёл в X — его опубликовал Thomas Ricouard (@Dimillian), отвечающий за Developer Experience в команде Codex в OpenAI; разработчик под iOS/macOS на Swift/SwiftUI.

Мне понравился этот материал, поэтому я перевёл его для своего сайта pimenov.ai.

Оригинал: пост в X

Notion image

Как превратить телефон в центр управления Codex?

На первый взгляд кажется, что это просто способ проверять задачу Codex с телефона. Это полезно, но упускает главное. Сила Codex Mobile в том, что приложение позволяет запускать, направлять, проверять и организовывать работу, которая идёт на ваших рабочих машинах, — и при этом не притворяется, что мобильное устройство должно быть крошечным терминалом.

За последний месяц мы добавили в этот цикл удивительно много глубины: worktree-ы, цели, боковые чаты, встроенный обзор кода, очередь и корректировку промптов, вложения, навыки и плагины, архивирование тредов и длинный список мелочей, которые делают приложение пригодным для серьёзной работы.

Это то самое руководство, которое я хотел бы дать каждому новому продвинутому пользователю. Здесь собраны заметки, советы и приёмы, которые я накопил за два месяца в OpenAI, и то, как я работаю с Codex и особенно с Codex Mobile.

Правильная ментальная модель: ваш телефон — это пульт управления

Сама задача, запуск Codex и код по-прежнему выполняются там, где им и место: на вашем Mac, машине с Windows, devbox или другом подключённом хосте. Codex Mobile даёт вам нативный интерфейс для управления этой работой.

В качестве хоста можно настроить любую машину на macOS или Windows, способную запускать приложение Codex Desktop или Codex CLI. Подробнее о настройке — на странице нашей документации: https://developers.openai.com/codex/remote-connections

Начинайте задачу с правильными границами

Notion image

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

Это открывает несколько полезных сценариев прямо с телефона:

  • Использовать текущий checkout для быстрого исследования.
  • Создать новый worktree для изменения, которое должно оставаться изолированным.
  • Стартовать с нужной базовой ветки, а не чинить состояние Git потом.
  • Дать настройке окружения отработать до того, как просить Codex собирать или тестировать.

Да, всё верно: начиная с последней версии вы можете обращаться к тем же скриптам окружения, что настроили в десктопном приложении Codex, прямо с телефона. То есть если вы создаёте worktree, вы увидите соответствующее окружение в списке, и этот скрипт выполнится сразу после создания worktree.

Окружения — мощная функция десктопного приложения Codex, подробнее можно почитать здесь: https://developers.openai.com/codex/app/local-environments

Примечание: редактировать эти скрипты из Codex Mobile пока нельзя.

Используйте боковые чаты как ответвление мысли

Notion image

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

Именно эту проблему решают боковые чаты.

Используйте /side, чтобы открыть лёгкую беседу, связанную с текущим тредом. Команда /side <промпт> откроет её с уже готовым вопросом. А ещё лучше — выделите фрагмент текста в переписке и выберите Ask in side chat. Выделенный отрывок станет отправным контекстом для новой беседы.

Боковые чаты я использую для вопросов вроде:

  • Почему Codex выбрал именно такую архитектуру?
  • Что на самом деле означает эта ошибка?
  • Согласуется ли это поведение с десктопным приложением?
  • Дай мне вариант этой детали реализации в формате release notes.
  • Что мне стоит проверить, прежде чем одобрить эту команду?

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

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

Plan — для пути, Goal — для результата

Мобильное приложение полноценно поддерживает /goal и /plan: оно показывает вопросы инструмента планирования, а также интерфейс /goal, где видно, как долго цель уже выполняется, и где её можно отредактировать, поставить на паузу и так далее.

Режим плана и цели решают разные задачи.

Режим плана просит Codex предложить путь реализации до того, как менять код. Это полезно, когда задача недостаточно определена, рискованна или, скорее всего, затронет несколько систем.

Цель — это что-то долговременное. Она говорит Codex, какой результат нужно последовательно преследовать на протяжении многих шагов. На мобильном /goal позволяет создавать такую цель и управлять ею, а прогресс остаётся виден по ходу работы.

Практичный сценарий выглядит так:

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

Но, честно говоря, чаще всего режим плана напрямую вам даже не нужен. Просто пообщайтесь с Codex какое-то время о конкретной задаче и, когда вас устроят детали реализации, попросите его установить это как цель.

Codex пишет цели лучше нас, так что часто стоит дать ему сделать это за вас.

Планы отвечают на вопрос «как нам к этому подойти?». Цели отвечают на вопрос «что должно быть верно, прежде чем мы закончим?».

Главное, что нужно помнить при работе с целью: задавайте проверяемое конечное состояние, которое не слишком широко. Если вы скажете Codex «сделай на 100% как X или Y», он, скорее всего, зайдёт слишком далеко и потратит лишние токены.

Но теперь, когда вы можете следить за токенами с телефона, это уже не такая большая проблема, верно?

Это ВАШ телефон!

Notion image

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

Можно прикрепить фото, сделать снимок, просмотреть файлы, записать голосовой промпт и многое другое!

Звучит, возможно, банально в такой формулировке, но память о том, что вы на телефоне, открывает множество мощных сценариев — особенно если вы работаете над нативным мобильным или веб-приложением.

Например, работая над ChatGPT для iOS, я, заметив проблему, часто сразу делаю скриншот и отправляю его в задачу для быстрого исправления. Мне не нужно возвращаться к компьютеру и так далее.

Более того, если я дома, в той же сети Wi-Fi, я могу собрать и запустить приложение прямо на своём устройстве, чтобы проверить результат треда Codex.

Ещё одна возможность: начать запись промпта на переднем плане и продолжить её в фоне!

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

Проверяйте код, не покидая беседу

Notion image

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

У этого процесса есть несколько уровней:

  • Открыть сводку изменённых файлов для быстрой проверки.
  • Перейти к полному исходнику, когда в diff не хватает окружающего контекста.
  • Добавить встроенные комментарии для точечных правок.
  • Использовать команду review, чтобы проверить локальные изменения или сравнить с веткой.
  • Привязать файл обратно в чат, когда нужно, чтобы Codex рассуждал именно о нём.

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

Более крупный урок

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

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

Компьютер по-прежнему делает работу. А телефон держит меня у руля.


По теме

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

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov