Skip to content

Синхронизация скиллов в AGENTS.md

Что вы сможете сделать после прохождения

  • Использовать openskills sync для создания файла AGENTS.md
  • Понять, как AI-агенты узнают о доступных скиллах через AGENTS.md
  • Выбирать скиллы для синхронизации и контролировать размер контекста AI
  • Использовать пользовательский путь вывода для интеграции с существующей документацией
  • Понимать формат XML AGENTS.md и методы использования

Предварительные знания

Этот учебник предполагает, что вы уже завершили установку первого скилла. Если вы ещё не установили ни одного скилла, пожалуйста, сначала выполните шаги установки.


Ваша текущая проблема

Возможно, вы уже установили некоторые скиллы, но:

  • AI-агент не знает о доступных скиллах: скиллы установлены, но AI-агенты (например, Claude Code) вообще не знают об их существовании
  • Не знаете, как сообщить AI о скиллах: слышали про AGENTS.md, но не знаете, что это такое и как создать
  • Боитесь, что слишком много скиллов займут контекст: установили много скиллов, но хотите выборочно синхронизировать, не хочется рассказывать AI о всех сразу

Корень этих проблем: установка скилла и доступность для AI — это разные вещи. Установка просто кладёт файлы на место, но чтобы AI узнал, нужно ещё синхронизировать в AGENTS.md.


Когда использовать этот подход

Синхронизация скиллов в AGENTS.md подходит для этих сценариев:

  • Только что установили скиллы, нужно сообщить AI-агенту об их существовании
  • После добавления новых скиллов обновить список доступных для AI
  • После удаления скиллов убрать из AGENTS.md
  • Хотите выборочно синхронизировать скиллы, контролировать размер контекста AI
  • Множественные агенты, нужен единый список скиллов

Рекомендуемая практика

После каждой установки, обновления или удаления скиллов выполняйте openskills sync, чтобы AGENTS.md соответствовал реальным скиллам.


🎒 Подготовка перед началом

Перед началом, пожалуйста, убедитесь:

Предварительная проверка

Если скиллы ещё не установлены, сначала выполните:

bash
npx openskills install anthropics/skills

Основная идея: установка скилла ≠ доступность для AI

Управление скиллами в OpenSkills разделено на две фазы:

[Фаза установки]            [Фаза синхронизации]
Скилл → .claude/skills/  →  AGENTS.md
   ↓                           ↓
Файл существует          AI-агент читает
   ↓                           ↓
Локально доступен      AI знает и может вызвать

Ключевые моменты:

  1. Фаза установки: используйте openskills install, скиллы копируются в директорию .claude/skills/
  2. Фаза синхронизации: используйте openskills sync, информация о скиллах записывается в AGENTS.md
  3. AI читает: AI-агент читает AGENTS.md, узнаёт о доступных скиллах
  4. Загрузка по требованию: AI по мере необходимости использует openskills read <skill> для загрузки конкретного скилла

Зачем нужен AGENTS.md?

AI-агенты (например, Claude Code, Cursor) не сканируют файловую систему активно. Им нужен явный "список скиллов", сообщающий, какие инструменты можно использовать. Этот список — AGENTS.md.


Действуем пошагово

Шаг 1: Перейдите в директорию проекта

Сначала перейдите в директорию вашего проекта, где установлены скиллы:

bash
cd /path/to/your/project

Почему

openskills sync по умолчанию ищет установленные скиллы в текущей директории и создаёт или обновляет AGENTS.md в текущей директории.

Вы должны увидеть:

В директории вашего проекта должна быть директория .claude/skills/ (если вы установили скиллы):

bash
ls -la
# Пример вывода:
drwxr-xr-x  5 user  staff  .claude
drwxr-xr-x  5 user  staff  .claude/skills/
-rw-r--r--  1 user  staff  package.json

Шаг 2: Синхронизируйте скиллы

Используйте следующую команду для синхронизации установленных скиллов в AGENTS.md:

bash
npx openskills sync

Почему

Команда sync ищет все установленные скиллы, генерирует список скиллов в формате XML и записывает в файл AGENTS.md.

Вы должны увидеть:

Команда запустит интерактивный интерфейс выбора:

Found 2 skill(s)

? Select skills to sync to AGENTS.md:
❯ ◉ pdf                        (project)  Comprehensive PDF manipulation toolkit...
  ◉ git-workflow                (project)  Git workflow: Best practices for commits...
  ◯ check-branch-first          (global)   Git workflow: Always check current branch...

<Space> выбрать  <a> выбрать всё  <i> инвертировать  <Enter> подтвердить

Руководство по использованию:

┌─────────────────────────────────────────────────────────────┐
│  Инструкция                                                  │
│                                                             │
│  Шаг 1          Шаг 2           Шаг 3                       │
│  Переместить →  Пробел для выбора → Enter для подтверждения │
│                                                             │
│  ○ не выбрано      ◉ выбрано                                │
│                                                             │
│  (project)         скиллы проекта, подсвечены синим         │
│  (global)          глобальные скиллы, отображаются серым      │
└─────────────────────────────────────────────────────────────┘

Вы должны увидеть:
- Курсор может перемещаться вверх-вниз
- Нажатие пробела переключает состояние выбора (○ ↔ ◉)
- Скиллы проекта отображаются синим, глобальные — серым
- Нажатие Enter подтверждает синхронизацию

Умный предварительный выбор

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


Шаг 3: Выберите скиллы

В интерактивном интерфейсе выберите скиллы, которые вы хотите, чтобы AI-агент знал.

Пример:

Предположим, вы хотите синхронизировать все установленные скиллы:

? Select skills to sync to AGENTS.md:
❯ ◉ pdf                        (project)
  ◉ git-workflow                (project)
  ◯ check-branch-first          (global)   ← не выбираем этот глобальный скилл

Операции:

  1. Переместить курсор: используйте стрелки вверх/вниз
  2. Выбрать/снять выбор: нажмите пробел для переключения состояния ()
  3. Подтвердить синхронизацию: нажмите Enter для начала синхронизации

Вы должны увидеть:

✅ Synced 2 skill(s) to AGENTS.md

Стратегия выбора

  • Скиллы проекта: скиллы, специфичные для текущего проекта, рекомендуется синхронизировать
  • Глобальные скиллы: общие скиллы (например, стандарты кодирования), синхронизируйте по необходимости
  • Избегайте избытка: слишком много скиллов займут контекст AI, рекомендуется синхронизировать только часто используемые скиллы

Шаг 4: Просмотр AGENTS.md

После завершения синхронизации просмотрите сгенерированный файл AGENTS.md:

bash
cat AGENTS.md

Вы должны увидеть:

markdown
# AGENTS.md

<skills_system priority="1">

## Available Skills

<!-- SKILLS_TABLE_START -->
<usage>
When users ask you to perform tasks, check if any of available skills below can help complete the task more effectively.

How to use skills:
- Invoke: `npx openskills read <skill-name>` (run in your shell)
- The skill content will load with detailed instructions
- Base directory provided in output for resolving bundled resources

Usage notes:
- Only use skills listed in <available_skills> below
- Do not invoke a skill that is already loaded in your context
</usage>

<available_skills>

<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms...</description>
<location>project</location>
</skill>

<skill>
<name>git-workflow</name>
<description>Git workflow: Best practices for commits, branches, and PRs, ensuring clean history and effective collaboration.</description>
<location>project</location>
</skill>

</available_skills>
<!-- SKILLS_TABLE_END -->

</skills_system>

Описание ключевых элементов:

ЭлементНазначение
<skills_system>XML-тег, сообщающий AI, что это определение системы скиллов
<usage>Инструкции по использованию, объясняющие AI, как вызывать скиллы
<available_skills>Список доступных скиллов
<skill>Определение отдельного скилла
<name>Название скилла
<description>Описание скилла
<location>Расположение скилла

Почему используется XML-формат?

XML-формат является стандартным для AI-агентов (особенно для Claude Code), что облегчает парсинг и понимание. Инструмент также поддерживает HTML-комментарии в качестве альтернативного формата.


Шаг 5: Проверьте чтение AI

Теперь попросите AI-агента прочитать AGENTS.md и посмотрите, знает ли он о доступных скиллах.

Пример диалога:

Пользователь:
Я хочу извлечь табличные данные из PDF-файла

AI-агент:
Я могу использовать скилл `pdf`, чтобы помочь вам извлечь табличные данные. Позвольте мне сначала прочитать подробное содержимое этого скилла.

Выполнение AI:
npx openskills read pdf

Вывод:
Skill: pdf
Base Directory: /path/to/project/.claude/skills/pdf

[Подробное содержимое скилла PDF...]

AI:
Хорошо, я загрузил скилл PDF. Теперь я могу помочь вам извлечь табличные данные...

Вы должны увидеть:

  • AI-агент распознаёт, что можно использовать скилл pdf
  • AI автоматически выполняет npx openskills read pdf для загрузки содержимого скилла
  • AI выполняет задачу согласно инструкциям скилла

Шаг 6 (опционально): Пользовательский путь вывода

Если вы хотите синхронизировать скиллы в другой файл (например, .ruler/AGENTS.md), используйте опцию -o или --output:

bash
npx openskills sync -o .ruler/AGENTS.md

Почему

Некоторые инструменты (например, Windsurf) могут ожидать AGENTS.md в определённой директории. Используя -o, вы можете гибко настраивать путь вывода.

Вы должны увидеть:

Created .ruler/AGENTS.md
✅ Synced 2 skill(s) to .ruler/AGENTS.md

Неинтерактивная синхронизация

В среде CI/CD вы можете использовать флаг -y или --yes, чтобы пропустить интерактивный выбор и синхронизировать все скиллы:

bash
npx openskills sync -y

Контрольная точка ✅

После выполнения описанных выше шагов, пожалуйста, подтвердите:

  • [ ] Интерактивный интерфейс выбора отображается в командной строке
  • [ ] Успешно выбран хотя бы один скилл (перед ним )
  • [ ] Синхронизация успешна, отображается сообщение ✅ Synced X skill(s) to AGENTS.md
  • [ ] Файл AGENTS.md создан или обновлён
  • [ ] Файл содержит XML-тег <skills_system>
  • [ ] Файл содержит <available_skills> список скиллов
  • [ ] Каждый <skill> содержит <name>, <description>, <location>

Если все вышеперечисленные пункты выполнены, поздравляем! Скиллы успешно синхронизированы в AGENTS.md, и AI-агент теперь может узнавать о них и использовать их.


Предупреждения о возможных проблемах

Проблема 1: Скиллы не найдены

Проявление:

No skills installed. Install skills first:
  npx openskills install anthropics/skills --project

Причина:

  • В текущей директории или глобальной директории нет установленных скиллов

Решение:

  1. Проверьте, установлены ли скиллы:
bash
npx openskills list
  1. Если нет, сначала установите скиллы:
bash
npx openskills install anthropics/skills

Проблема 2: AGENTS.md не обновляется

Проявление:

После запуска openskills sync содержимое AGENTS.md не изменилось.

Причина:

  • Использован флаг -y, но список скиллов тот же, что и раньше
  • AGENTS.md существует, но синхронизируются те же скиллы

Решение:

  1. Проверьте, использовали ли вы флаг -y
bash
# Уберите -y, войдите в интерактивный режим для повторного выбора
npx openskills sync
  1. Проверьте, правильная ли текущая директория
bash
# Убедитесь, что вы в директории проекта, где установлены скиллы
pwd
ls .claude/skills/

Проблема 3: AI-агент не знает о скиллах

Проявление:

AGENTS.md сгенерирован, но AI-агент всё ещё не знает о доступных скиллах.

Причина:

  • AI-агент не прочитал AGENTS.md
  • Формат AGENTS.md некорректен
  • AI-агент не поддерживает систему скиллов

Решение:

  1. Убедитесь, что AGENTS.md находится в корне проекта
  2. Проверьте, правильный ли формат у AGENTS.md (содержит ли тег <skills_system>)
  3. Убедитесь, поддерживает ли AI-агент AGENTS.md (например, Claude Code поддерживает, другим инструментам может потребоваться настройка)

Проблема 4: Файл вывода не markdown

Проявление:

Error: Output file must be a markdown file (.md)

Причина:

  • Использована опция -o, но указанный файл не имеет расширения .md

Решение:

  1. Убедитесь, что файл вывода заканчивается на .md
bash
# ❌ Неправильно
npx openskills sync -o skills.txt

# ✅ Правильно
npx openskills sync -o skills.md

Проблема 5: Отмена всех выборов

Проявление:

В интерактивном интерфейсе, после отмены выбора всех скиллов, раздел скиллов в AGENTS.md удаляется.

Причина:

Это нормальное поведение. Если отменить выбор всех скиллов, инструмент удалит раздел скиллов из AGENTS.md.

Решение:

Если это было сделано по ошибке, снова запустите openskills sync и выберите скиллы для синхронизации.


Резюме урока

В этом уроке вы научились:

  • Использовать openskills sync для создания файла AGENTS.md
  • Понимать процесс синхронизации скиллов: установка → синхронизация → чтение AI → загрузка по требованию
  • Интерактивно выбирать скиллы, контролируя размер контекста AI
  • Использовать пользовательский путь вывода, интегрируясь с существующей системой документации
  • Понимать формат AGENTS.md, содержащий XML-тег <skills_system> и список скиллов

Основные команды:

КомандаДействие
npx openskills syncИнтерактивная синхронизация скиллов в AGENTS.md
npx openskills sync -yНеинтерактивная синхронизация всех скиллов
npx openskills sync -o custom.mdСинхронизация в пользовательский файл
cat AGENTS.mdПросмотр содержимого созданного файла AGENTS.md

Ключевые моменты формата AGENTS.md:

  • Использует XML-тег <skills_system> для обёртки
  • Содержит <usage> инструкции по использованию
  • Содержит <available_skills> список скиллов
  • Каждый <skill> содержит <name>, <description>, <location>

Предварительный просмотр следующего урока

В следующем уроке мы изучим Использование скиллов.

Вы узнаете:

  • Как AI-агенты используют команду openskills read для загрузки скиллов
  • Полный процесс загрузки скиллов
  • Как читать несколько скиллов
  • Структуру и состав содержимого скиллов

Синхронизация скиллов — это только то, как сообщить AI о доступных инструментах. При реальном использовании AI будет загружать конкретное содержимое скиллов через команду openskills read.


Приложение: Справочник по исходному коду

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

Время обновления: 2026-01-24

ФункцияПуть к файлуНомера строк
Точка входа команды syncsrc/commands/sync.ts18-109
Проверка файла выводаsrc/commands/sync.ts19-26
Создание несуществующего файлаsrc/commands/sync.ts28-36
Интерактивный интерфейс выбораsrc/commands/sync.ts46-93
Разбор существующего AGENTS.mdsrc/utils/agents-md.ts6-18
Генерация XML скилловsrc/utils/agents-md.ts23-62
Замена раздела скилловsrc/utils/agents-md.ts67-93
Удаление раздела скилловsrc/utils/agents-md.ts98-122

Ключевые функции:

  • syncAgentsMd() - синхронизация скиллов в файл AGENTS.md
  • parseCurrentSkills() - разбор имён скиллов из существующего AGENTS.md
  • generateSkillsXml() - генерация списка скиллов в формате XML
  • replaceSkillsSection() - замена или добавление раздела скиллов в файл
  • removeSkillsSection() - удаление раздела скиллов из файла

Ключевые константы:

  • AGENTS.md - имя файла вывода по умолчанию
  • <skills_system> - XML-тег, используемый для маркировки определения системы скиллов
  • <available_skills> - XML-тег, используемый для маркировки списка доступных скиллов

Важная логика:

  • По умолчанию предварительно выбираются существующие в файле скиллы (инкрементальное обновление)
  • При первой синхронизации по умолчанию выбираются все скиллы проекта
  • Поддерживаются два формата маркировки: XML-теги и HTML-комментарии
  • При отмене всех выборов раздел скиллов удаляется, а не сохраняется пустым