Codex Skills – это расширяемая система навыков, которая превращает AI-ассистента из универсального помощника в специализированный инструмент для решения конкретных задач. Вы можете научить искусственный интеллект работать с вашими любимыми сервисами, автоматизировать рутинные процессы или интегрировать его в рабочий процесс команды – именно для этого и созданы Skills.
Экосистема навыков стремительно развивается: разработчики по всему миру создают и делятся готовыми решениями на GitHub, формируют коллекции лучших практик и помогают новичкам освоить технологию. Однако найти нужный навык, правильно его установить и настроить – задача, которая может вызвать затруднения даже у опытных пользователей.
В этой статье вы узнаете, что представляют собой Codex Skills и какие возможности они открывают. Мы покажем, где искать готовые навыки и как их использовать на практике, а также подробно разберем процесс создания собственного Skills – от базовой структуры до публикации в открытом доступе.
Что такое Codex Skills
Codex Skills – это дополнительные модули, которые расширяют возможности ИИ-ассистента Codex. Работают как плагины: каждый навык добавляет новую функцию или интеграцию с внешним сервисом. Вместо того чтобы вручную настраивать каждое действие, пользователь подключает готовый скилл, и Codex получает доступ к новым инструментам.
Навыки для Codex позволяют автоматизировать рутинные задачи, работать с API сторонних платформ и выполнять специализированные операции без написания кода с нуля. Особенно полезно, когда нужно быстро интегрировать несколько сервисов или настроить сложный рабочий процесс.
Определение и основные возможности
Codex Skills – набор предустановленных или пользовательских функций, которые расширяют базовые возможности ИИ-агента. Каждый скилл решает конкретную задачу. От генерации изображений до работы с базами данных.
Основные возможности навыков:
- Интеграция с внешними API – подключение к сервисам вроде Google Sheets, Notion, Slack или Telegram без необходимости писать код интеграции самостоятельно
- Автоматизация повторяющихся действий – создание шаблонов для типовых задач: отправка уведомлений, обработка данных, генерация отчётов
- Расширение аналитических функций – обработка больших массивов данных, визуализация, построение графиков
- Работа с мультимодальным контентом – генерация изображений, обработка видео, распознавание текста на скриншотах
Что такое Codex Skills на практике? Способ превратить универсального ИИ-помощника в специализированный инструмент под конкретные задачи. Вместо того чтобы объяснять Codex каждый раз, как работать с определённым сервисом, вы один раз подключаете навык, и он становится частью рабочего процесса.
Преимущества использования Skills
Навыки для Codex дают несколько ключевых преимуществ по сравнению с ручной настройкой или написанием скриптов.
Скорость внедрения. Готовый скилл подключается за несколько минут. Не нужно разбираться в документации API, настраивать аутентификацию или тестировать запросы – всё это уже сделано разработчиком навыка.
Снижение порога входа. Даже если вы не программист, вы можете использовать сложные интеграции. Codex agent skills берут на себя техническую часть, оставляя пользователю только настройку параметров.
Гибкость и масштабируемость. Один навык можно использовать в разных проектах. Настроили интеграцию с CRM для одной задачи? Тот же скилл подойдёт и для других сценариев – достаточно изменить параметры.
Обновления и поддержка. Когда API внешнего сервиса меняется, разработчик навыка обновляет его код. Вам не нужно следить за изменениями в документации и переписывать интеграцию вручную.
Комбинирование возможностей. Несколько навыков можно объединить в цепочку действий. Например, один скилл извлекает данные из таблицы, второй обрабатывает их, третий отправляет результат в мессенджер. Просто и эффективно.
Типы и категории навыков
Скиллы для Codex делятся на несколько основных категорий в зависимости от задач, которые они решают.
Работа с кодом и разработка. Навыки этой категории помогают генерировать код, проверять его на ошибки, рефакторить или документировать. Сюда входят скиллы для работы с Git, автоматического тестирования, анализа зависимостей и развёртывания приложений.
Дизайн и визуализация. Codex скиллы дизайн включают генерацию изображений, создание макетов, обработку графики и работу с векторными форматами. Некоторые навыки интегрируются с Figma, Canva или Adobe API, позволяя автоматизировать рутинные задачи дизайнера.
Интеграции с сервисами. Самая обширная категория. Навыки подключают Codex к популярным платформам: Google Workspace, Microsoft 365, Trello, Asana, Jira, Airtable. Они позволяют читать и записывать данные, создавать задачи, отправлять уведомления.
Аналитика и обработка данных. Скиллы для работы с таблицами, базами данных, построения графиков и статистического анализа. Часть навыков интегрируется с Power BI, Tableau или Google Data Studio.
Коммуникация и уведомления. Навыки для отправки сообщений в Telegram, Slack, Discord, email-рассылок или SMS. Помогают настроить автоматические уведомления о событиях или результатах выполнения задач.
Мультимодальные возможности. Навыки для работы с изображениями, видео, аудио и документами. Сюда входят распознавание текста, транскрибация, генерация субтитров, конвертация форматов.
Каждая категория содержит десятки отдельных навыков, и их количество постоянно растёт. Выбор зависит от того, какие задачи вы решаете и с какими сервисами работаете.
Как использовать и где найти Codex Skills
Репозитории и источники Skills
Codex Skills можно находить несколькими способами: через каталог plugins в Codex, через внутренние репозитории команды, через GitHub и через собственные marketplace-файлы. Важно различать skill и plugin: skill описывает рабочий процесс, а plugin является устанавливаемым пакетом, который может включать один или несколько skills, app-интеграции и MCP-настройки.
Самый удобный способ для пользователя Codex – открыть каталог plugins. В Codex app это делается через раздел Plugins. В Codex CLI можно открыть список plugins командой:
codex
/plugins
После установки plugin входящие в него skills становятся доступными Codex. Если plugin содержит интеграции с внешними сервисами, например Slack, Google Drive или Gmail, Codex может запросить авторизацию во время установки или при первом использовании.
GitHub тоже остаётся полезным источником, особенно для open-source skills и plugins. Однако не стоит считать любой репозиторий с названием “codex skill” готовым и безопасным решением. Перед установкой нужно проверить структуру проекта, наличие SKILL.md, файл .codex-plugin/plugin.json, если это plugin, документацию, лицензию, историю изменений и содержимое скриптов.
Для поиска на GitHub можно использовать запросы вроде:
codex skill SKILL.md
codex plugin plugin.json
.codex-plugin plugin.json skills
openai codex skills
Дополнительно можно искать по темам репозиториев: codex, codex-skills, codex-plugin, agent-skills, ai-agents. Но теги не гарантируют совместимость с актуальным форматом Codex Skills, поэтому всегда проверяйте файлы вручную.
Отдельного внимания заслуживают marketplace-файлы. Marketplace – это JSON-каталог plugins, который Codex может прочитать и показать пользователю как источник установки. Marketplace может быть личным, проектным или командным. Это удобный способ собрать проверенные plugins для конкретного репозитория, компании или команды.
Пример источников, где можно искать skills и plugins:
1. Каталог plugins в Codex
Подходит, если нужен готовый plugin, который можно установить через интерфейс Codex app или Codex CLI.
2. Репозиторий проекта
Подходит для repo-scoped skills, которые нужны только внутри конкретного проекта. Обычно такие skills лежат в папке .agents/skills/.
3. Личная папка пользователя
Подходит для skills, которые должны быть доступны в разных проектах. Обычно такие skills размещаются в $HOME/.agents/skills/.
4. GitHub и внутренние Git-репозитории
Подходят для распространения skills и plugins внутри сообщества или команды. Для публичных решений желательно наличие README.md, CHANGELOG.md, лицензии и понятного описания безопасности.
5. Командный marketplace
Подходит для организаций, которым нужно централизованно распространять проверенные plugins между разработчиками.
При выборе стороннего skill или plugin обращайте внимание не только на функциональность, но и на безопасность. Skill может содержать инструкции, которые влияют на поведение агента, а plugin может дополнительно подключать внешние сервисы, MCP-серверы или исполняемые скрипты.
Установка и подключение навыков
Способ установки зависит от того, что именно вы подключаете: отдельный локальный skill, project-scoped skill, plugin из каталога, локальный plugin или skill через OpenAI API.
Вариант 1: project-scoped skill внутри репозитория
Если навык нужен только для одного проекта, добавьте его в папку .agents/skills/ внутри репозитория:
my-project/
├── .agents/
│ └── skills/
│ └── text-analyzer/
│ ├── SKILL.md
│ └── scripts/
│ └── analyze_text.py
└── README.md
Минимальный файл SKILL.md:
---
name: text-analyzer
description: Analyze plain text and return exact word, character, and sentence statistics. Use when the user asks to count words, characters, sentences, or basic text metrics.
---
Use this skill when the user asks for text statistics.
Steps:
1. Check that the text is provided.
2. Count words, characters, and sentence-ending punctuation.
3. Return a concise JSON-compatible result.
4. If the text is empty, explain that the input cannot be empty.
После этого Codex сможет обнаружить skill в проекте. Его можно вызвать явно, упомянув имя навыка в запросе, или неявно – если задача совпадает с description.
Пример явного запроса:
Используй skill text-analyzer и посчитай слова, символы и предложения в этом тексте:
Привет мир. Это тест.
Вариант 2: пользовательский skill для разных проектов
Если навык должен быть доступен не только в одном репозитории, поместите его в пользовательскую папку:
mkdir -p "$HOME/.agents/skills"
cp -R ./text-analyzer "$HOME/.agents/skills/text-analyzer"
Такой skill можно использовать в разных рабочих директориях. Но если он зависит от конкретной структуры проекта, лучше хранить его внутри репозитория в .agents/skills/.
Вариант 3: установка plugin через Codex
Если skill распространяется как часть plugin, его лучше устанавливать через каталог plugins. В Codex CLI откройте каталог:
codex
/plugins
Затем выберите нужный plugin, откройте его карточку и установите. После установки можно начать новую задачу и попросить Codex использовать plugin или один из skills внутри него.
Пример запроса:
Используй установленный plugin для работы с документацией и обнови README по изменениям в этом PR.
Если нужно явно выбрать конкретный plugin или skill, используйте доступный в интерфейсе способ упоминания plugin или skill. В Codex CLI и IDE skills можно выбирать через список skills или ввод имени навыка, а в каталоге plugins можно включать и отключать установленные plugins.
Вариант 4: локальный plugin для команды или проекта
Plugin обычно имеет такую структуру:
my-plugin/
├── .codex-plugin/
│ └── plugin.json
└── skills/
└── text-analyzer/
└── SKILL.md
Минимальный файл .codex-plugin/plugin.json:
{
"name": "text-analyzer-plugin",
"version": "1.0.0",
"description": "Reusable Codex workflow for text statistics.",
"skills": "./skills/"
}
Для project-scoped marketplace можно создать файл .agents/plugins/marketplace.json в корне репозитория:
{
"name": "local-repo",
"interface": {
"displayName": "Local Repo Plugins"
},
"plugins": [
{
"name": "text-analyzer-plugin",
"source": {
"source": "local",
"path": "./plugins/text-analyzer-plugin"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}
После изменения marketplace-файла перезапустите Codex и проверьте, появился ли plugin в каталоге.
Вариант 5: подключение marketplace из CLI
Если marketplace хранится в GitHub-репозитории или локальной папке, его можно добавить через CLI:
codex plugin marketplace add owner/repo
codex plugin marketplace add owner/repo --ref main
codex plugin marketplace add ./local-marketplace-root
Для обновления или удаления marketplace используются команды:
codex plugin marketplace upgrade
codex plugin marketplace remove marketplace-name
Вариант 6: использование skills через OpenAI API
В API skills можно загружать и подключать к shell environment. Для hosted shell используется ссылка на загруженный skill, а для local shell – путь к локальной папке skill.
Пример подключения skill в hosted shell:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.5",
tools=[
{
"type": "shell",
"environment": {
"type": "container_auto",
"skills": [
{
"type": "skill_reference",
"skill_id": "<skill_id>"
}
]
}
}
],
input="Use the attached skill to summarize the CSV reports."
)
print(response.output_text)
Пример подключения локального skill через local shell:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.5",
tools=[
{
"type": "shell",
"environment": {
"type": "local",
"skills": [
{
"name": "csv-insights",
"description": "Summarize CSV files and produce a markdown report.",
"path": "<path-to-skill-folder>"
}
]
}
}
],
input="Use the csv-insights skill to summarize today's CSV reports in this repo."
)
print(response.output_text)
Не нужно устанавливать Codex Skills через pip install codex-skill-name, если только конкретный plugin или вспомогательный скрипт явно не требует отдельной Python-зависимости. Сам skill – это не Python-пакет, а папка с SKILL.md, инструкциями, ресурсами и, при необходимости, скриптами.
Практические примеры использования
Навык для работы с веб-страницами
Skill для работы с веб-страницами обычно не должен сам притворяться браузером. Лучше описать рабочий процесс: когда нужно извлечь информацию, какие источники проверить, как структурировать результат, когда использовать доступные инструменты или MCP-интеграции, и какие ограничения соблюдать.
---
name: web-research-summary
description: Summarize information from web pages. Use when the user asks to extract key facts, compare sources, or produce a concise research summary from URLs.
---
Use this skill when the user provides one or more URLs and asks for a summary, comparison, or structured extraction.
Steps:
1. Check that the URLs are provided.
2. Open and inspect each source available through the configured tools.
3. Extract only information supported by the source.
4. Return:
- title or topic
- key points
- important dates or numbers
- source-specific caveats
5. Do not invent facts that are not present in the sources.
6. If a page is unavailable, say so clearly.
Пример запроса к Codex:
Используй skill web-research-summary и сделай краткую сводку по этим трём URL. Отдельно отметь, где источники противоречат друг другу.
Такой skill полезен для задач, где важна повторяемая структура результата: исследовательские заметки, сравнение источников, подготовка кратких справок или извлечение данных из документации.
Навык для работы с файлами
Skill для файлов может описывать, как читать документы, какие форматы поддерживать, когда запускать вспомогательные скрипты и как возвращать результат. Если нужны точные операции, например конвертация, подсчёт строк или генерация отчёта, лучше добавить скрипт в папку scripts/.
document-summary/
├── SKILL.md
└── scripts/
└── summarize_text_file.py
Пример SKILL.md:
---
name: document-summary
description: Summarize local text documents and produce a concise report. Use when the user asks to summarize, inspect, or extract key points from project files.
---
Use this skill when the user asks to summarize local project documents.
Steps:
1. Identify the file path or ask for it if missing.
2. Check that the file exists and is readable.
3. If the file is plain text or Markdown, read it directly.
4. If the file requires conversion, explain what conversion is needed before proceeding.
5. Produce:
- short summary
- key points
- open questions
- any limitations caused by file format or missing content.
Пример запроса:
Используй skill document-summary и сделай краткое резюме файла docs/release-notes.md.
Такой навык избавляет от необходимости каждый раз объяснять агенту формат отчёта, правила обработки файлов и желаемую структуру ответа.
Навык для API-интеграций
Если skill должен работать с внешними API, лучше не хранить токены внутри файлов навыка. В SKILL.md нужно описать, какие переменные окружения или MCP-инструменты требуются, какие действия разрешены и когда нужно запросить подтверждение пользователя.
---
name: api-status-check
description: Check API health and summarize service status. Use when the user asks to inspect API availability, response codes, or recent failures.
---
Use this skill when the user asks to check API health.
Requirements:
- API base URL must be provided by the user or configured in the environment.
- Secrets must come from environment variables or approved connectors.
- Do not print tokens or secret headers.
Steps:
1. Confirm the target API or service name.
2. Check the allowed endpoint or configured health endpoint.
3. Use a short timeout.
4. Summarize:
- status code
- response time if available
- error message if any
- recommended next action
5. Ask for confirmation before making any state-changing API request.
Пример безопасного запроса:
Используй skill api-status-check и проверь health endpoint staging API. Ничего не меняй, только прочитай статус.
Такой подход лучше, чем импортировать условный класс SlackSkill или DatabaseSkill из несуществующей универсальной библиотеки. В Codex Skill описывает рабочий процесс, а реальные действия выполняются через доступные инструменты, скрипты, MCP-серверы или app-интеграции.
Интеграция Skills с ChatGPT
Codex Skills и Skills в ChatGPT связаны общей идеей: это переиспользуемые рабочие процессы с инструкциями, примерами и, при необходимости, кодом. Но они не являются одним и тем же интерфейсом установки во всех продуктах.
В ChatGPT есть собственная поддержка Skills. Она доступна в beta для отдельных рабочих планов, включая Business, Enterprise, Edu, Teachers и Healthcare. В ChatGPT skills можно создавать, устанавливать, загружать с компьютера и делиться ими внутри workspace, если это разрешено администратором.
При этом skills пока не синхронизируются автоматически между ChatGPT, Codex и API. Если skill создан в одном продукте, его может потребоваться скачать, перенести или установить отдельно в другом продукте.
Использование skills в ChatGPT обычно выглядит так:
1. Откройте меню профиля в ChatGPT.
2. Перейдите в раздел Skills.
3. Создайте новый skill, загрузите skill с компьютера или установите skill, которым с вами поделились.
4. После установки ChatGPT сможет использовать skill автоматически, когда задача подходит под его описание.
Если вы работаете не в интерфейсе ChatGPT, а через OpenAI API, используйте Skills через Responses API и shell tool. В этом случае skill подключается как часть окружения, а модель решает, когда его применять. Для более детерминированного поведения прямо укажите в запросе, какой skill нужно использовать.
Пример запроса через API с локальным skill:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.5",
tools=[
{
"type": "shell",
"environment": {
"type": "local",
"skills": [
{
"name": "release-notes",
"description": "Draft release notes from git diffs and changelog files.",
"path": "./.agents/skills/release-notes"
}
]
}
}
],
input="Use the release-notes skill to draft release notes for the current repository."
)
print(response.output_text)
Не стоит описывать интеграцию как подключение к LangChain, AutoGPT или универсальной библиотеке codex_skills, если статья именно про Codex Skills. Такие фреймворки могут иметь собственные механизмы tools, agents и prompts, но это не официальный способ установки Codex Skills.
Также не стоит писать, что “ChatGPT Plus с плагинами” является способом подключить Codex Skills. Плагины старого формата и современные Skills – разные механизмы. Для ChatGPT нужно говорить о разделе Skills, workspace-доступе и beta-ограничениях. Для Codex – о skills, plugins, marketplace и папках .agents/skills/.
Итоговая логика простая: если вы работаете в Codex, используйте локальные skills или plugins. Если вы работаете через API, подключайте skills к shell environment. Если вы работаете в ChatGPT, используйте раздел Skills, если он доступен в вашем плане и включён администратором.
Создание собственных Codex Skills
Создание собственного навыка для Codex – это способ описать повторяемый рабочий процесс, который агент сможет применять в подходящих задачах. Skill не является набором зарегистрированных Python-функций и не требует отдельного JSON-манифеста. Основной файл навыка – SKILL.md: в нём указываются метаданные и инструкции, по которым Codex понимает, когда и как использовать навык.
Структура и требования к Skills
Навык для Codex представляет собой папку с обязательным файлом SKILL.md. Остальные файлы добавляются только при необходимости: скрипты, справочные материалы, шаблоны, изображения, конфигурация для агента или документация.
Минимальная структура папки навыка:
text-analyzer/
└── SKILL.md
Расширенная структура навыка может выглядеть так:
text-analyzer/
├── SKILL.md
├── scripts/
│ └── analyze_text.py
├── references/
│ └── examples.md
├── assets/
│ └── result-template.json
└── agents/
└── openai.yaml
Обязательный файл SKILL.md содержит два основных элемента: front matter с метаданными и текстовые инструкции для агента. В front matter обязательно указываются поля name и description.
name– короткое уникальное имя навыка латиницей, обычно в нижнем регистре и без пробелов;description– описание того, когда нужно использовать навык, а не просто общее описание функционала;- основной текст
SKILL.md– пошаговая инструкция, которой Codex будет следовать при выполнении задачи; scripts/– опциональная папка для вспомогательных скриптов, если нужны точные вычисления или повторяемая автоматизация;references/– опциональная папка для справочных материалов, примеров, правил или длинной документации;assets/– опциональная папка для шаблонов, изображений, конфигураций и других ресурсов;agents/openai.yaml– опциональная конфигурация для дополнительных настроек, если они нужны конкретному агенту.
Пример базового файла SKILL.md:
---
name: text-analyzer
description: Analyze plain text and return word, character, and sentence statistics. Use when the user asks to count words, characters, sentences, or basic text statistics.
---
# Text Analyzer
Use this skill when the user asks for basic statistics about a text.
Steps:
1. Check that the user provided the text.
2. If the text is missing, ask for it.
3. Count:
- words
- characters
- sentences
4. Return the result in a concise JSON-compatible format.
5. If the text is empty, explain that the input cannot be empty.
Важно: description должно помогать Codex понять, когда навык нужно активировать. Хорошее описание содержит не только то, что делает навык, но и ситуации, в которых его следует использовать.
Пример плохого описания:
description: Text analyzer skill.
Пример хорошего описания:
description: Analyze plain text and return word, character, and sentence statistics. Use when the user asks to count words, characters, sentences, or basic text statistics.
Технические требования и рекомендации к навыку:
- файл
SKILL.mdдолжен быть понятным, коротким и достаточно конкретным; - инструкции должны описывать рабочий процесс, а не только перечислять возможности;
- если используются скрипты, они должны быть детерминированными и запускаться понятной командой;
- если скрипт возвращает данные, результат лучше делать сериализуемым в JSON;
- если нужны внешние API-ключи, переменные окружения или доступ к сети, это должно быть явно описано в документации;
- секреты, токены и приватные ключи нельзя хранить внутри файлов навыка;
- зависимости Python можно документировать отдельно, но
requirements.txtне является обязательным файлом самого Codex Skill; - навыки из сторонних источников нужно проверять перед установкой, так как они могут влиять на действия агента.
Разработка функционала навыка
Основная логика навыка описывается в SKILL.md. Если задачу можно надёжно выполнить инструкциями, отдельный код не нужен. Скрипты стоит добавлять тогда, когда требуется точность, повторяемость или работа с файлами, например: подсчёт статистики, преобразование данных, генерация отчётов, валидация конфигураций.
Пример навыка со вспомогательным Python-скриптом:
text-analyzer/
├── SKILL.md
└── scripts/
└── analyze_text.py
Файл SKILL.md в таком случае должен объяснять, когда запускать скрипт и какой результат вернуть пользователю:
---
name: text-analyzer
description: Analyze plain text with deterministic counts. Use when the user asks for exact word, character, and sentence statistics.
---
# Text Analyzer
Use this skill when the user asks for exact text statistics.
When deterministic counting is required, run:
python scripts/analyze_text.py --text "<input text>"
Return the result as JSON with:
- words
- characters
- sentences
If the script returns an error, explain the error briefly and ask the user for corrected input if needed.
Пример файла scripts/analyze_text.py:
import argparse
import json
import re
def analyze_text(text: str) -> dict:
"""
Analyzes plain text and returns basic statistics.
Args:
text: Text for analysis.
Returns:
JSON-serializable dictionary with text statistics or an error.
"""
if not isinstance(text, str):
return {
"error": "Параметр 'text' должен быть строкой"
}
if len(text.strip()) == 0:
return {
"error": "Текст не может быть пустым"
}
words = re.findall(r"\b\w+\b", text, flags=re.UNICODE)
sentences = re.findall(r"[.!?…]+", text)
return {
"words": len(words),
"characters": len(text),
"sentences": len(sentences)
}
def main() -> None:
parser = argparse.ArgumentParser(description="Analyze plain text statistics.")
parser.add_argument("--text", required=True, help="Text for analysis")
args = parser.parse_args()
result = analyze_text(args.text)
print(json.dumps(result, ensure_ascii=False))
if __name__ == "__main__":
main()
Запуск скрипта вручную:
python scripts/analyze_text.py --text "Привет мир. Это тест."
Ожидаемый результат:
{
"words": 4,
"characters": 21,
"sentences": 2
}
Правила обработки параметров:
- проверяйте наличие обязательных параметров;
- проверяйте типы данных, если скрипт принимает аргументы;
- возвращайте понятную ошибку вместо аварийного завершения там, где это возможно;
- не возвращайте объекты классов, открытые файловые дескрипторы, функции и другие значения, которые нельзя преобразовать в JSON;
- для сетевых запросов используйте таймауты и обработку исключений;
- не выполняйте опасные действия без явного подтверждения пользователя.
Пример обработки ошибок для сетевого запроса во вспомогательном скрипте:
import requests
def fetch_data(url: str) -> dict:
if not isinstance(url, str) or len(url.strip()) == 0:
return {
"error": "Параметр 'url' обязателен и должен быть непустой строкой"
}
try:
response = requests.get(url, timeout=5)
response.raise_for_status()
return {
"data": response.json()
}
except requests.Timeout:
return {
"error": "Превышено время ожидания"
}
except requests.RequestException as error:
return {
"error": f"Ошибка запроса: {str(error)}"
}
except ValueError:
return {
"error": "Ответ сервера не является корректным JSON"
}
Если навык использует внешние библиотеки, укажите это в документации. Например, можно добавить раздел в README.md или отдельный файл с инструкцией по установке. Не стоит писать, что Codex Skill всегда автоматически устанавливает зависимости из requirements.txt: такой файл может быть полезен для локальной разработки, но не является обязательной частью формата навыка.
Тестирование и отладка
Перед публикацией навык нужно проверить в двух направлениях: правильно ли Codex понимает, когда использовать skill, и корректно ли работают вспомогательные скрипты, если они есть.
Что нужно протестировать:
- срабатывает ли навык на запросы, которые подходят под
description; - не срабатывает ли навык на задачи, для которых он не предназначен;
- достаточно ли инструкций в
SKILL.md, чтобы выполнить задачу без догадок; - работают ли команды запуска скриптов из любой ожидаемой рабочей директории;
- обрабатываются ли пустые строки, некорректные типы, длинные тексты и специальные символы;
- не содержит ли skill секретов, приватных URL, токенов или лишних прав доступа.
Для проверки Python-скрипта можно создать файл tests/test_analyze_text.py:
import json
from scripts.analyze_text import analyze_text
def test_basic_analysis():
result = analyze_text("Привет мир. Это тест.")
assert result["words"] == 4
assert result["characters"] == 21
assert result["sentences"] == 2
def test_empty_text():
result = analyze_text("")
assert "error" in result
def test_json_serializable_result():
result = analyze_text("Пример текста.")
json.dumps(result, ensure_ascii=False)
Запуск тестов:
python -m pytest tests/test_analyze_text.py
Типичные ошибки при разработке навыков:
- Использование неверной структуры – вместо
SKILL.mdсоздаётсяmanifest.jsonс описанием функций; - Слишком общее описание – Codex не понимает, когда применять навык;
- Смешение skill и Python-библиотеки – навык описывается как набор функций, хотя основа Codex Skill – инструкция для агента;
- Отсутствие понятной команды запуска – в
SKILL.mdупоминается скрипт, но не указано, как его вызвать; - Неправильный формат возврата – скрипт возвращает объект, который нельзя сериализовать в JSON;
- Отсутствие обработки ошибок – скрипт падает при пустых или некорректных входных данных;
- Секреты в коде – API-ключи, токены и пароли добавлены прямо в файлы навыка;
- Опасные действия без подтверждения – навык удаляет файлы, отправляет запросы или меняет систему без явного разрешения пользователя.
Способы отладки:
- проверяйте
descriptionна разных формулировках пользовательских запросов; - запускайте вспомогательные скрипты напрямую из терминала;
- добавляйте тесты для граничных случаев;
- используйте линтеры и форматтеры, например
ruff,flake8илиblack; - проверяйте, что все команды из
SKILL.mdдействительно работают; - делайте инструкции конкретными: что проверить, какую команду выполнить, какой результат вернуть.
Пример тестовых запросов для проверки активации навыка:
Подходящие запросы:
- Посчитай слова и символы в этом тексте.
- Сколько предложений в абзаце?
- Верни статистику по тексту.
Неподходящие запросы:
- Переведи этот текст на английский.
- Напиши рекламный пост.
- Найди ошибки в стиле статьи.
Публикация и распространение
Навык можно использовать локально, внутри репозитория или распространять как часть Codex plugin. Для локального или проектного использования достаточно поместить папку навыка в подходящее место. Для повторного использования другими пользователями удобнее упаковать skill в plugin и опубликовать его в репозитории.
Где можно хранить skills:
.agents/skills/внутри проекта – навыки, доступные для конкретного репозитория;$HOME/.agents/skills/– пользовательские навыки, доступные в окружении пользователя;/etc/codex/skills/– административные навыки, если они настроены на уровне системы.
Пример структуры project-scoped skill:
my-project/
├── .agents/
│ └── skills/
│ └── text-analyzer/
│ ├── SKILL.md
│ └── scripts/
│ └── analyze_text.py
└── README.md
Для распространения через GitHub или другой репозиторий skill лучше оформить как plugin. В этом случае plugin является устанавливаемой единицей, а skill лежит внутри него.
Пример структуры plugin:
text-analyzer-plugin/
├── .codex-plugin/
│ └── plugin.json
├── skills/
│ └── text-analyzer/
│ ├── SKILL.md
│ └── scripts/
│ └── analyze_text.py
├── README.md
├── CHANGELOG.md
└── LICENSE
Пример файла .codex-plugin/plugin.json:
{
"name": "text-analyzer-plugin",
"version": "1.0.0",
"description": "Reusable Codex skill for deterministic text statistics.",
"skills": "./skills/"
}
Рекомендуемая структура документации в README.md:
# Text Analyzer Plugin
Codex plugin with a skill for deterministic text statistics.
## What it does
The skill helps Codex count:
- words
- characters
- sentences
## Included skills
### text-analyzer
Use this skill when the user asks for exact text statistics.
## Example request
Посчитай слова, символы и предложения в тексте:
Привет мир. Это тест.
## Example result
{
"words": 4,
"characters": 21,
"sentences": 2
}
## Requirements
No external API keys are required.
## Security notes
The skill does not need network access and does not store secrets.
Шаги публикации:
- создайте репозиторий для plugin или skill;
- поместите файлы навыка в корректную структуру;
- добавьте
README.mdс описанием, примерами и требованиями; - добавьте
LICENSE, например MIT или Apache 2.0, если навык будет публичным; - добавьте
CHANGELOG.md, чтобы фиксировать изменения версий; - проверьте, что
SKILL.mdне содержит секретов и опасных инструкций; - создайте версионный тег, например
git tag v1.0.0; - отправьте изменения в репозиторий.
Чтобы навык было легче найти, можно добавить теги в описание репозитория: codex, codex-skills, codex-plugin, automation, developer-tools.
Продвижение в сообществе:
- опишите реальные сценарии использования в
README.md; - добавьте понятные примеры запросов, на которых skill должен срабатывать;
- покажите примеры результата;
- отвечайте на вопросы пользователей в Issues репозитория;
- обновляйте документацию при изменении поведения навыка.
Обновление навыка:
- внесите изменения в
SKILL.md, скрипты или справочные файлы; - проверьте навык на тестовых запросах;
- запустите тесты для вспомогательных скриптов;
- обновите версию plugin, если навык распространяется как plugin;
- опишите изменения в
CHANGELOG.md; - создайте новый тег, например
git tag v1.1.0; - отправьте изменения в репозиторий.
Не стоит обещать, что пользователи автоматически получат уведомление об обновлении. Лучше указать, что после публикации новой версии пользователи смогут обновить plugin или skill в соответствии с используемым способом установки.
Отдельно проверьте безопасность перед публикацией. Skills являются инструкциями, которым агент может следовать при работе с файлами, командами и инструментами. Поэтому сторонние skills нужно читать перед установкой, а собственные skills – писать так, чтобы они не провоцировали утечку данных, удаление файлов, выполнение непроверенных команд или передачу секретов во внешние сервисы.
Полезные ресурсы и сообщества
Работа с Codex Skills становится продуктивнее, когда под рукой есть проверенные источники информации и доступ к опыту других разработчиков. Давайте разберём, где искать готовые решения, как учиться и с кем обмениваться идеями.
Awesome-списки и коллекции
Кураторские подборки на GitHub помогают быстро найти качественные навыки под конкретные задачи. Репозитории формата awesome codex skills собирают лучшие примеры, отсортированные по категориям: обработка данных, интеграции с API, автоматизация рутины. Один из примеров таких репозиториев: https://github.com/ComposioHQ/awesome-codex-skills.
Такие коллекции обычно включают описание функционала каждого навыка, ссылки на исходный код, примеры использования, информацию о поддерживаемых версиях и зависимостях.
Некоторые разработчики создают тематические коллекции под узкие задачи: работа с базами данных, парсинг веб-страниц, генерация отчётов. Такие списки экономят время на поиск. И позволяют сравнить несколько решений одной проблемы.
Документация и обучающие материалы
Официальная документация (не открывается с российского IP-адреса) Codex Skills – первое место, куда стоит заглянуть при возникновении вопросов. Там описана архитектура навыков, API, правила написания кода и требования к структуре проекта.
Помимо официальных источников, полезны:
- Туториалы на GitHub – пошаговые инструкции по созданию навыков с нуля. Часто включают готовый код, который можно адаптировать под свои нужды.
- Видеоуроки – визуальный формат помогает разобраться в сложных моментах: настройке окружения, отладке, интеграции с внешними сервисами.
- Статьи в блогах разработчиков – практические кейсы с разбором ошибок и способов их решения.
Обучающие материалы стоит выбирать по актуальности. Codex Skills развивается, и инструкция двухлетней давности может содержать устаревшие подходы.
Если документация не отвечает на конкретный вопрос, имеет смысл поискать issue на GitHub в репозитории проекта. Часто там уже обсуждали похожую проблему и предложили решение.
Сообщества разработчиков
Обмен опытом с другими разработчиками ускоряет обучение и помогает избежать типичных ошибок. Сообщество Codex активно на нескольких площадках.
Discord-серверы и Slack-каналы – место для быстрых вопросов и обсуждений. Здесь можно получить помощь с отладкой, узнать о новых возможностях или поделиться своим навыком.
Форумы и Reddit – подходят для развёрнутых дискуссий. Темы остаются доступными долгое время, что удобно для поиска решений через поисковик.
GitHub Discussions – формат, где разработчики обсуждают архитектурные решения, предлагают улучшения и делятся наработками. Здесь же можно найти roadmap развития проекта.
В сообществах стоит придерживаться нескольких правил: формулировать вопросы чётко, прикладывать код и описание проблемы; искать похожие темы перед созданием новой; делиться своими решениями, если они могут помочь другим.
Участие в сообществе даёт не только ответы на вопросы, но и понимание того, как другие разработчики подходят к решению задач. Это расширяет арсенал приёмов. И помогает писать более качественный код.
Заключение
Основные выводы
Codex Skills – готовые навыки, которые расширяют возможности языковой модели. Они помогают решать конкретные задачи без написания кода с нуля. Экономят время разработчиков, упрощают интеграцию сложных функций и позволяют быстро адаптировать ИИ под специфические потребности проекта.
Найти навыки для Codex можно в официальных репозиториях, на GitHub, в специализированных маркетплейсах и сообществах разработчиков. Важно проверять актуальность скиллов, читать документацию и тестировать их на небольших задачах, прежде чем внедрять в продакшн.
Создание собственных Codex Skills требует понимания структуры промптов, логики работы модели и специфики задачи. Хорошо написанный навык должен быть универсальным, понятным для других пользователей. И обязательно – с примерами использования.
Использование навыков для Codex не заменяет базовые знания программирования. Но значительно ускоряет разработку и позволяет сосредоточиться на бизнес-логике, а не на рутинных операциях.
Рекомендации для начинающих
Если вы только начинаете работу с Codex Skills, не пытайтесь сразу создавать сложные навыки. Начните с изучения готовых примеров: разберите их структуру, попробуйте модифицировать под свои задачи. Посмотрите, как они обрабатывают входные данные и формируют ответы.
Первые скиллы для изучения – базовые операции. Работа с текстом, парсинг данных, форматирование вывода, простые API-запросы. Эти навыки встречаются в большинстве проектов и помогут понять общие принципы работы с Codex.
Не игнорируйте документацию. Даже если навык кажется простым, в описании могут быть важные детали: ограничения по объёму данных, особенности обработки ошибок, рекомендации по оптимизации промптов.
Тестируйте скиллы на разных входных данных. То, что работает на одном примере, может давать неожиданные результаты на другом. Проверяйте граничные случаи. Пустые значения, нестандартные форматы.
Участвуйте в сообществах разработчиков – там можно найти готовые решения для типовых задач, получить обратную связь по своим навыкам и узнать о новых подходах к работе с Codex.
Когда освоите базовые навыки, переходите к созданию собственных. Начните с автоматизации задач, которые вы регулярно выполняете вручную. Это даст практический опыт и поможет понять, как структурировать промпты для достижения нужного результата.
Документируйте свои скиллы. Даже если вы создаёте их только для себя, через несколько месяцев можете забыть логику работы. Краткое описание, примеры входных и выходных данных, список зависимостей – минимум, который стоит добавить к каждому навыку.
Часто задаваемые вопросы
Что такое Codex Skills и зачем они нужны?
Codex Skills – это дополнительные модули, которые расширяют возможности ИИ-ассистента Codex. Они работают как плагины: каждый навык добавляет новую функцию или интеграцию с внешним сервисом. Вместо ручной настройки каждого действия вы подключаете готовый скилл, и Codex получает доступ к новым инструментам – от работы с API до автоматизации рутинных задач.
Где найти готовые навыки для Codex?
Основная площадка для поиска Codex Skills – GitHub, где разработчики публикуют навыки под тегами codex-skills, openai-codex или ai-agents. Полезны также awesome-списки – курируемые подборки проверенных навыков с описанием и примерами. Кроме того, навыки публикуются на специализированных платформах для разработчиков ИИ-агентов и в тематических Discord-серверах.
Как установить и подключить навык к Codex?
Сначала клонируйте репозиторий навыка с GitHub или установите его через менеджер зависимостей. Затем настройте конфигурацию – обычно это файл config.yaml или .env с API-ключами и параметрами. После этого подключите навык к вашему агенту через соответствующий фреймворк, например LangChain или AutoGPT, зарегистрировав его как доступный инструмент.
Можно ли использовать Codex Skills с обычным ChatGPT?
Прямой интеграции Codex Skills в стандартный интерфейс ChatGPT нет – OpenAI не предоставляет встроенной возможности добавлять кастомные навыки. Однако Skills можно использовать через API: вы создаёте агента, который обращается к модели GPT-4 или GPT-3.5-turbo и дополняет её возможности внешними навыками. Модель генерирует текст, а Skills выполняют действия вроде обращения к базам данных или парсинга сайтов.
Как создать собственный навык для Codex?
Для создания навыка нужна базовая структура: манифест manifest.json с описанием функций, исполняемый код skill.py на Python, файл requirements.txt с зависимостями и документация README.md. Каждая функция должна быть описана в манифесте и реализована в коде с корректной обработкой параметров и ошибок. После тестирования навык публикуется на GitHub с понятной документацией и примерами использования.
Какие типы навыков существуют для Codex?
Навыки делятся на несколько категорий: работа с кодом и разработка, дизайн и визуализация, интеграции с сервисами вроде Google Workspace или Slack, аналитика и обработка данных, коммуникация и уведомления, мультимодальные возможности для работы с изображениями и видео. Каждая категория содержит десятки отдельных навыков под конкретные задачи.