Codex 101
Этот курс — практическое руководство по Codex, AI-агенту для кода от OpenAI. Курс сделан для инженеров данных, BI-разработчиков и аналитиков. Мы начнём с установки и настройки, а потом перейдём к реальным задачам: dbt, SQL, Airflow, ревью кода и автоматизация в CI.
Официальная документация Codex: learn.chatgpt.com/docs. Старые ссылки
developers.openai.com/codexтеперь ведут туда же.
Данные актуальны на ноябрь 2026 года. Codex обновляется почти каждую неделю. Если команда из курса не работает, проверьте документацию и список изменений.
Для кого этот курс
Заголовок раздела «Для кого этот курс»- Вы пишете SQL, dbt-модели, пайплайны на Python или DAG в Airflow.
- Вы хотите, чтобы агент делал рутинную работу, а вы проверяли результат.
- Вы уже знаете Git и умеете работать в терминале.
Если вы проходили наш курс Claude Code 101, многое будет знакомо. Все современные агенты устроены похоже. В Модуле 12 есть таблица соответствия.
Что нужно для старта
Заголовок раздела «Что нужно для старта»- Компьютер с macOS, Linux или Windows
- Аккаунт ChatGPT (план Plus или выше) или API-ключ OpenAI
- Git-репозиторий, с которым будете работать. Лучше начать с учебного проекта, а не с рабочего
Доступ из России
OpenAI официально не работает в России. Использование сервиса из неподдерживаемой страны может привести к блокировке аккаунта (список стран). Учитывайте это, особенно для рабочих задач. Альтернативы описаны в курсе Claude Code 101, Модуль 10 — например, китайские модели и OpenCode.
Содержание
Заголовок раздела «Содержание»Модуль 1: Что такое Codex
Заголовок раздела «Модуль 1: Что такое Codex»Codex — AI-агент для разработки от OpenAI. Он читает ваш проект, пишет и меняет код, запускает команды и тесты, делает ревью. Вы ставите задачу обычным языком, а Codex выполняет её по шагам.
Агент, а не чат
Заголовок раздела «Агент, а не чат»Обычный чат даёт ответ, а дальше всё делаете вы: копируете код, запускаете, исправляете ошибки. Агент работает в цикле:
- Читает файлы проекта
- Планирует изменения
- Меняет код
- Запускает команды: тесты, линтер,
dbt compile - Смотрит на результат и исправляет ошибки
- Повторяет, пока задача не готова
Ваша роль меняется. Вы ставите задачу, задаёте правила и проверяете результат.
Где работает Codex
Заголовок раздела «Где работает Codex»У Codex несколько «поверхностей». Все они используют один аккаунт и одни настройки.
| Где | Что это | Когда удобно |
|---|---|---|
| CLI | Агент в терминале. Открытый код (Apache-2.0) | Основная работа с кодом, скрипты, CI |
| Расширение для IDE | VS Code, Cursor, Windsurf. В JetBrains и Xcode — через их встроенные интеграции | Работа в привычном редакторе |
| Приложение ChatGPT | Десктоп для macOS, Windows, Linux. Параллельные чаты, worktree, задачи по расписанию | Несколько задач одновременно |
| Облако | Задачи выполняются на серверах OpenAI, в контейнере | Долгие задачи, пока вы заняты другим |
| GitHub | @codex review в комментарии к PR, автоматическое ревью | Ревью кода в команде |
| Slack, Linear | Задача из сообщения или issue | Командная работа |
| SDK и GitHub Action | @openai/codex-sdk, openai/codex-action | Свои инструменты и CI |
В этом курсе мы в основном работаем в CLI. Всё, что вы узнаете, работает и в других поверхностях.
Codex работает на моделях семейства GPT-6.
| Модель | Особенность | Когда использовать |
|---|---|---|
gpt-6-astra | Самая сильная | Сложная архитектура, трудные баги |
gpt-6.1-sol | Почти как Astra, но дешевле. Контекст 500K токенов | Основная работа |
gpt-6.1-terra | Быстрая (нужен CLI 0.159.0+) | Типовые задачи |
gpt-6-luna | Самая дешёвая, высокие лимиты | Простые задачи, массовые правки |
Модели с codex в названии (например, gpt-5.3-codex) больше не используются. GPT-5.5 убрали из Codex для входа через ChatGPT 14 октября 2026 года.
Уровень рассуждений (reasoning effort) — сколько модель «думает» перед ответом:
| Уровень | Когда |
|---|---|
low (в интерфейсе — Light) | Простые и чётко описанные задачи |
medium, high | Сложные изменения, отладка |
xhigh, max | Долгие автономные задачи |
ultra | Самые сложные задачи. Codex сам запускает субагентов |
Больше рассуждений — лучше качество, но медленнее и дороже. Модель и уровень меняются командой /model.
| План | Цена в месяц | Что даёт |
|---|---|---|
| Free, Go | $0, $8 | GPT-6 Luna в приложении (доступ открывают постепенно) |
| Plus | $20 | CLI, IDE, веб, iOS. Модели Sol и Luna |
| Pro | $100 / $200 / $500 | Намного больше лимитов, без пятичасового лимита |
| Business | $20–25 за пользователя | Для команд |
| Enterprise, Edu | По запросу | Для компаний |
| API-ключ | Оплата за токены | Без облачных функций (ревью в GitHub, Slack) |
Подробнее о лимитах — в Модуле 10. Цены меняются — проверяйте на странице цен.
Итоги модуля
Заголовок раздела «Итоги модуля»- Codex — агент: он сам читает код, запускает команды и исправляет ошибки
- Работает в терминале, IDE, приложении, облаке и GitHub
- Модели GPT-6: Astra (сильная), Sol (основная), Terra (быстрая), Luna (дешёвая)
- Для старта достаточно плана Plus
Модуль 2: Установка и первый запуск
Заголовок раздела «Модуль 2: Установка и первый запуск»Установка
Заголовок раздела «Установка»# macOS и Linux — официальный скрипт (он же обновляет)curl -fsSL https://chatgpt.com/codex/install.sh | sh
# Или через Homebrewbrew install --cask codex
# Или через npmnpm install -g @openai/codex
# Проверить версиюcodex --version
# Обновитьcodex updateWindows: Codex работает нативно, со своей песочницей. WSL2 нужен, только если вам нужны Linux-инструменты.
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"# Через браузер — аккаунт ChatGPT (рекомендуется)codex login
# Сервер без браузера — вход по коду устройстваcodex login --device-auth
# Через API-ключprintenv OPENAI_API_KEY | codex login --with-api-key| Способ | Плюсы | Минусы |
|---|---|---|
| Аккаунт ChatGPT | Входит в подписку, есть облако и ревью в GitHub | Лимиты плана |
| API-ключ | Платите только за использование, удобно для CI | Нет облачных функций, можно потратить много |
Данные входа хранятся в ~/.codex/auth.json. Это секрет — не коммитьте его и не показывайте агентам.
Первый запуск
Заголовок раздела «Первый запуск»cd ~/projects/my-dbt-projectcodexCodex спросит, доверяете ли вы этой папке. Отвечайте «да» только для своих проектов. Для чужих репозиториев — нет. Настройки проекта (.codex/config.toml, хуки) загружаются только в доверенных папках.
Первая задача — пусть Codex изучит проект:
Объясни структуру этого проекта. Какие есть модели dbt, как они связаны,какие команды нужны для сборки и тестов?Codex прочитает файлы и ответит. Он ничего не меняет, пока вы не попросите.
Следующий шаг — создать файл инструкций:
/initКоманда создаст AGENTS.md — «README для агента». Подробнее — в Модуле 4.
Главные команды
Заголовок раздела «Главные команды»| Команда | Что делает |
|---|---|
/init | Создаёт AGENTS.md для проекта |
/model | Меняет модель и уровень рассуждений |
/permissions | Меняет режим разрешений |
/plan | Режим планирования: сначала план, потом код |
/goal | Работать в цикле, пока цель не достигнута |
/review | Ревью изменений |
/diff | Показывает изменения в файлах |
/status | Текущие настройки и использование лимитов |
/usage | Использование лимитов |
/compact | Сжимает историю, когда контекст заполнен |
/new, /clear | Новый разговор |
/resume | Вернуться к прошлому разговору |
/fork | Создать ветку разговора |
/side (или /btw) | Быстрый вопрос в стороне от основной задачи |
/mention | Добавить файл в контекст |
/mcp | Список MCP-серверов |
/skills | Список навыков |
/subagents | Переключение между потоками субагентов |
/agents | Центр управления агентами: чаты и агенты на подключённом сервере |
/hooks | Загруженные хуки |
/import | Импорт настроек из Claude Code или Cursor |
/fast | Быстрый режим (дороже по лимитам) |
/exit | Выход |
Полный список: learn.chatgpt.com/docs/developer-commands.
Горячие клавиши
Заголовок раздела «Горячие клавиши»| Клавиши | Что делает |
|---|---|
@ | Добавить файл в сообщение |
! | Выполнить shell-команду |
Esc Esc (пустое поле) | Изменить прошлое сообщение и продолжить с него |
Tab во время работы | Поставить сообщение в очередь |
Enter во время работы | Добавить уточнение в текущую задачу |
Ctrl+R | Поиск по истории |
Ctrl+L | Очистить экран |
Команды терминала
Заголовок раздела «Команды терминала»| Команда | Что делает |
|---|---|
codex | Интерактивный режим |
codex "задача" | Запуск сразу с задачей |
codex exec "задача" | Без интерфейса — для скриптов и CI (Модуль 9) |
codex resume | Продолжить прошлую сессию |
codex review | Ревью без интерфейса |
codex cloud | Облачные задачи |
codex apply | Применить изменения из облачной задачи |
codex mcp | Управление MCP-серверами |
codex app | Открыть десктоп-приложение |
codex doctor | Проверить установку |
Итоги модуля
Заголовок раздела «Итоги модуля»- Установка — одна команда. Вход — через аккаунт ChatGPT
- Доверяйте только своим папкам
- Начните с вопроса о проекте и
/init - Выучите
/model,/permissions,/plan,/review,/status
Модуль 3: Безопасность: песочница и разрешения
Заголовок раздела «Модуль 3: Безопасность: песочница и разрешения»Это главная сильная сторона Codex. По умолчанию все команды выполняются в песочнице — изолированной среде на уровне операционной системы. Изучите этот модуль до того, как дадите агенту реальную работу.
Два механизма
Заголовок раздела «Два механизма»Codex защищает вас двумя независимыми механизмами:
- Песочница (
sandbox_mode) — что команды могут делать технически - Политика подтверждений (
approval_policy) — когда Codex спрашивает вас
Режимы песочницы
Заголовок раздела «Режимы песочницы»| Режим | Что можно | Когда |
|---|---|---|
read-only | Только читать файлы | Изучение проекта, ревью, CI |
workspace-write | Читать и менять файлы в папке проекта. Сеть выключена | Обычная работа (по умолчанию в Git-папке) |
danger-full-access | Всё, без ограничений | Только в контейнере или одноразовой VM |
Даже в workspace-write папки .git, .codex, .agents и .aws остаются только для чтения.
Как работает песочница:
| ОС | Технология |
|---|---|
| macOS | Seatbelt (встроенная песочница macOS) |
| Linux, WSL2 | bubblewrap |
| Windows | Нативная песочница Windows |
Политика подтверждений
Заголовок раздела «Политика подтверждений»| Политика | Поведение |
|---|---|
on-request | Команды внутри песочницы — без вопросов. Выход из песочницы или сеть — спрашивает вас |
never | Никогда не спрашивает. Что нельзя в песочнице — просто не выполняется |
granular | Тонкая настройка по типам действий |
Значения untrusted и on-failure устарели. Если они есть в старом конфиге, удалите их: untrusted может помешать Codex запуститься.
Режим «Auto»
Заголовок раздела «Режим «Auto»»Режим по умолчанию для работы — Auto: workspace-write + on-request. Codex свободно меняет файлы проекта и запускает тесты, но спрашивает разрешение на доступ к сети и файлам вне проекта.
Сменить режим: команда /permissions или флаги при запуске:
# Только чтение — для изучения чужого кодаcodex --sandbox read-only
# Обычная работаcodex --sandbox workspace-write --ask-for-approval on-requestВ workspace-write сеть выключена. Поэтому pip install или dbt deps не сработают без разрешения. Варианты:
- Codex спросит разрешение — подтвердите разово
- Включить сеть для проекта:
[sandbox_workspace_write]network_access = trueВеб-поиск по умолчанию работает из кэша (web_search = "cached"). Живой поиск — флаг --search. Результаты из интернета — это непроверенные данные: на странице может быть скрытая инструкция для агента.
Автоматическое ревью действий
Заголовок раздела «Автоматическое ревью действий»Можно поручить проверку опасных действий отдельному агенту-ревьюеру, а не себе:
approvals_reviewer = "auto_review" # по умолчанию "user"Если ревьюер отклонил нужное действие, команда /approve повторит его один раз.
Почему это важно: реальный случай
Заголовок раздела «Почему это важно: реальный случай»В июле 2026 года Саймон Уиллисон описал случай: Codex работал в режиме полного доступа, без песочницы и без автоматического ревью. Агент попытался переопределить $HOME и в итоге удалил домашнюю папку пользователя.
Выводы:
- Не отключайте песочницу на своём компьютере
- Для полной автономии используйте контейнер или облако
- Делайте бэкапы и коммитьте часто
Флаг, который не стоит использовать
Заголовок раздела «Флаг, который не стоит использовать»# НЕ делайте так на рабочем компьютереcodex --yolo# то же самое:codex --dangerously-bypass-approvals-and-sandboxЭтот флаг отключает и песочницу, и подтверждения. Используйте его только внутри одноразового контейнера, где нечего терять.
Правила для инженера данных
Заголовок раздела «Правила для инженера данных»| Риск | Что делать |
|---|---|
Агент запустит DROP или DELETE в production | Давайте доступ только к dev-базе. Пользователь БД — только чтение |
Секреты в profiles.yml, .env | Держите их вне репозитория. Используйте переменные окружения |
| Агент прочитает персональные данные | Работайте на тестовых или обезличенных данных |
| Prompt injection через данные или issue | Не давайте агенту сразу доступ к секретам и к непроверенному тексту |
Добавьте правило в AGENTS.md:
## Запрещено- Никогда не запускай команды против production (target: prod).- Не читай и не меняй profiles.yml, .env, файлы с ключами.- Миграции — только на dev-базе.Итоги модуля
Заголовок раздела «Итоги модуля»- Песочница включена по умолчанию — это защищает ваш компьютер
- Режим Auto (
workspace-write+on-request) — хороший выбор для работы - Сеть по умолчанию выключена
--yolo— только в одноразовом контейнере- Агенту — только dev-данные и права на чтение
Модуль 4: Настройка: config.toml и AGENTS.md
Заголовок раздела «Модуль 4: Настройка: config.toml и AGENTS.md»У Codex два главных файла:
config.toml— настройки инструмента: модель, песочница, MCPAGENTS.md— инструкции для агента: как устроен проект и какие правила
config.toml
Заголовок раздела «config.toml»Личные настройки — ~/.codex/config.toml. Настройки проекта — .codex/config.toml в репозитории.
model = "gpt-6.1-sol"model_reasoning_effort = "medium"approval_policy = "on-request"sandbox_mode = "workspace-write"
[sandbox_workspace_write]network_access = false
# Уведомление, когда задача закончена (любая команда)notify = ["terminal-notifier", "-title", "Codex", "-message", "Готово"]
# Доверенные проекты[projects."/Users/me/projects/my-dbt-project"]trust_level = "trusted"Уровни настроек
Заголовок раздела «Уровни настроек»Если одна настройка задана в нескольких местах, побеждает более высокий уровень:
| Приоритет | Где | Пример |
|---|---|---|
| 1 (высший) | Флаги командной строки | codex -m gpt-6-luna, -c model_reasoning_effort=high |
| 2 | .codex/config.toml в проекте (ближайший к текущей папке) | Общие настройки команды |
| 3 | Файл профиля | ~/.codex/ci.config.toml |
| 4 | ~/.codex/config.toml | Ваши личные настройки |
| 5 | Управляемые настройки компании | Через облако или /etc/codex/config.toml |
| 6 (низший) | Встроенные значения | — |
Настройки проекта загружаются только для доверенных папок. Компания может задать обязательные правила в requirements.toml — их нельзя переопределить.
Профили
Заголовок раздела «Профили»Профиль — отдельный файл с набором настроек. Например, для CI:
model = "gpt-6-luna"model_reasoning_effort = "low"approval_policy = "never"sandbox_mode = "read-only"codex exec --profile ci "Проверь SQL в папке models/ на ошибки"Старый формат [profiles.ci] внутри config.toml в документации больше не описан. Используйте отдельные файлы.
AGENTS.md
Заголовок раздела «AGENTS.md»AGENTS.md — открытый стандарт. Его читают Codex, Cursor, Copilot, Antigravity, OpenCode и Claude Code (если нет CLAUDE.md). Один файл — правила для всех агентов в команде.
Как Codex ищет файлы:
- Глобальный файл:
~/.codex/AGENTS.override.md, если нет —~/.codex/AGENTS.md - Потом от корня Git-репозитория до текущей папки — по одному файлу в каждой папке
- В каждой папке: сначала
AGENTS.override.md, потомAGENTS.md - Файлы склеиваются от корня к текущей папке. Ближайший файл идёт последним, поэтому его правила главнее
Общий лимит — 32 KiB (project_doc_max_bytes). Если у команды уже есть файл с другим именем, добавьте его:
project_doc_fallback_filenames = ["TEAM_GUIDE.md"]Пример AGENTS.md для dbt-проекта
Заголовок раздела «Пример AGENTS.md для dbt-проекта»## Проектdbt-проект аналитического хранилища на Snowflake.- models/staging/ — очистка источников, префикс stg_- models/intermediate/ — промежуточная логика, префикс int_- models/marts/ — витрины, префиксы fct_ и dim_
## Команды- Установка: `uv sync && dbt deps`- Проверка: `dbt compile --select <модель>`- Сборка и тесты: `dbt build --select <модель> --target dev`- Линтер SQL: `sqlfluff lint models/`
## Правила- Каждый источник объявлен в `_sources.yml` до использования.- На каждом первичном ключе — тесты `unique` и `not_null`.- CTE вместо подзапросов. Ключевые слова SQL — в нижнем регистре.- Таблицы больше 1 млн строк в день — `incremental`.- У каждой модели есть описание в `.yml`.
## Запрещено- Никогда не используй `--target prod`.- Не меняй profiles.yml и файлы с секретами.- Не удаляй модели без подтверждения.
## Готово, когда- `dbt build --select <изменённые модели>+` проходит без ошибок.- `sqlfluff lint` без ошибок.- Описания и тесты добавлены.Советы по AGENTS.md
Заголовок раздела «Советы по AGENTS.md»- Начните с
/init, потом отредактируйте руками - Коротко. Это не документация проекта, а инструкция для агента
- Обязательно укажите команды сборки, тестов и линтера. Без них агент не может себя проверить
- Добавляйте правила по опыту. Агент дважды сделал одну ошибку — добавьте правило
- Длинные инструкции — в отдельные файлы. Например,
docs/code_review.md, а вAGENTS.md— ссылка - В монорепозитории — свой
AGENTS.mdв каждой большой папке:dbt/AGENTS.md,airflow/AGENTS.md
Можно попросить Codex самого улучшить файл:
Ты дважды забыл добавить тесты на первичный ключ. Сделай ретроспективу:почему так вышло, и предложи правку в AGENTS.md, чтобы это не повторилось.Итоги модуля
Заголовок раздела «Итоги модуля»config.toml— настройки инструмента,AGENTS.md— правила проекта- Приоритет: флаги → проект → профиль → пользователь → компания
- Профили — отдельные файлы
~/.codex/<имя>.config.toml - В
AGENTS.mdглавное — команды проверки и критерии «готово»
Модуль 5: Как ставить задачи
Заголовок раздела «Модуль 5: Как ставить задачи»Качество работы агента зависит от постановки задачи. Хорошая задача похожа на хороший тикет в Jira.
Четыре части хорошей задачи
Заголовок раздела «Четыре части хорошей задачи»OpenAI рекомендует такую структуру:
| Часть | Что написать | Пример |
|---|---|---|
| Цель | Что нужно сделать | Добавить витрину выручки по дням |
| Контекст | Какие файлы, ошибки, документы важны | @models/staging/stg_orders.sql, текст ошибки |
| Ограничения | Правила и рамки | Не меняй существующие модели, только incremental |
| Готово, когда | Как проверить результат | dbt build проходит, тесты добавлены |
Плохо:
Сделай витрину по выручкеХорошо:
Цель: создай модель fct_daily_revenue — выручка по дням и странам.
Контекст: источник — @models/staging/stg_orders.sql и @models/staging/stg_payments.sql.Выручка = сумма payments.amount для заказов со статусом 'completed'.
Ограничения:- materialized='incremental', ключ — order_date- не меняй staging-модели
Готово, когда:- dbt build --select fct_daily_revenue --target dev проходит- есть тесты unique и not_null на (order_date, country)- есть описание модели и колонок в .ymlРежим планирования
Заголовок раздела «Режим планирования»Для сложных задач сначала попросите план. Включите /plan. Codex изучит код и предложит план, но ничего не будет менять.
Полезный приём — попросите Codex задать вам вопросы:
/plan Нужно перенести 15 моделей из Redshift в Snowflake.Прежде чем предлагать план, задай мне вопросы о том, что тебе неясно.Оспорь мои предположения, если видишь риски.Для долгих задач попросите сохранить план в файл PLANS.md. Агент будет отмечать выполненные шаги. Если сессия прервётся, новая сессия продолжит по плану.
Режим цели: /goal
Заголовок раздела «Режим цели: /goal»/goal запускает Codex в цикле: он работает, пока сам не решит, что цель достигнута.
/goal Все тесты в tests/ проходят, и dbt build --target dev без ошибок.Используйте с осторожностью: долгий цикл тратит много лимитов. Цель должна быть проверяемой — тест, команда, конкретный результат.
Управление контекстом
Заголовок раздела «Управление контекстом»Контекст — это «рабочая память» агента. Когда он переполнен, качество падает.
| Ситуация | Что делать |
|---|---|
| Новая задача | /new — начните новый разговор |
| Разговор стал длинным | /compact — сжать историю |
| Хотите попробовать другой подход | /fork — ветка разговора |
| Быстрый вопрос в стороне | /side — не засоряет основной разговор |
| Вернуться к вчерашней задаче | /resume или codex resume |
Правило: один разговор — одна задача. Не ведите весь проект в одном чате.
Выбор модели и уровня рассуждений
Заголовок раздела «Выбор модели и уровня рассуждений»| Задача | Модель | Уровень |
|---|---|---|
| Переименовать колонку во всех моделях | Luna | low |
| Написать новую dbt-модель с тестами | Sol | medium |
| Найти причину расхождения в цифрах | Sol | high |
| Спроектировать новый слой хранилища | Astra | high |
| Перенести проект на другую СУБД | Sol или Astra | xhigh + /plan |
Итоги модуля
Заголовок раздела «Итоги модуля»- Задача = цель + контекст + ограничения + «готово, когда»
- Сложное — сначала
/plan, долгое — сPLANS.md /goal— для проверяемых целей- Один разговор — одна задача
Модуль 6: Практика: задачи инженера данных
Заголовок раздела «Модуль 6: Практика: задачи инженера данных»В этом модуле — готовые сценарии. Копируйте промпты и адаптируйте под свой проект.
Сценарий 1: Новая dbt-модель с тестами
Заголовок раздела «Сценарий 1: Новая dbt-модель с тестами»Создай модель int_customer_orders: для каждого клиента — число заказов,сумма, дата первого и последнего заказа.Источники: @models/staging/stg_customers.sql, @models/staging/stg_orders.sql.Добавь тесты и описание в .yml. Проверь через dbt build --select int_customer_orders --target dev.На что смотреть при проверке:
- Правильный ли JOIN (не теряются ли клиенты без заказов?)
- Правильное ли зерно (одна строка на клиента?)
- Существуют ли колонки, которые использует агент
Агент может написать правдоподобный SQL с несуществующими колонками или неверным JOIN. Поэтому в AGENTS.md обязательно должна быть команда dbt compile или dbt build — агент сам увидит ошибку.
Сценарий 2: Ревью и рефакторинг SQL
Заголовок раздела «Сценарий 2: Ревью и рефакторинг SQL»/plan Проверь @models/marts/fct_sales.sql:- есть ли проблемы с производительностью- нет ли дублей из-за JOIN- соответствует ли стилю из AGENTS.mdПредложи изменения, но не меняй файл, пока я не одобрю план.Сценарий 3: Миграция на другую СУБД
Заголовок раздела «Сценарий 3: Миграция на другую СУБД»Например, перенос с Redshift на Snowflake.
- Сначала используйте детерминированный конвертер, если он есть. Например, SnowConvert для Snowflake
- Потом поручите Codex то, что конвертер не смог:
/plan Мы переносим модели из папки models/legacy_redshift/ на Snowflake.SnowConvert уже обработал синтаксис. Найди оставшиеся проблемы:DISTKEY/SORTKEY, функции дат, GETDATE(), NVL2, разницу в типах.Создай PLANS.md со списком моделей и статусом каждой.Переноси по одной модели и после каждой запускай dbt build --select <модель> --target dev.- Сравните данные: попросите агента написать запросы для сверки числа строк и сумм между старой и новой системой
Сценарий 4: DAG в Airflow
Заголовок раздела «Сценарий 4: DAG в Airflow»Создай DAG dags/daily_sales.py:- запуск каждый день в 06:00 UTC- шаги: загрузка из S3 → dbt build --select tag:daily → проверка свежести данных- TaskFlow API, retries=2- подключения только через Airflow Connections, никаких паролей в кодеПроверь синтаксис через python -c "import dags.daily_sales".Сценарий 5: Разбор упавшего пайплайна
Заголовок раздела «Сценарий 5: Разбор упавшего пайплайна»Вот лог упавшей задачи: @logs/dbt_run_2026-11-02.logНайди причину. Сначала объясни, что пошло не так, потом предложи исправление.Не меняй файлы, пока я не подтвержу.Если причина в данных, а не в коде, Codex должен это сказать. Попросите его написать SQL-запрос, который покажет проблемные строки.
Сценарий 6: Анализ файла с DuckDB
Заголовок раздела «Сценарий 6: Анализ файла с DuckDB»В папке data/ лежит events.parquet. С помощью DuckDB:1. Покажи схему и число строк2. Найди дубли по event_id3. Посчитай события по дням за последний месяц4. Сохрани скрипт анализа в analysis/events_check.pyDuckDB работает без сервера, поэтому Codex справится в песочнице. Если DuckDB не установлен, понадобится сеть для установки — Codex спросит разрешение.
Сценарий 7: Документация
Заголовок раздела «Сценарий 7: Документация»Для всех моделей в models/marts/ без описания:- добавь описание модели и всех колонок в .yml- описание бери из логики SQL, не выдумывай- если смысл колонки неясен — оставь TODO и выпиши список в концеСценарий 8: Проверки качества данных
Заголовок раздела «Сценарий 8: Проверки качества данных»Для модели fct_orders добавь проверки качества:- уникальность order_id- amount >= 0- order_date не в будущем- каждый customer_id есть в dim_customersИспользуй стандартные тесты dbt и dbt_utils, где можно.Сценарий 9: Изучение чужого проекта
Заголовок раздела «Сценарий 9: Изучение чужого проекта»codex --sandbox read-onlyЯ новый человек в команде. Объясни:1. Откуда приходят данные и куда уходят2. Какие модели самые важные (на них больше всего ссылок)3. Где самая сложная логика4. Какие есть проблемы и технический долгНарисуй схему потоков данных в формате Mermaid.Режим read-only гарантирует, что агент ничего не изменит.
Итоги модуля
Заголовок раздела «Итоги модуля»- Codex хорош для dbt-моделей, SQL-ревью, миграций, DAG и документации
- Всегда давайте агенту способ проверить себя:
dbt build, тесты, линтер - Проверяйте JOIN, зерно и названия колонок — тут агенты ошибаются чаще всего
- Для изучения кода — режим
read-only
Модуль 7: Расширения: MCP, Skills, субагенты, хуки
Заголовок раздела «Модуль 7: Расширения: MCP, Skills, субагенты, хуки»MCP — подключение внешних инструментов
Заголовок раздела «MCP — подключение внешних инструментов»MCP (Model Context Protocol) — стандарт подключения агентов к внешним системам: базам данных, dbt, GitHub, документации.
# Добавить локальный серверcodex mcp add context7 -- npx -y @upstash/context7-mcp
# Добавить удалённый серверcodex mcp add docs --url https://example.com/mcp
# Вход через OAuthcodex mcp login docs
# Списокcodex mcp listИли в config.toml:
# MCP-сервер dbt[mcp_servers.dbt]command = "uvx"args = ["dbt-mcp"]env = { DBT_PROJECT_DIR = "/Users/me/projects/my-dbt-project" }startup_timeout_sec = 20Полезные MCP-серверы для данных:
| Сервер | Что даёт |
|---|---|
| dbt MCP | Модели, lineage, запуск dbt |
| MCP Toolbox for Databases | BigQuery, PostgreSQL и другие базы |
| ClickHouse MCP | Запросы к ClickHouse |
| Snowflake managed MCP | SQL, Cortex Search, Cortex Analyst |
| GitHub MCP | Issues, PR |
Совет: начните с 1–2 серверов. Каждый сервер занимает место в контексте и расходует лимиты. Подключайте базу пользователем только с правами на чтение.
Skills — навыки
Заголовок раздела «Skills — навыки»Skill — папка с инструкцией SKILL.md и, при желании, скриптами. Это повторяемый рабочий процесс, который агент выполняет по запросу.
Правило: если вы третий раз пишете один и тот же промпт — сделайте из него skill.
Где хранятся:
| Где | Для кого |
|---|---|
.agents/skills/ в репозитории | Вся команда |
~/.agents/skills/ | Только вы |
/etc/codex/skills/ | Все пользователи компьютера (администратор) |
Пример — .agents/skills/dbt-new-model/SKILL.md:
---name: dbt-new-modeldescription: Создание новой dbt-модели по стандартам команды. Используй, когда просят создать модель, витрину, staging или intermediate.---
# Новая dbt-модель
1. Определи слой: staging (stg_), intermediate (int_) или mart (fct_/dim_).2. Проверь, что источники объявлены в _sources.yml.3. Напиши SQL по стилю из AGENTS.md: CTE, нижний регистр.4. Добавь в .yml: описание модели и колонок, тесты unique и not_null на ключ.5. Запусти: dbt build --select <модель> --target dev6. Если тест упал — исправь и запусти снова.7. В конце покажи: путь к файлам, зерно модели, список тестов.Вызвать skill:
- Явно:
$dbt-new-model создай витрину возвратов - Через меню:
/skills - Автоматически: Codex сам выберет skill по описанию. Поэтому пишите в
descriptionключевые слова
Встроенные skills: $skill-creator (создаёт новый skill) и $skill-installer (ставит готовые). Готовые skills для dbt публикует dbt Labs: dbt-agent-skills.
Субагенты
Заголовок раздела «Субагенты»Субагент — отдельный агент со своей ролью, моделью и инструкциями. Главный агент поручает ему часть работы. Это экономит контекст главного агента.
Встроенные: default, worker, explorer. Свои — TOML-файлы в .codex/agents/ или ~/.codex/agents/:
name = "sql-reviewer"description = "Ревью SQL и dbt-моделей: ошибки JOIN, зерно, производительность, стиль."model = "gpt-6.1-terra"model_reasoning_effort = "medium"developer_instructions = """Ты ревьюер SQL в команде данных.Проверь: дубли из-за JOIN, правильность зерна, фильтры по датам,NULL в ключах, производительность на больших таблицах.Не меняй файлы. Верни список проблем с файлом и строкой."""Как запустить — попросите обычными словами:
Запусти двух субагентов sql-reviewer параллельно: один проверяет models/marts/,второй — models/intermediate/. Собери их замечания в одну таблицу.Субагент не может переопределить песочницу, политику подтверждений и MCP-серверы — они наследуются от главной сессии.
Хук — команда, которая автоматически выполняется при событии. Например, запуск линтера после правки файла или блокировка опасной команды.
Где хранятся: ~/.codex/hooks.json, .codex/hooks.json в проекте (только для доверенных папок) или секция [hooks] в config.toml.
События: SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PostToolUse, PermissionRequest, PreCompact, PostCompact, SubagentStart, SubagentStop, Stop и другие.
Формат: событие → matcher (регулярное выражение по имени инструмента) → список команд. Если команда завершается с кодом 2, действие блокируется, а текст из stderr получает агент.
{ "hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "sqlfluff lint models/ --format github-annotation-native || true", "timeout": 60, "statusMessage": "Проверяю SQL линтером" } ] } ] }}Посмотреть загруженные хуки — команда /hooks. Точные имена инструментов для matcher и все поля — в документации по хукам.
Плагины
Заголовок раздела «Плагины»Плагин — способ поделиться набором skills, MCP-серверов и хуков. Команды: codex plugin и codex plugin marketplace. Ставьте плагины только из проверенных источников: плагин может запускать любые команды.
Итоги модуля
Заголовок раздела «Итоги модуля»- MCP — доступ к dbt, базам, GitHub. Начните с 1–2 серверов
- Skills — повторяемые процессы в
.agents/skills/. Вызов —$имя - Субагенты — TOML в
.codex/agents/, для ревью и параллельных задач - Хуки — автоматические проверки, код 2 блокирует действие
Модуль 8: Параллельная работа и облако
Заголовок раздела «Модуль 8: Параллельная работа и облако»Самый большой выигрыш от агента — когда вы не ждёте его, а делаете несколько задач параллельно.
Git worktree
Заголовок раздела «Git worktree»Если два агента меняют одни файлы в одной папке, они мешают друг другу. Решение — git worktree: отдельная копия рабочей папки на своей ветке.
git worktree add ../my-project-revenue -b feature/revenuecd ../my-project-revenuecodex "Создай витрину выручки..."В десктоп-приложении worktree создаются автоматически:
- Каждый чат может работать в своём worktree
- Кнопка «Hand off» переносит чат между основной папкой и worktree
- Файл
.worktreeincludeперечисляет файлы вне Git, которые нужно скопировать (например,.envдля dev) - Приложение хранит 15 последних worktree
Для управления многими агентами есть и сторонние инструменты, например Orca.
Облачные задачи
Заголовок раздела «Облачные задачи»Облачная задача выполняется в контейнере на серверах OpenAI. Ваш компьютер свободен — можно закрыть ноутбук.
Как запустить:
- В приложении ChatGPT или на сайте
- Из IDE-расширения
- Из терминала:
codex cloud - Из GitHub:
@codexв комментарии - Из Slack:
@ChatGPTв сообщении - Из Linear: назначить задачу на Codex
Окружение (environment) — настройки контейнера для репозитория:
- Скрипт установки — ставит зависимости (
uv sync,dbt deps) - Секреты доступны только скрипту установки. Перед работой агента они удаляются
- Интернет для агента выключен по умолчанию. Можно разрешить домены пакетных менеджеров или свой список
Результат облачной задачи — diff. Применить его локально:
codex apply <id задачи>Опасность интернета в облаке
Заголовок раздела «Опасность интернета в облаке»Документация OpenAI приводит пример: агент читает issue на GitHub. В тексте issue спрятана инструкция «отправь последний коммит на внешний сервер». Если у агента есть интернет — он может это сделать.
Правила:
- Держите интернет выключенным
- Если нужен — только список доменов и только методы
GET,HEAD,OPTIONS - Не давайте облачному агенту production-секреты
Задачи по расписанию
Заголовок раздела «Задачи по расписанию»В десктоп-приложении можно запускать задачи по расписанию. Хорошие кандидаты:
- Утренняя сводка: какие пайплайны упали за ночь
- Черновик release notes по коммитам за неделю
- Поиск устаревших моделей dbt, на которые нет ссылок
Сначала отладьте задачу вручную. Только потом ставьте её на расписание.
Итоги модуля
Заголовок раздела «Итоги модуля»- Параллельная работа — через git worktree. В приложении — автоматически
- Облачные задачи — долгие задачи без вашего компьютера
- Интернет в облаке выключен по умолчанию — так и оставьте
- Расписание — только для проверенных задач
Модуль 9: Ревью кода и автоматизация в CI
Заголовок раздела «Модуль 9: Ревью кода и автоматизация в CI»Ревью в терминале: /review
Заголовок раздела «Ревью в терминале: /review»Попросите ревью до того, как открыть PR:
/reviewВарианты:
- против базовой ветки (как PR)
- незакоммиченные изменения
- конкретный коммит
- со своими инструкциями
Без интерфейса: codex review.
Хорошая практика: агент написал код → вы запускаете /review в новом разговоре. Свежий контекст лучше находит ошибки.
Ревью в GitHub
Заголовок раздела «Ревью в GitHub»После подключения GitHub к Codex:
- Напишите
@codex reviewв комментарии к PR. Codex отмечает только серьёзные проблемы (P0 и P1) - Или включите автоматическое ревью в настройках Codex — для каждого PR
@codex fix ...— попросить исправление
Правила ревью добавьте в AGENTS.md:
## Code Review Rules- Проверяй зерно моделей и JOIN, которые могут дать дубли.- Новая модель без тестов на ключ — это ошибка P1.- Изменение в marts без обновления .yml — P1.- Не пиши замечания о стиле — для этого есть sqlfluff.Автоматическое ревью тратит лимиты на каждый PR. Начните с ручного @codex review.
codex exec — Codex в скриптах
Заголовок раздела «codex exec — Codex в скриптах»codex exec запускает задачу без интерфейса. Прогресс идёт в stderr, финальный ответ — в stdout.
# По умолчанию — только чтениеcodex exec "Найди модели dbt без тестов на первичный ключ"
# С правом менять файлыcodex exec --sandbox workspace-write "Добавь описания колонок в models/marts/*.yml"
# Промпт из файлаcodex exec - < prompts/weekly_check.md
# Сохранить финальный ответ в файлcodex exec -o report.md "Сделай release notes по последним 10 коммитам"
# События в JSONL — для разбора скриптомcodex exec --json "..."
# Продолжить прошлую сессиюcodex exec resume --last "Теперь исправь найденные проблемы"| Флаг | Что делает |
|---|---|
--sandbox | read-only (по умолчанию), workspace-write, danger-full-access |
--ask-for-approval, -a | Политика подтверждений |
-o, --output-last-message | Записать финальный ответ в файл |
--output-schema | Ответ строго по JSON-схеме |
--json | Поток событий в JSONL |
--ephemeral | Не сохранять сессию |
--skip-git-repo-check | Разрешить запуск вне Git-репозитория |
--profile | Использовать профиль |
Флаг --full-auto больше не поддерживается. Вместо него — --sandbox workspace-write. В старых статьях встречаются флаги --approval-mode и --sandbox-permissions — они тоже устарели.
Структурированный ответ
Заголовок раздела «Структурированный ответ»--output-schema заставляет Codex вернуть JSON по схеме. Это удобно, если результат читает скрипт.
{ "type": "object", "properties": { "findings": { "type": "array", "items": { "type": "object", "properties": { "file": { "type": "string" }, "line": { "type": "integer" }, "priority": { "type": "integer", "minimum": 0, "maximum": 3 }, "title": { "type": "string" }, "body": { "type": "string" } }, "required": ["file", "line", "priority", "title", "body"], "additionalProperties": false } }, "overall_correctness": { "type": "string", "enum": ["patch is correct", "patch is incorrect"] } }, "required": ["findings", "overall_correctness"], "additionalProperties": false}codex exec --sandbox read-only \ --output-schema review-schema.json \ -o review.json \ - < prompts/review.mdGitHub Action для ревью PR
Заголовок раздела «GitHub Action для ревью PR»Официальное действие — openai/codex-action. Рекомендуемая схема — два job:
- Codex работает с правами только на чтение и возвращает текст
- Отдельный job без API-ключа публикует комментарий
Так ключ и права на запись никогда не встречаются в одном месте.
name: Codex PR review
on: pull_request: types: [opened, synchronize]
jobs: review: runs-on: ubuntu-latest permissions: contents: read outputs: message: ${{ steps.codex.outputs.final-message }} steps: - uses: actions/checkout@v5 with: fetch-depth: 0 persist-credentials: false
- id: codex uses: openai/codex-action@v1 with: openai-api-key: ${{ secrets.OPENAI_API_KEY }} prompt-file: .github/codex/prompts/review.md permission-profile: ":read-only"
comment: needs: review runs-on: ubuntu-latest permissions: pull-requests: write steps: - uses: actions/github-script@v7 env: MESSAGE: ${{ needs.review.outputs.message }} with: script: | await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, body: process.env.MESSAGE, });Пример промпта .github/codex/prompts/review.md:
Сделай ревью изменений этого PR относительно основной ветки.Это dbt-проект. Правила — в AGENTS.md, раздел Code Review Rules.Отмечай только реальные проблемы, которые внёс этот PR.Для каждой проблемы — файл, строка и почему это ошибка.Без замечаний о стиле.Правила безопасности для CI
Заголовок раздела «Правила безопасности для CI»- Ограничьте, кто может запускать workflow (параметр
allow-users) - Текст PR, коммиты и issues — непроверенные данные. В них может быть скрытая инструкция
CODEX_API_KEYилиOPENAI_API_KEY— только на шаге с Codex, не на весь job- Не используйте
safety-strategy: unsafeна общих runner - Режим
read-onlyне защищает секреты, которые уже есть в окружении - Для API-ключа поставьте лимит расходов
Другие идеи для CI
Заголовок раздела «Другие идеи для CI»| Задача | Как |
|---|---|
| Исправить упавший CI | Workflow на событие workflow_run с failure. Codex пишет патч, отдельный job создаёт PR |
| Release notes | codex exec -o notes.md "release notes по коммитам с прошлого тега" |
| Проверка документации | Раз в неделю: найти модели без описаний, создать issue |
| Проверка миграций | Перед merge: нет ли DROP и TRUNCATE в новых миграциях |
Итоги модуля
Заголовок раздела «Итоги модуля»/reviewв новом разговоре — перед каждым PR@codex reviewв GitHub, правила — вAGENTS.mdcodex exec— для скриптов и CI, по умолчанию только чтение- GitHub Action — два job: чтение с ключом, запись без ключа
Модуль 10: Лимиты и стоимость
Заголовок раздела «Модуль 10: Лимиты и стоимость»Как считаются лимиты
Заголовок раздела «Как считаются лимиты»При входе через ChatGPT у вас есть лимиты на 5-часовое окно. Могут быть и недельные лимиты. Посмотреть текущее использование — /status или /usage.
Примерное число сообщений за 5 часов на плане Plus:
| Модель | Сообщений |
|---|---|
| GPT-6 Astra | 5–45 |
| GPT-6.1 Sol | 15–160 |
| GPT-6.1 Terra | 35–285 |
| GPT-6 Luna | 350–3000 |
Разброс большой: короткая задача тратит мало, долгая с большим контекстом — много.
Что тратит лимиты быстрее:
- Облачные задачи — дороже локальных
- Режим
/fast— в 2,5 раза дороже по лимитам подписки (в 2 раза — при оплате кредитами) - Высокий уровень рассуждений
- Большой контекст, много MCP-серверов
- Автоматическое ревью каждого PR
Когда лимиты закончились, можно использовать кредиты (на планах Plus и Pro их можно докупить). Luna примерно в 20 раз дешевле Sol по кредитам.
Как экономить
Заголовок раздела «Как экономить»| Совет | Почему работает |
|---|---|
| Luna для простых задач | Лимиты в десятки раз выше |
low для чётких задач | Меньше токенов на рассуждения |
Точная задача с @файлами | Агент меньше ищет по проекту |
Хороший AGENTS.md | Агент не изучает проект заново каждый раз |
Короткий AGENTS.md | Он загружается в каждый разговор |
| Отключите ненужные MCP | Их описание занимает контекст |
/new для новой задачи | Не таскайте старый контекст |
| Локально, а не в облаке | Облачные задачи дороже |
| Лимит для API-ключа | Защита от неожиданного счёта |
API-ключ или подписка
Заголовок раздела «API-ключ или подписка»| Подписка ChatGPT | API-ключ | |
|---|---|---|
| Оплата | Фиксированная в месяц | За токены |
| Облако, GitHub, Slack | Да | Нет |
| CI | Можно, но неудобно | Удобно |
| Риск большого счёта | Нет | Есть — ставьте лимит |
Частый вариант: подписка для работы, отдельный API-ключ с лимитом — для CI.
Итоги модуля
Заголовок раздела «Итоги модуля»- Лимиты — на 5 часов и на неделю. Проверка —
/status - Экономия: Luna,
low, точные задачи, короткийAGENTS.md - Для CI — отдельный API-ключ с лимитом расходов
Модуль 11: Лучшие практики и частые ошибки
Заголовок раздела «Модуль 11: Лучшие практики и частые ошибки»10 правил работы с Codex
Заголовок раздела «10 правил работы с Codex»- Начните с
AGENTS.md. Команды сборки, тестов, линтера и критерии «готово» - Дайте агенту способ проверить себя. Без тестов агент не знает, что ошибся
- Ставьте задачу как тикет. Цель, контекст, ограничения, «готово, когда»
- Сложное — сначала
/plan. Попросите задать вопросы - Маленькие шаги. Одна модель, один DAG, одна миграция за раз
- Один разговор — одна задача.
/newмежду задачами - Коммитьте часто. Легко откатиться, если агент ушёл не туда
- Ревью всегда.
/reviewв новом разговоре, потом своими глазами - Песочница включена. Полный доступ — только в контейнере
- Повторяющееся — в skill. Третий раз пишете тот же промпт — пора
Частые ошибки
Заголовок раздела «Частые ошибки»| Ошибка | Что будет | Как правильно |
|---|---|---|
| Правила в каждом промпте | Агент забывает, вы устаёте | Правила — в AGENTS.md |
| Нет команд тестов | Агент «закончил», но код не работает | Команды в AGENTS.md |
| Сложная задача без плана | Агент уходит не туда | /plan |
| Полный доступ с первого дня | Риск потерять файлы | Режим Auto, полный доступ — в контейнере |
| Параллельные агенты в одной папке | Конфликты правок | git worktree |
| Смотреть, как агент работает | Вы теряете время | Запускайте другую задачу параллельно |
| Весь проект в одном чате | Контекст переполнен, качество падает | /new, /compact |
| Доверять SQL без проверки | Неверные JOIN, лишние строки | dbt build, сверка цифр |
| Доступ агента к production | Можно потерять данные | Только dev и права на чтение |
Чеклист проверки результата
Заголовок раздела «Чеклист проверки результата»Перед merge кода от агента:
- Тесты и
dbt buildпроходят - Зерно модели правильное, нет дублей
- JOIN не теряют и не размножают строки
- Колонки и таблицы существуют
- Цифры сходятся с известным результатом (сверка)
- Нет секретов и паролей в коде
- Нет команд против production
- Описания и тесты добавлены
- Вы понимаете каждую строку изменений
Последний пункт — самый важный. Если не понимаете код — попросите Codex объяснить его.
Модуль 12: Codex и Claude Code
Заголовок раздела «Модуль 12: Codex и Claude Code»Многие команды используют оба агента. Это нормально: ревью другой моделью находит другие ошибки.
Сравнение
Заголовок раздела «Сравнение»| Codex | Claude Code | |
|---|---|---|
| Компания | OpenAI | Anthropic |
| Модели | GPT-6 | Claude Opus, Sonnet, Haiku 5.5, Fable 5.1 |
| Песочница | Включена по умолчанию на уровне ОС | Есть (/sandbox), режимы разрешений |
| Облачные задачи | Да, встроены | Есть, но это не главный сценарий |
| Ревью в GitHub | @codex review, автоматическое | Через GitHub Action и плагины |
| Расширяемость | Skills, хуки, плагины, субагенты | Очень богатая: skills, хуки, плагины, субагенты, Agent Teams |
| Инструкции | AGENTS.md | CLAUDE.md (читает и AGENTS.md) |
| Открытый код CLI | Да | Нет |
По отзывам инженеров, которые работают с обоими:
- Codex сильнее: долгие задачи по инструкции, делегирование в облако, ревью кода, стоимость
- Claude Code сильнее: интерактивная работа, расширяемость, сложные рабочие процессы со своими инструментами
Сравнения и бенчмарки быстро устаревают. Лучший способ выбрать — дать обоим одну и ту же задачу из вашего проекта.
Таблица соответствия
Заголовок раздела «Таблица соответствия»| Что | Codex | Claude Code |
|---|---|---|
| Инструкции проекта | AGENTS.md | CLAUDE.md |
| Настройки | ~/.codex/config.toml, .codex/config.toml | ~/.claude/settings.json, .claude/settings.json |
| Планирование | /plan, Shift+Tab | Режим Plan, Shift+Tab |
| Разрешения | /permissions | /permissions, Shift+Tab |
| Skills | .agents/skills/, вызов $имя | .claude/skills/, вызов /имя |
| Субагенты | .codex/agents/*.toml | .claude/agents/*.md |
| Хуки | hooks.json | hooks в settings.json |
| MCP | codex mcp add | claude mcp add |
| Без интерфейса | codex exec | claude -p |
| Ревью | /review | /code-review |
| Продолжить сессию | codex resume | claude --continue |
Один репозиторий — два агента
Заголовок раздела «Один репозиторий — два агента»Держите общие правила в AGENTS.md. В CLAUDE.md подключите его и добавьте только специфичное для Claude Code:
@AGENTS.md
## Только для Claude Code- Используй субагента sql-reviewer после изменений в models/Skills из .agents/skills/ читают Codex, Cursor и другие агенты. Переход с Claude Code или Cursor упрощает команда /import.
Дополнительные ресурсы
Заголовок раздела «Дополнительные ресурсы»Официальные:
- Документация Codex
- Лучшие практики
- Безопасность и разрешения
- codex exec и CI
- GitHub Action
- Исходный код CLI
- Cookbook: ревью кода через Codex SDK
- Стандарт AGENTS.md
Сообщество:
- Саймон Уиллисон о Codex — заметки и реальные случаи
- Воркшоп NICAR 2026: агенты для работы с данными
- dbt Agent Skills — готовые skills от dbt Labs
- dbt MCP
На нашем сайте:
- Claude Code 101 — курс по агенту от Anthropic
- Открытые агенты 101 — курс по Pi и OpenCode
- AI в помощь — обзор AI-инструментов для инженера данных
Курс создан в ноябре 2026 года. Codex быстро развивается, поэтому детали могут меняться. Сверяйтесь с официальной документацией и списком изменений.