Модуль 1 · Конфигурация · урок 3 из 16
Профили: настройки под разные задачи
Одна и та же конфигурация редко подходит для всего. Для глубокого ревью нужна модель посильнее и больше рассуждений, для переименования полей — быстрая модель, для скрипта в CI — только чтение и никаких вопросов. Профиль — это именованный набор отличий от вашего обычного конфига, который включается одним флагом.
Как устроен профиль сейчас
С версии Codex 0.134.0 профиль — это отдельный файл рядом с личным конфигом: ~/.codex/<имя>.config.toml (точнее, $CODEX_HOME/<имя>.config.toml). Внутри — обычные ключи верхнего уровня, без обёртки в таблицу. Имя может состоять из латинских букв, цифр, дефисов и подчёркиваний.
model = "gpt-6.1-sol"
model_reasoning_effort = "high"
approval_policy = "on-request"
sandbox_mode = "read-only"Запуск:
codex --profile deep-review
codex -p deep-review
codex exec --profile deep-review "Проверь изменения в ветке относительно main"Codex загружает ~/.codex/config.toml, а сверху накладывает файл профиля. Поэтому в профиле достаточно записать только то, что отличается: всё остальное — MCP-серверы, настройки окружения, интерфейс — придёт из основного конфига.
Где профиль в иерархии слоёв
Вспомним порядок из урока про config.toml: флаги CLI → проектные .codex/config.toml → профиль → личный конфиг → облачные и системные настройки. Отсюда два практических следствия.
Проект сильнее профиля. Если в репозитории .codex/config.toml задаёт model, профиль её не поменяет. Когда профиль «не работает», первым делом откройте /debug-config и посмотрите, какой слой задал значение.
Флаг сильнее всего. codex -p deep-review -m gpt-6-luna возьмёт всё из профиля, но модель — из флага. Удобно для разовых экспериментов, не трогая файл.
Выбрать профиль можно только флагом --profile. Ключ profile = "..." в конфиге больше не поддерживается, а в проектном конфиге он вдобавок игнорируется из соображений безопасности: репозиторий не должен переключать ваши профили. Подкоманда codex features флаг --profile не принимает.
Набор профилей для агентства
Четыре профиля закрывают большую часть повседневной работы.
Ревью перед MR — сильнее модель, больше рассуждений, только чтение. Пример выше.
Рутина — быстрая модель для массовых простых правок: переименовать поле в моделях OctoberCMS, обновить переводы, поправить импорт.
model = "gpt-6-luna"
model_reasoning_effort = "medium"
model_verbosity = "low"CI и скрипты — без интерактивных одобрений, только чтение, без лишнего вывода. Такой профиль удобен для codex exec в пайплайне GitLab.
approval_policy = "never"
sandbox_mode = "read-only"
model_reasoning_summary = "none"
web_search = "disabled"
[history]
persistence = "none"Локальная модель — для экспериментов без отправки кода в облако (подробности в уроке про провайдеры).
oss_provider = "ollama" # или 1
model = "ваша-модель" # имя из 3
web_search = "disabled"Запускается вместе с флагом локального режима: codex --oss -p local.
Чтобы не набирать флаги, заведите псевдонимы оболочки:
alias cxr='codex -p deep-review'
alias cxq='codex -p quick'Профиль конфигурации и профиль прав — разные вещи
В документации Codex 2026 года есть два «профиля», и их легко перепутать.
| Профиль конфигурации | Профиль прав (permission profile) | |
|---|---|---|
| Что это | Файл ~/.codex/<имя>.config.toml с любыми ключами |
Таблица [permissions.<имя>] с правилами файлов и сети |
| Как включить | --profile <имя> |
default_permissions = "<имя>" или /permissions |
| Статус | Стабильно | Beta |
Профиль конфигурации может, среди прочего, выбрать профиль прав через default_permissions. Но учтите: если в профиле конфигурации записан sandbox_mode, Codex использует старую схему песочницы и игнорирует профили прав. Подробно — в уроке про песочницу.
Когда профиля мало: отдельный CODEX_HOME
Профиль наследует ваш личный конфиг целиком, включая MCP-серверы с токенами и глобальный ~/.codex/AGENTS.md. Для служебного пользователя автоматизации иногда нужна полная изоляция — тогда меняют сам домашний каталог Codex:
CODEX_HOME="$PWD/.codex-bot" codex exec "Составь список устаревших зависимостей"В таком каталоге свой config.toml, свои учётные данные, своя история и свои профили. Для codex exec есть и флаг --ignore-user-config, который пропускает личный конфиг на один запуск. Автоматизацию подробно разбираем в курсе «Codex в автоматизации».
Если у вас старые профили
До 0.134.0 профили жили внутри config.toml:
# Так больше не работает
profile = "deep-review"
[profiles.deep-review]
model = "gpt-5.5"
model_reasoning_effort = "high"Новые версии такие таблицы просто не читают, и настройки из них перестают действовать. Миграция занимает минуту:
- Создайте
~/.codex/deep-review.config.toml. - Перенесите туда ключи из
[profiles.deep-review]без заголовка таблицы. - Удалите таблицу и строку
profile = ...изconfig.toml. - Проверьте названия моделей: многие модели 2025 года и первой половины 2026-го выведены из Codex для входа через ChatGPT, в том числе GPT-5.5 — с 14 октября 2026.
Попробуйте сами
10–15 мин на рабочем месте- Создайте
~/.codex/deep-review.config.tomlпо примеру выше и запуститеcodex -p deep-reviewв рабочем проекте. В/statusубедитесь, что модель и песочница взялись из профиля. - Запустите тот же профиль с
-mдругой модели и снова посмотрите/status: флаг должен перебить профиль. - Если в вашем
config.tomlостались таблицы[profiles.*], перенесите их в файлы и проверьте каждый профиль с--strict-config.
Коротко
- Профиль — файл
~/.codex/<имя>.config.tomlс ключами верхнего уровня, выбирается флагом--profile/-p. - Профиль накладывается поверх личного конфига, но уступает проектному конфигу и флагам.
- Таблицы
[profiles.x]и ключprofileне работают с версии 0.134.0. - Профиль конфигурации и профиль прав — разные механизмы;
sandbox_modeв профиле отключает профили прав. - Для полной изоляции автоматизации используйте отдельный
CODEX_HOME.