# Навыки

> Что такое навык, как агент выбирает нужный, как установить готовый, загрузить навык из файла, удалить навык, запустить вручную, написать свой — и из чего навык состоит.

Source: https://eggent.ai/r/docs/skills/

**Навык** — готовая инструкция для определённого вида работы. Он превращает «сделай мне базу знаний» из импровизации в отлаженный процесс: какие вопросы задать, в каком порядке работать, какие файлы создать, как проверить результат.

## Как агент пользуется навыками {#how}

У каждого навыка есть короткое описание: что он делает и когда нужен. Агент видит описания всех навыков текущего проекта (или оркестратора) и, когда задача подходит, открывает полную инструкцию и работает по ней. Специально звать навык не нужно.

Если хочешь запустить навык явно, напиши в чате `/skill:имя-навыка`, например `/skill:doc-templates`.

## Готовые навыки и карточки {#bundled}

На экране нового чата есть **карточки быстрого старта**. Каждая карточка — готовый навык: нажми, и агент сразу начнёт работу, при необходимости задаст пару вопросов. Большинство карточек создают себе отдельный проект; «Бизнес ИИ система» и «Свой Telegram-бот» работают у оркестратора.

Все готовые навыки есть в **Настройки → Навыки → Каталог встроенных навыков**: их можно установить в оркестратор или в любой проект кнопкой **Установить**. Описание каждого — в [«Готовые навыки»](https://eggent.ai/r/docs/skill-catalog.md).

Установленные готовые навыки обновляются сами, когда мы их улучшаем, — если ты не менял их вручную. Изменённую копию Eggent не трогает.

## Загрузить навык из файла {#upload}

Если навык у тебя уже есть файлом — написанный самим, полученный от коллеги или скачанный, — положи его в рабочее пространство без участия агента: **Настройки → Навыки → Загрузить навык**. Вверху справа выбери оркестратор или проект (навык установится туда, куда указывает переключатель), затем перетащи файлы в пунктирную область или нажми на неё и выбери их. Можно сразу несколько файлов; на каждый приходит свой ответ.

Что можно загрузить:

- **файл `.md`** — `SKILL.md`, который начинается с YAML-заголовка с `name` и `description`;
- **архив `.zip` или `.skill`** — папка навыка, где `SKILL.md` лежит в корне архива или внутри одной папки, и всё остальное, что навыку нужно: `scripts/`, `references/`, `assets/` или любые другие папки. (Файл `.skill` — тот же ZIP-архив под другим именем.)

Файл проверяется до того, как что-то сохранено. Если проверка не пройдена, ничего не устанавливается и на диске ничего не остаётся, а в ответе сказано, что не так и где: что `SKILL.md` не найден (и где он нашёлся вместо этого), что заголовок — некорректный YAML в строке 3, что имя недопустимо, что запись в архиве — ссылка или выходит за пределы папки навыка. Что проверяется:

- `SKILL.md` есть, это текст в UTF-8, и он начинается с YAML-заголовка; `name` — строчные латинские буквы, цифры и одиночные дефисы (до 64 символов), `description` не пустое (до 1024);
- имена файлов не выходят за папку навыка, нет ссылок и специальных файлов, у архива нет пароля;
- загрузка не больше 30 МБ, а навык — не больше 600 файлов и 30 МБ в распакованном виде.

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

Если навык с таким именем уже установлен, он не перезаписывается: в ответе об этом сказано и предложена кнопка **Заменить**. При замене новый навык встаёт на место, а старая папка уходит в `skills/.replaced/`, а не удаляется, так что то, что ты добавил в неё руками, не пропадёт. Чтобы вместо этого избавиться от старого, сначала удали его (см. [«Установленные навыки»](#installed)).

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

## Установленные навыки {#installed}

**Настройки → Навыки** показывает навыки, установленные в выбранной области (оркестратор или проект). Нажми на навык, чтобы прочитать его инструкцию.

Навык действует только там, куда он установлен. Навык оркестратора не виден в проектах, и наоборот — кроме навыков, которые агент написал сам: они доступны везде (см. [«Навыки, которые агент пишет сам»](#learned)).

Чтобы убрать навык, нажми на значок корзины в конце его строки и подтверди. Папка навыка удаляется со всем, что в ней лежит, вместе с прежними версиями, которые остались после замены (`skills/.replaced/`). Отменить это нельзя: навык, который есть только здесь, исчезнет насовсем. Навык из каталога можно установить снова, а загруженный — загрузить ещё раз. Удаление заодно освобождает имя: это выход, когда при загрузке сказано, что навык с таким именем уже установлен, а заменять его не хочется.

## Навыки, которые агент пишет сам {#learned}

После работы, которая потребовала усилий, — ошибки, из которой он выбрался, порядка действий, который ты поправил, — агент может сам, без просьбы, сохранить этот порядок как навык. Он покажется под ответом («Выучил новый навык: …»), в **Настройки → Навыки** будет с пометкой «Написано агентом» и лежит в `skills/` оркестратора, как любой другой. Подробности и ограничения — в [«Памяти»](https://eggent.ai/r/docs/memory.md#learned).

Улучшает агент только навыки, которые написал сам. Навык, который ты сделал или установил, он не меняет никогда. Чтобы оставить навык агента себе, поправь его руками и удали из заголовка строку `origin: learned` — после этого агент его не трогает.

Выученный навык, которым долго не пользовались, получает отметку «Давно не использовался», а потом переносится в `skills/.archive/`; чтобы вернуть, перенеси папку обратно. Выученный навык можно и удалить из списка, как любой другой; агент может написать его снова, если такая работа повторится.

## Написать свой навык {#create}

Проще всего — попросить агента:

> «Сделай навык для еженедельного отчёта по продажам: берёшь выгрузку из `sales/`, считаешь выручку по категориям, сравниваешь с прошлой неделей и пишешь итог в три абзаца плюс таблицу».

Агент создаст навык в текущем проекте. Хороший момент для этого — сразу после того, как вы вместе один раз сделали работу как надо: попроси «оформи то, что мы сейчас сделали, в навык».

## Из чего состоит навык {#structure}

Навык — это папка в `skills/` проекта (или оркестратора):

```text
skills/
└── weekly-sales-report/
    ├── SKILL.md          # инструкция
    ├── scripts/          # скрипты, если нужны
    └── references/       # образцы и справочные материалы
```

`SKILL.md` начинается с заголовка в формате YAML:

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

# Еженедельный отчёт по продажам

1. Найди самую свежую выгрузку в `sales/`.
2. …
```

- `name` — имя навыка латиницей через дефис, совпадает с именем папки.
- `description` — что навык делает и **когда** его использовать. По этому описанию агент решает, подходит ли навык, так что пиши его конкретно.

## Советы {#tips}

- Один навык — один вид работы. Навык «на все случаи» агент будет применять не к месту.
- Пиши в навыке шаги и критерии готовности, а не общие пожелания.
- Если навык опирается на образцы, положи их в папку навыка, а не в контекст.
