Блог

Навыки Codex: как создать, вызвать и проверить свой навык

Markdown

Узнайте, как устроены навыки (skills) в Codex: что записывать в SKILL.md, где хранить папки .agents/skills, как вызывать навык по описанию или команде, проверять результат и выбирать модель с учётом стоимости.

Читать статью полностью

Если каждую неделю вы несколько раз объясняете Codex, как подготовить отчёт, разобрать почту или написать текст в заданной манере, запишите эти указания в навык. Агент сможет подобрать его по описанию задачи или применить после прямого вызова. Для простого навыка достаточно папки с текстовым файлом SKILL.md; писать код не требуется.

Далее разберём устройство навыка, места его хранения, порядок создания и выбор модели с учётом цены. Команды и тарифы соответствуют официальной документации OpenAI на 20 сентября 2026 года. Установка Codex описана отдельно: Codex от OpenAI: назначение, установка и первый запуск.

Практические материалы о работе с Ailoot доступны в документации.

Что такое навык в Codex?

Ключевые сведения

Навык Codex — это папка с файлом SKILL.md, где описаны действия, исходные данные и требования к результату. Вначале Codex видит только названия и описания доступных навыков, а полную инструкцию открывает, когда решает применить один из них.

Навыки используют формат Agent Skills — открытый стандарт, созданный Anthropic и опубликованный на agentskills.io. Его поддерживают Codex, Claude Code и другие совместимые агенты. Если навык содержит только текстовые указания, его можно перенести между такими системами, скопировав папку. Скрипты, зависимости и файл agents/openai.yaml могут быть рассчитаны на конкретный клиент, поэтому после переноса их следует проверить.

Такой способ загрузки называют прогрессивным раскрытием. Агент ориентируется на название и описание, чтобы решить, подходит ли навык к задаче; при совпадении он загружает весь SKILL.md и использует его указания. Поэтому можно хранить десятки навыков, не помещая полные инструкции в контекст одновременно. Для начального списка Codex отводит не более 2% окна контекста либо 8000 символов, если размер окна неизвестен. При большом количестве навыков описания сначала сокращаются; если этого недостаточно, часть списка может быть пропущена, о чём Codex сообщит.

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

В Hermes Agent навыки работают по сходному принципу, однако хранятся и устанавливаются иначе. Этому посвящено отдельное руководство: Навыки Hermes Agent: установка и создание. Здесь рассматривается только Codex.

Из чего состоит навык?

Ключевые сведения

В минимальном варианте нужен один SKILL.md с обязательными полями name и description. При необходимости добавьте каталоги scripts/, references/ и assets/, а также файл параметров agents/openai.yaml.

Пример структуры каталога навыка:

my-skill/
  SKILL.md        - обязательный файл с метаданными и указаниями
  scripts/        - необязательные исполняемые файлы
  references/     - необязательные материалы для загрузки
  assets/         - необязательные шаблоны и ресурсы
  agents/
    openai.yaml   - необязательные настройки интерфейса и зависимостей

В начале SKILL.md укажите метаданные между тремя дефисами, а ниже разместите инструкции в формате Markdown:

---
name: weekly-sales-report
description: Подготовить еженедельный отчёт о продажах по CSV-выгрузке. Применять, когда просят сводку продаж за неделю или результаты по менеджерам.
---

1. Открой файл выгрузки, путь к которому указал пользователь.
2. Сгруппируй записи по менеджерам и вычисли сумму и количество сделок.
3. Сопоставь результат с предыдущей неделей, если рядом есть соответствующий файл. Если его нет, укажи это в отчёте.
4. Сохрани результат в report.md: добавь таблицу по менеджерам, общий итог и до трёх основных подтверждённых данными изменений с числовыми значениями.

В официальных рекомендациях OpenAI выделены три принципа:

  • Посвящайте один навык одной задаче. Вместо общей просьбы «Веди весь мой маркетинг» задайте конкретный результат, например отчёт о продажах по выгрузке. Большой процесс разделите на несколько навыков, которые можно вызывать по очереди.
  • Формулируйте шаги ясно и указывайте входные данные и результат: что взять, какие действия выполнить и куда сохранить итог.
  • Начинайте с текстовых указаний. Добавляйте сценарии в scripts/, если действие должно выполняться одинаково каждый раз, например преобразование файла или обращение к внешней системе.

Codex использует поле description, чтобы подобрать навык. В начале описания назовите задачу и добавьте обычные формулировки, которыми вы её запрашиваете.

Где Codex ищет навыки?

Ключевые сведения

Навыки обнаруживаются на четырёх уровнях: в каталоге .agents/skills проекта — от текущей папки до корня репозитория, в личном $HOME/.agents/skills, в системном /etc/codex/skills и среди встроенных навыков OpenAI.

УровеньПутьНазначение
Проектный.agents/skills в текущей папке и родительских каталогах вплоть до корня репозиторияНавыки для проекта; их можно хранить в git вместе с кодом
Пользовательский$HOME/.agents/skillsЛичные навыки, доступные во всех проектах на этой машине
Системный/etc/codex/skillsОбщие навыки для пользователей машины или контейнера
ВстроенныйВ комплекте с CodexОсновные навыки OpenAI, например инструмент создания навыков

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

В Claude Code навыки размещаются в .claude/skills; каждый каталог содержит собственный SKILL.md, а формат также основан на открытом стандарте. Простой навык можно перенести копированием каталога, после чего проверить его запуск. Сравнение расширений Claude Code приведено в материале Skills, Subagents, MCP или Plugins.

Как Codex выбирает навык?

Ключевые сведения

Навык можно вызвать напрямую: в Codex CLI или расширении IDE укажите $имя-навыка в запросе либо выберите его через /skills. При автоматическом выборе Codex ищет соответствие между задачей и описанием навыка. Для этого навык должен быть доступен, а неявный вызов — разрешён.

На первых порах проще пользоваться прямым вызовом: например, в Codex CLI укажите $weekly-sales-report, чтобы выбрать конкретный процесс. При обычной работе удобнее автоматический подбор. После создания навыка проверьте его привычной формулировкой, не добавляя $, и убедитесь, что Codex его выбрал. Если этого не произошло, сначала проверьте, отображается ли навык в /skills, находится ли он в одном из каталогов поиска и не отключены ли сам навык или его автоматический вызов. Если настройки и расположение в порядке, сделайте description точнее: назовите задачу и типичные формулировки запроса.

Можно настроить навык так, чтобы он запускался только по явной команде. В agents/openai.yaml параметр allow_implicit_invocation: false отключает автоматический выбор, но вызов через $имя остаётся доступен. Полностью отключить навык, сохранив его на диске, можно через ~/.codex/config.toml:

[[skills.config]]
path = "/полный/путь/к/навыку/SKILL.md"
enabled = false

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

Как создать свой навык: пошагово

Ключевые сведения

Выберите одну регулярно повторяющуюся задачу. Создайте навык с помощью $skill-creator или вручную, задайте инструкции и ожидаемый результат, проверьте автоматический вызов на обычных запросах и улучшайте навык по итогам работы.

  1. Выбрать одну задачу

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

  2. Создать навык

    Для создания с помощью встроенного помощника введите $skill-creator в сессии Codex. Помощник уточнит назначение навыка, ситуации для его вызова и необходимость сценариев, а затем подготовит основу. Вручную создайте в проекте каталог .agents/skills и вложенную папку навыка, например .agents/skills/weekly-sales-report, затем добавьте в неё SKILL.md по примеру выше.

  3. Составить инструкции

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

  4. Проверить вызов

    Попросите Codex выполнить задачу обычными словами, не называя навык. Если он выбрал нужный вариант, описание сработало для этой формулировки. Затем проверьте прямой вызов через $имя. Если навык не срабатывает, проверьте расположение каталога, отображение в /skills и параметры отключения, описанные выше. Если нового навыка нет в списке, перезапустите Codex. Если прямой вызов работает и автоматический вызов разрешён, но обычный запрос не распознаётся, перепишите начало description: сначала сформулируйте задачу, затем добавьте распространённые варианты запроса. После этого проверьте ещё раз.

  5. Улучшать после запусков

    После каждого применения оцените результат и укажите, что изменить в навыке. Например: «В следующий раз добавь в итоговую таблицу столбец с долей». Для творческих задач корректируйте инструкции по обратной связи, если первая версия не соответствует ожиданиям.

Готовые навыки OpenAI и сообщества можно установить командой $skill-installer, указав название навыка. Чтобы распространять собственные навыки для других пользователей, их оформляют как плагины. Для личного применения такой способ упаковки не требуется.

Как проверять результат агента?

Ключевые сведения

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

Критерии могут быть объективными или субъективными. Объективные можно проверить подсчётом: например, наличие в отчёте всех 12 менеджеров из исходной выгрузки или совпадение суммы таблицы с итогом CSV. Укажите их как обязательные условия. Субъективные критерии относятся к качеству — например, текст должен звучать в вашей манере или выводы должны быть краткими. Их тоже можно сделать понятнее: включите пример удачного фрагмента и попросите агента сравнить с ним свой результат.

Полезно поручить агенту пройтись по критериям после подготовки результата, исправить обнаруженные недочёты и только затем показать работу. Anthropic описывает близкий подход как evaluator-optimizer: один исполнитель выполняет задачу, независимый оценщик находит проблемы и передаёт замечания для следующего прохода. Внутри одного навыка часто используют более простой вариант — заключительную самопроверку по списку. У него есть ограничение: исполнитель может не распознать собственную ошибку, поэтому такой способ слабее независимой оценки.

Пример раздела с проверками для отчёта:

## Перед передачей проверь
- В таблице есть каждый менеджер из выгрузки, пропусков нет.
- Общая сумма совпадает с итогом CSV до копейки.
- Все ключевые изменения подкреплены числами; если данных для сравнения нет, это прямо указано в отчёте.
- Файл сохранён по пути report.md, и путь сообщён пользователю.

Какую модель выбрать для навыка?

Ключевые сведения

Сначала используйте модель, на которой навык уже справился с задачей, затем попробуйте более дешёвые варианты. Если качество не ухудшилось, можно оставить более доступную модель. Тарифы API и ориентиры для первых проверок указаны по состоянию на 20 сентября 2026 года.

МодельВход, $/млн токеновВыход, $/млн токеновПодходящие первые задачи для проверки
GPT-6 Astra1050Навыки с развёрнутыми рассуждениями, изображениями и браузером
GPT-5.6 Sol420Текстовые навыки средней сложности
GPT-5.6 Terra2.5015Простые процессы с однозначным результатом
GPT-5.6 Luna0.201.20Механические действия: преобразовать формат, выполнить подсчёт, составить перечень

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

В таблице указаны тарифы API со страниц моделей, действовавшие 20 сентября 2026 года. Это не стоимость подписки ChatGPT: при работе через подписку расходуются её лимиты. На указанную дату для Sol действовал промотариф $4/$20 как минимум до 21 ноября 2026 года; обычная цена составляла $5/$30. Перед регулярным запуском с большим объёмом запросов проверьте текущую страницу тарифов OpenAI: промопредложения могут меняться.

Запустите один и тот же навык на следующей более дешёвой модели, а результат сравните с эталоном. Если качество осталось приемлемым, испытайте ещё более дешёвый вариант. Если оно упало, вернитесь к предыдущей модели. У моделей есть также уровни усилий (effort): для Astra доступны значения от low до max, для семейства 5.6 — от none до max. Сравнивайте их на том же образце: сначала выберите модель, затем её уровень усилий.

Регулярное выполнение навыка означает повторяющиеся расходы. Входной токен Astra стоит в 50 раз дороже токена Luna, поэтому стоимость одного и того же процесса будет существенно зависеть от выбранной модели. Для работы со скриншотами и документами слишком слабая модель может увеличить общие затраты, если придётся переделывать результат.

Частые ошибки при создании и применении навыков

  • Навык для всего сразу. Один навык должен охватывать один процесс — это соответствует рекомендациям OpenAI. Универсальные инструкции на десять страниц трудно сформулировать точно, а Codex выбирает навык именно по описанию.
  • Неопределённое описание. Формулировка «помогает с отчётами» не объясняет, для каких отчётов предназначен навык. Начните description с задачи и распространённых формулировок запроса.
  • Нет описания результата. Если не указать, что должно быть подготовлено и куда это сохранить, итоги разных запусков могут отличаться.
  • Отсутствуют проверки. Без заключительного этапа с критериями работа может остаться незавершённым черновиком, который придётся полностью проверять вручную.
  • Всегда включена самая мощная модель. Проверьте, справится ли более дешёвый вариант: запустите тот же навык и сравните его вывод с эталоном. Переходите на него, если качество сохраняется.
  • Повторяются названия. Codex не объединит навыки с одинаковыми именами из разных каталогов, и нужный вариант будет сложнее найти.

С чего начать и как перенести навык в Claude Code

Ключевые сведения

Выберите повторяемый процесс, создайте навык через $skill-creator, проверьте его на обычной формулировке и добавьте критерии финальной приёмки. После нескольких запусков обновите описание и инструкции, опираясь на найденные ошибки.

Если вы работаете с несколькими агентами, текстовый навык с SKILL.md можно скопировать в Claude Code. Там каталоги навыков хранятся в .claude/skills, а вызвать навык можно командой /имя. После переноса проверьте варианты со скриптами, зависимостями или файлом agents/openai.yaml. Подробнее о наборе навыков для Claude Code читайте в руководстве Claude Code Skills: подборка навыков для повседневной работы, а сравнение Codex и Claude Code — в статье Codex и Claude Code: сравнение.

Перейти к Ailoot.

Подробнее

Вопросы и ответы

Почему явный вызов skill работает, а автоматический выбор — нет?

Проверьте видимость skill в /skills и разрешение неявного вызова. Если всё правильно, уточните описание: начните с задачи и используйте привычные вам слова. Повторите тот же обычный запрос.

Что проверить в результате skill для отчёта о продажах?

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

Все статьи