Система навыков Codex Agent Skills

Agent Skills — это механизм расширения задач Codex. Упаковывая инструкции, ресурсы и дополнительные скрипты в стандартизированные пакеты навыков, они позволяют Codex надёжно выполнять определённые рабочие процессы.

Agent Skill — это по сути папка, которая должна содержать файлSKILL.md. Файл должен как минимум содержать метаданные, такие как имя и описание, а также руководство, объясняющее AI-агенту, как выполнить конкретную задачу. Пакеты навыков также могут включать скрипты, справочные материалы, шаблоны и различные другие ресурсы.

my-skill/
├── SKILL.md          # 必备文件:元数据 + 执行指引
├── scripts/          # 可选:可执行脚本
├── references/       # 可选:参考文档
├── assets/           # 可选:模板、各类资源文件
└── ...               # 其他额外文件与目录

Терминология

  • AI-агенты: интеллектуальный AI-агент (распространённый отраслевой перевод)
  • Agent Skills: Agent Skill (проприетарная концепция, сохраняйте фиксированное обозначение)
  • metadata: метаданные
  • workflows: рабочий процесс/поток выполнения

Что такое Agent Skills

Skills — это формат создания многоразовых рабочих процессов.

Каждый Skill — это по сути каталог, содержащий файлSKILL.md. Codex читает инструкции в нём и выполняет их шаг за шагом.

Можно рассматривать навык как "стандартную операционную процедуру", написанную для Codex: она чётко определяет, что делать, когда делать и как делать. Затем Codex может автоматически активировать её в нужный момент или выполнить её, когда вы явно вызываете её.

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

Навыки доступны в Codex CLI, расширении IDE и приложении Codex.

Вы можете просматривать или создавать навыки в плагине:

В Codex есть встроенныйSkill Creator, нажмитеCreat skill, чтобы перейти в окно создания навыка, где мы можем напрямую сказать ему, какой навык создать:

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


Как работают навыки

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

Процесс прогрессивной загрузки

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

Только когда Codex решает использовать навык, он загружает полное содержимое инструкцииSKILL.md.

Чтобы не вытеснять пространство промпта, количество символов в начальном списке навыков ограниченопримерно 2% контекстного окна модели, или 8,000 символов, когда контекстное окно неизвестно.

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

Это ограничение бюджета применяется только к первоначальному списку навыков. После того как Codex выбирает навык, он всё равно читает полный файл SKILL.md для этого навыка.

Два метода запуска

Codex поддерживает два способа активации навыков:

Skill 调用机制:显式调用 vs 隐式匹配

Явный вызов

Ссылайтесь на навык напрямую в запросе. В CLI или IDE используйте/skillsкоманду или введите$символ, чтобы указать навык.

При явном вызове Codex не нужно выполнять никакой проверки соответствия; он напрямую загружает полный SKILL.md и выполняет его.

Неявное сопоставление

Когда описание задачи, которое вы предоставляете, совпадает с полемdescriptionнавыка, Codex автоматически выбирает этот навык.

Точность неявного сопоставления полностью зависит от качества поля description.

При написании description ставьте основные варианты использования и ключевые слова-триггеры в начало, чтобы даже при усечении description Codex всё равно мог правильно сопоставить.


Структура каталога навыка

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

my-skill/
├── SKILL.md        # 必备项:使用指引 + 元数据
├── scripts/        # 可选:可执行代码
├── references/     # 可选:参考文档
├── assets/         # 可选:模板、各类资源
└── agents/
    └── openai.yaml
Agent Skill 目录结构图

Обязанности каждого файла/каталога следующие:

Файл/каталог Обязательно? Описание
SKILL.md Обязательный Основной файл инструкций для навыка; должен содержатьnameиdescriptionполе
scripts/ Optional Хранит исполняемый код, используемый для сценариев, требующих детерминированного поведения или вызова внешних инструментов
references/ Optional Хранит дополнительную справочную документацию, к которой Codex может обращаться при выполнении навыка
assets/ Optional Хранит файлы статических ресурсов, такие как шаблоны и изображения
agents/openai.yaml Optional Настраивает метаданные UI, политику вызова и объявления зависимостей инструментов

Быстрый старт: создайте свой первый навык

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

Создание с помощью skill-creator

Введите следующую команду в Codex, чтобы запустить интерактивный процесс создания:

Пример

# Запуск создателя навыков
$skill-creator

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

Шаг Вопрос Описание
1 Что делает этот навык? Определите задачу, которую навык должен выполнять
2 Когда он должен срабатывать? Решите, срабатывает ли он при явном вызове или неявном сопоставлении
3 Только инструкции или включает скрипты? По умолчанию рекомендуется режим чистых инструкций, так как он лаконичен и прост в поддержке

Ручное создание

Вы также можете вручную создать каталог навыка и файл SKILL.md:

Пример

---
name: my-skill
description: Объясните, когда этот навык должен срабатывать, а когда — нет.
---

Codex выполнит задачу, следуя приведённым ниже инструкциям навыка.

Codex автоматически обнаруживает изменения в файлах навыков. Если навык не вступает в силу сразу после обновления, перезапустите Codex.


Инструкции по настройке

Расположение хранилища навыков

Codex читает навыки из четырёх областей: уровень репозитория, уровень пользователя, уровень администратора и уровень системы.

Для уровня репозитория Codex сканирует вверх от текущей рабочей директории до корня репозитория в поисках.agents/skillsкаталога.

Если два навыка имеют одинаковоеname, Codex не объединяет их; оба появятся в селекторе навыков.

Область действия Путь хранения Сценарий применения
REPO $CWD/.agents/skills Навыки в текущем рабочем каталоге, подходящие для навыков, общих для команды, для конкретного модуля или микросервиса
REPO $CWD/../.agents/skills Навыки в родительских каталогах, подходящие для общих областей во вложенных структурах каталогов
REPO $REPO_ROOT/.agents/skills Навыки в корне репозитория, подходящие для базовых навыков, общих для всех подкаталогов всего репозитория
USER $HOME/.agents/skills Личный набор навыков пользователя, подходящий для навыков, которые пользователь может использовать в любом репозитории
ADMIN /etc/codex/skills Общие навыки на уровне машины или контейнера, подходящие для скриптов SDK, автоматизации и стандартных навыков администратора
СИСТЕМА Поставляется OpenAI по умолчанию Встроенные навыки для широкой аудитории, такие как skill-creator и навыки plan, доступны всем пользователям сразу после запуска Codex

Codex поддерживает символические ссылки для каталогов навыков и следует цели символической ссылки при сканировании.

Указанный выше путь применяется для локальной разработки и обнаружения. Если вам нужно распространять навыки пользователям за пределами одного репозитория или упаковывать их вместе с интеграцией приложения, используйте механизм Plugins.

Включение и отключение навыков

В~/.codex/config.tomlВы можете отключить навык, не удаляя файлы, с помощью[[skills.config]]параметра конфигурации:

Пример

# Путь к файлу: ~/.codex/config.toml
[[skills.config]]
path = "/path/to/skill/SKILL.md"
enabled = false

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

Необязательная настройка метаданных

Вagents/openai.yamlможно настроить метаданные интерфейса, политики вызова и объявления зависимостей инструментов для навыков:

Пример

# Путь к файлу: agents/openai.yaml
# Конфигурация интерфейса: управляет отображением навыка в Codex App
interface
:
  display_name
: "Отображаемое пользователю имя"
  short_description
: "Краткое описание для пользователя"
  icon_small
: "./assets/small-logo.svg"
  icon_large
: "./assets/large-logo.png"
  brand_color
: "#3B82F6"
  default_prompt
: "Необязательный вспомогательный промпт для использования с навыком"

# Конфигурация политики: управляет поведением при вызове навыка"
policy
:
  allow_implicit_invocation
: false  # Установите false, чтобы отключить неявное сопоставление

# Конфигурация зависимостей: объявляет инструменты, требуемые навыком
dependencies
:
  tools
:
    - type
: "mcp"
      value
: "openaiDeveloperDocs"       # Имя MCP-сервера
      description
: "MCP-сервер документации OpenAI"
      transport
: "streamable_http"       # Транспортный протокол
      url
: "https://developers.openai.com/mcp"  # Адрес сервиса MCP

allow_implicit_invocationЗначение по умолчанию дляtrue. Если установитьfalse, Codex не будет неявно вызывать навык на основе пользовательских запросов, но явный$skillвызов по-прежнему работает.

Элемент конфигурации Type Значение по умолчанию Описание
interface.display_name String Пусто Название, отображаемое в Codex App
interface.short_description String Пусто Краткое описание, отображаемое в Codex App
interface.icon_small Путь Пусто Путь к маленькому значку (формат SVG)
interface.icon_large Путь Пусто Путь к большому значку (формат PNG)
interface.brand_color Значение цвета Пусто Фирменный цвет, используемый для отображения в интерфейсе
interface.default_prompt String Пусто Периферийный промпт по умолчанию, используемый при использовании этого навыка
policy.allow_implicit_invocation Boolean истина Разрешено ли Codex неявно сопоставлять и вызывать навык
dependencies.tools Массив Пусто Объявляет инструменты MCP, от которых зависит навык; каждый элемент должен указывать type, value, description и т. д.

Распространение и установка навыков

Распространение навыков через плагины

Папка навыка напрямую подходит для локального создания и рабочих процессов в пределах репозитория.

Если вам нужно распространять переиспользуемые навыки, объединять несколько навыков вместе или публиковать навыки вместе с интеграцией приложения, их следует упаковать какплагин。

Плагин может содержать один или несколько навыков и, опционально, включать сопоставления приложений, конфигурации серверов MCP и презентационные ресурсы.

Установка рекомендуемых навыков

Вы можете использовать$skill-installer, чтобы установить отобранные навыки помимо встроенных в локальную среду Codex.

Например, установите$linearнавык:

Пример

# Установите навык linear в локальный Codex
$skill-installer linear

Вы также можете загружать навыки из других репозиториев с помощью skill-installer.

Codex автоматически обнаруживает недавно установленные навыки. Если они не появляются сразу, перезапустите Codex.

skill-installer подходит для локальной настройки и экспериментов. Чтобы распространять собственные навыки для повторного использования, предпочитайте механизм Plugins.


Лучшие практики

Принцип Описание Сценарий применения
Один навык выполняет одну задачу Сохраняйте фокус каждого навыка на одной ответственности; избегайте загрузки навыка со слишком большим количеством несвязанных задач Все навыки должны следовать
Инструкции важнее скриптов Если процесс можно описать с помощью инструкций, не пишите скрипт, если только не требуется детерминированное поведение или вызов внешних инструментов Режим чистых инструкций рекомендуется для большинства сценариев
Используйте шаблоны повелительных предложений Пишите шаги повелительными предложениями, чётко указывая входные и выходные данные каждого шага При написании инструкций SKILL.md
Проверьте эффективность сопоставления description Используйте реальные промпты, чтобы проверить, правильно ли срабатывает навык, обеспечивая точность description После написания навыка
Необходимые ключевые триггерные слова Поместите ключевые сценарии использования и триггерные слова в начало description, чтобы обеспечить сопоставление даже после усечения. Когда возможно усечение description

Часто задаваемые вопросы

Обновления навыка не вступают в силу?

Codex автоматически обнаруживает изменения в файлах навыка.

Если навык не появляется в списке после обновления, перезапустите Codex.

Что произойдет, если два навыка имеют одинаковое имя?

Codex не объединяет навыки с одинаковым именем; оба будут отображаться в селекторе навыков.

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

Что делать, если неявное сопоставление неточно?

Сначала проверьтеdescription, ясно ли описаны сценарии использования и границы навыка.

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

Если неявное сопоставление не требуется, вы можетеagents/openai.yamlвallow_implicit_invocationустановить вfalse。

Когда использовать Skills, а когда использовать Plugins?

Skills — это формат создания, подходящий для локальной разработки и совместного использования командой внутри репозитория.

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

Как обрабатывать усеченный начальный список навыков?

Упростите описание каждого навыка, чтобы оно было кратким и точным.

Убедитесь, что основные слова-триггеры находятся в самом начале описания, чтобы сопоставление работало корректно даже при сокращении.

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

Другие расширения