Занятие 2 - MCP, SKILLS
Лекция 2. Продвинутые возможности Claude Code
инженерному. Сегодня разбираем, из чего на самом деле состоит Claude Code как система: фундаментальную разницу между знаниями для модели (CLAUDE.md) и жёсткими настройками обвязки (settings.json), иерархию областей настроек, протокол MCP (Model Context Protocol), новую механику Tool Search (поиск инструментов), передачу контекста между сессиями и, наконец, главную тему — Skills (навыки) и их создание через цикл генерация → эвалы → улучшение.
сложно всем. Индустрия повзрослела: настройка агента-кодера превращается в отдельную профессию, аналог DevOps1. В компаниях появятся люди, которые настраивают обвязку вокруг моделей и строят собственные обвязки. Пример из лекции: CloudFlare получил доступ к топовой модели Claude Mythos2 и для реально качественной работы написал под неё собственный harness (обвязку). Вот к чему всё движется.
Часть 0. Разбор теории (чек-ин знаний)
Перед новым материалом — сжатый разбор десяти контрольных вопросов прошлой темы. Держите как шпаргалку.
| # | Вопрос | Короткий ответ |
|---|---|---|
| 1 | Для чего подходит Pro-подписка Claude? | Умственная работа и небольшой кодинг. Не для полноценной разработки. |
| 2 | Как расходовать Pro при жёстких лимитах? | Приоритизировать домашние работы — на всё лимитов не хватит. |
| 3 | Какие лимиты учитывать? | 5-часовой лимит сессии и недельный лимит. |
| 4 | Минимальный тариф для комфортного кодинга? | Хотя бы Max 5 Plan — заметно больше рабочих лимитов. |
| 5 | Чем отличается Max 20? | Профессиональная интенсивная работа. |
| 6 | Что такое обвязка (harness) по отношению к модели? | Система, которая позволяет модели совершать действия. |
| 7 | Чем отличаются обвязки Claude друг от друга? | Тремя вещами: уровень риска, доступ к файлам, набор действий. |
| 8 | Рекомендуемая основная модель на подписке? | Opus — всегда. |
| 9 | Что такое проекты в Claude Chat? | Способ группировать чаты с общими файлами и инструкциями. |
| 10 | Почему Claude Cowork безопасен с файлами? | Работает внутри виртуальной машины (VM). |
Harness (обвязка) — это программный «скелет» вокруг языковой модели (LLM), который превращает «болталку» в деятеля: даёт ей инструменты, доступ к файлам, право запускать команды и правила того, что можно, а что нельзя. Claude Chat, Claude Cowork и Claude Code — это три разные обвязки поверх одних и тех же моделей, и отличаются они ровно по трём осям: уровень риска · доступ к файлам · набор действий.
Обвязка — это экзоскелет, в который этот мозг вставили: у одного экзоскелета (Cowork) руки в перчатках и он заперт в чистой комнате (виртуальная машина), у другого (Claude Code) — отвёртки, доступ к терминалу и право переписывать ваш жёсткий диск. Мозг тот же. Меняется тело и его права доступа.
Часть 1. Сдвиг парадигмы: от «сделать проект» к «дирижировать агентами»
«мне нужно сделать проект, и я использую для этого AI». Сейчас типичная работа — это управление несколькими автономными агентами разработки, часто вообще не сидя за компьютером. Дома параллельно крутятся несколько сессий Claude Code; с телефона их просматривают, поправляют, перезапускают.
Живой пример из лекции (форма для анонса стрима):
- Спикер выходит гулять в парк, включает на телефоне расшифровку голоса и надиктовывает: «вот такие темы хочу покрыть, по каждой проведи исследование, всё факт-чекни».
- Агент берёт темы, до-исследует (через сервис ресёрча), находит забытые релизы, собирает структурированный список.
- Спикер на ходу диктует правки по стилю.
- Чтобы заполнить веб-форму (нужен компьютер), он использует режим dispatch (диспетчеризация) — с телефона запускает удалённую задачу на своём компьютере: «открой браузер, вбей ссылку, заполни форму, отправь».
flowchart LR
A["Человек гуляет в парке"] -->|"голосовая диктовка"| B["Агент №1: ресёрч + факт-чек"]
A -->|"правки по стилю"| C["Агент №2: редактура"]
A -->|"режим dispatch"| D["Удалённая задача на ПК: браузер заполняет форму"]
B --> E["Результат собирается без участия рук"]
C --> E
D --> E
E -->|"человек только проверяет узлы"| A
повар, который сам режет лук. Вы — диспетчер аэропорта в наушниках на крыше башни. Внизу по полосам рулят несколько самолётов-агентов; вы их не толкаете руками, вы голосом раздаёте им коридоры и время взлёта. Ваша новая работа — жонглировать вниманием, а не пальцами.
$200-подписок. На Pro вы упрётесь в лимиты мгновенно.
Часть 2. Тарифы и лимиты: что реально изменилось
даже умственная работа упирается в лимиты («задал пару вопросов — и всё кончилось»). Лимиты Claude в последнее время ужесточились даже на $200-плане. У конкурента (Codex/кодекса) при хорошей подписке лимиты «не ощущаются» — поэтому часть профессионалов уходит туда тестировать.
Случай Екатерины (наблюдение из чата): до 8 мая можно было выработать весь 5-часовой лимит, а недельный сдвигался на ~8–9%. С 8 мая 5-часовой за сессию «съедается» на 30%, а недельный — всё на те же 7–8%.
увеличил ёмкость 5-часовой сессии. Недельный лимит расходуется так же, но за одну сессию теперь можно потратить больше — поэтому ощущение «5-часовой почти не тронут, а недельный тает прежним темпом». В сообществе это читают как стимул быстрее упереться в недельный потолок и перейти на тариф выше.
упрощение, которое легко вводит в заблуждение. Окно в 1 млн токенов — это свойство конкретных моделей (например, бета-режим расширенного контекста), а не «галочка», которая автоматически включается на любом Max-аккаунте для любой модели. На практике доступность 1M зависит от связки «модель + тариф + включённый бета-режим», а у Opus/Haiku поведение может отличаться. Не планируйте архитектуру, исходя из «у меня Max, значит везде миллион» — проверяйте по факту для выбранной модели.
Часть 3. Claude Design — отдельный сервис
Claude Design на данный момент — отдельный сервис с отдельной тарификацией (видно в настройках Usage). На Max-плане тарифицируется нормально и лимитов почти не чувствуется. Это не инструмент полного цикла: он называется Design, потому что в нём вы делаете макет/дизайн, а доработку переносите в Claude Code. Так что правильный маршрут: макет в Claude Design → перенос в Claude Code → доработка.
чертёжная доска в архитектурном бюро. На ней рисуют фасад. Но кирпичи на стройплощадке кладёт другая бригада — Claude Code. Пытаться достроить дом прямо на чертёжной доске можно, но это не то, для чего доску повесили на стену.
Часть 4. Programmatic Use vs Interactive Use — раскол тарификации
Это важнейшее нововведение, особенно для тех, кто будет встраивать Claude Code в свои продукты.
Interactive (интерактивный) — вы сами что-то делаете: сидите в Claude Code, болтаете в Claude Chat, работаете в Cowork (хоть с компьютера, хоть с телефона). Главное — действие инициирует человек. Programmatic (программный) — действия инициирует не человек: запущены автоматизации, или ваша Claude-подписка используется в сторонних инструментах (например, в OpenClaw).
flowchart TD
SUB["Ваша подписка"] --> SPLIT{"Тип использования"}
SPLIT -->|"Interactive — вы за рулём"| INT["Лимиты как раньше<br/>НИЧЕГО не меняется"]
SPLIT -->|"Programmatic — автоматизации, сторонние инструменты"| PRG["Отдельные доп. КРЕДИТЫ<br/>≈ сумме вашей подписки/мес"]
PRG --> EX["Пример: \$20 план → +\$20 кредитов сверху<br/>\$200 план → +\$200 кредитов"]
разделил интерактивное и программное использование. Хорошая новость: интерактив не трогали вообще — все ваши прежние сценарии работают без изменений. Менее приятная: программное использование (например, Claude Code внутри OpenClaw) теперь, во-первых, официально разрешено, а во-вторых, тарифицируется отдельными кредитами — их выдают ежемесячно примерно на сумму подписки.
много чего, в том числе встраивание Claude Code в собственные автоматизации и продукты — тема будущего занятия. Если вы раньше так не работали, вы пока не почувствуете разницу. Но как только начнёте строить продукты на Claude Code — почувствуете сразу. На обычную интерактивную работу это не влияет никак.
programmatic, размер ежемесячных кредитов, перечень разрешённых сторонних инструментов) меняются часто и зависят от региона и плана. Спикер сам предполагает, что Anthropic может пересмотреть решение. Вывод: запоминайте принцип (интерактив ≠ программа, у программы своя валюта-кредиты), а конкретные числа и условия всегда сверяйте с актуальной страницей биллинга Anthropic перед запуском в прод.
роботы начинают сами жрать ток ночью без вас: на него идёт отдельная предоплаченная карта, и когда она кончилась — роботы встают.
Часть 5. Мелочи на полях
Computer Use (управление компьютером) доступно и в Claude Code: раздел MCP → Computer Use. После включения нужно на уровне ОС дать терминалу/VS Code права управлять компьютером, и тогда Claude буквально двигает курсором и кликает за вас. Состояние: работает криво и дорого по токенам (на Pro «съест» лимит мгновенно). Это «звоночек из будущего», но будущее ещё не наступило. В продакшене пока не используют.
Auto Mode) доступен на Max/Team, но не на Pro. Скорее всего добавят позже. Также из приложения убрали /buddy (мини-питомца) — полезной нагрузки у него не было, но штука забавная; вероятно, вернут.
Часть 6. ⭐ CLAUDE.md vs settings.json — ключевая концепция
Если из всего занятия вы запомните одну вещь — пусть это будет вот эта разница.
CLAUDE.md (MD = Markdown) — это файл-инструкция для LLM (для «мозга» Claude). Поскольку LLM — система недетерминированная, инструкцию она может выполнить, а может проигнорировать или забыть. Это не жёсткое ограничение, а «сильная рекомендация о желаемом поведении». Сюда пишут: описание проекта, стандарты разработки, команды, структуру папок, нейминг — всё, что формирует поведение, но не принуждает к нему.
settings.json (формат JSON) — это настройки самой обвязки (harness) Claude Code как программы. С LLM напрямую не связаны. Здесь задаются абсолютно принудительные, на 100% исполняемые правила: что можно/нельзя, когда агент обязан спросить (это не выбор модели — у неё физически останется только действие Ask), хуки, ENV-переменные, выбор моделей, режим sandbox (песочница), подключение MCP-серверов.
flowchart TB
subgraph CM["CLAUDE.md — слой ЗНАНИЙ"]
direction TB
CM1["Формат: Markdown"]
CM2["Адресат: LLM (мозг)"]
CM3["Сила: рекомендация<br/>может не сработать"]
CM4["Содержит: контекст, стандарты,<br/>команды, нейминг, архитектуру"]
end
subgraph SJ["settings.json — слой ОБВЯЗКИ"]
direction TB
SJ1["Формат: JSON"]
SJ2["Адресат: программа Claude Code"]
SJ3["Сила: жёсткий закон<br/>исполняется на 100%"]
SJ4["Содержит: deny/allow, hooks,<br/>ENV, sandbox, MCP, модели"]
end
CM -. "две НЕ пересекающиеся вещи" .- SJ
Примеры жёстких правил в settings.json:
{
"permissions": {
"deny": [
"Read(./.env)", // физически не сможет прочитать .env
"Read(./.env.*)",
"Read(./secrets/**)",
"Read(**/credentials)" // не доберётся до API-ключей
],
"ask": [
"Bash(git push:*)", // перед git push ОБЯЗАН спросить
"Bash(git commit:*)" // не закоммитит молча
]
}
}
CLAUDE.md «лучше не трогай этот файл» — это просьба, модель может её нарушить. Когда вы пишете deny в settings.json — у модели в принципе нет такого действия в наборе. Это разница между «я попросил коллегу не открывать сейф» и «я физически снял сейф с петель».
CLAUDE.md — это записка от тимлида на холодильнике: «ребят, мойте кружки». Кто-то помоет, кто-то забудет — записка не имеет силы закона. settings.json — это электронный замок на двери склада: тут не «попросили не входить» — тут карта-пропуск либо открывает, либо нет. Никакого «я передумал» у замка нет. Путать эти два слоя — всё равно что пытаться запереть склад липкой запиской, а кружки мыть через биометрический сканер.
Часть 7. Области (scopes) настроек settings.json и их приоритет
смешиваются (merge), но не заменяются. Если правила конфликтуют — побеждает правило из более высокой по приоритету области. Логика проста: глобальные настройки задают общий тон, а внутри проекта можно их локально переопределить.
Три области, о которых говорит спикер (от высшего приоритета к низшему):
flowchart TB
L["settings.local.json<br/>ЛОКАЛЬНЫЕ, только ваши"] -->|"бьёт ↓"| P["./.claude/settings.json<br/>ПРОЕКТНЫЕ / командные"]
P -->|"бьёт ↓"| G["~/.claude/settings.json<br/>ГЛОБАЛЬНЫЕ (на все проекты)"]
style L fill:#1f6feb,color:#fff
style P fill:#388bfd,color:#fff
style G fill:#58a6ff,color:#000
settings.local.json— git-игнорируется, никогда не попадает в историю версий и на GitHub. Сюда — личные настройки, которые не должны разъехаться по компьютерам команды../.claude/settings.json(без.local) — попадает в Git репозитория и распространяется на всю команду. Здесь — общекомандные настройки проекта.~/.claude/settings.json(системная папка) — глобальные, применяются ко всем проектам автоматически.
всегда бьёт все остальные» верен для индивидуального пользователя, но неполон для корпоративной среды. Реальная цепочка приоритетов в Claude Code (от высшего к низшему):
- Enterprise managed policy (управляемые корпоративные политики) — системный файл, который ставит организация. Перебивает даже
settings.local.jsonи не может быть обойдён разработчиком — именно так IT-отдел принудительно запрещает, например, чтение секретов. - Аргументы командной строки (флаги при запуске).
settings.local.json(локальные проектные)../.claude/settings.json(командные проектные).~/.claude/settings.json(глобальные пользовательские).
Для дома вы этого не заметите. Но как только будете настраивать Claude Code в компании — помните: самый верх — это managed-политики, а не ваш local.
Часть 8. Иерархия загрузки CLAUDE.md
CLAUDE.md отличается от settings.json. Запомните правило: всё, что выше вашей рабочей папки, грузится автоматически; всё, что в подпапках, — по необходимости.
flowchart TD
START(["Запуск Claude Code"]) --> GLOB["Глобальный CLAUDE.md<br/>~/.claude/CLAUDE.md<br/>грузится СРАЗУ, всегда"]
GLOB --> OPEN{"Открыли проект?"}
OPEN -->|"да"| PROJ["CLAUDE.md проекта<br/>добавляется к глобальному<br/>(оба активны, СМЕШИВАЮТСЯ)"]
OPEN -->|"нет"| ONLY["Активен только глобальный"]
PROJ --> SUB{"Зашли в подпапку<br/>с её CLAUDE.md?"}
SUB -->|"да, начал там работать"| SUBLOAD["CLAUDE.md подпапки<br/>догружается ПО НЕОБХОДИМОСТИ"]
SUB -->|"нет"| WAIT["Подпапочный пока не грузится"]
Дополнительно существуют: CLAUDE.local.md (личный, не для команды) и каталоги rules/ с файлами вроде API.md для описания конфигураций — но это уже для очень крупной разработки.
CLAUDE.md-файлы смешиваются, а не заменяют друг друга. Поэтому:
- В глобальном держите только глобальное («общайся со мной по-русски»).
- В проектном — только проектное, и про русский язык там молчите.
- Категорически нельзя: глобально «по-русски», а в проекте «по-английски». Такое противоречие ломает LLM — она не понимает, что делать.
CLAUDE.md — это слои инструкций, которые наливаются в один стакан (контекст модели), а не лежат отдельными бутылками. Если в один слой налить «говори по-русски», а в другой «говори по-английски» — вы получите мутный коктейль, и нейросеть, как растерянный бариста, начнёт творить ерунду. Каждый слой должен добавлять новый вкус, а не спорить с предыдущим.
Часть 9. Auto-memory и Auto-dream — новая (экспериментальная) концепция
Auto-memory (автопамять) — примерно каждые ~5 сессий в одном проекте Claude сам записывает себе в память, что происходило: архитектурные решения, ваши предпочтения, принятые подходы. Вы этот процесс не контролируете. Auto-dream (автосон) — фаза «быстрого сна», как у человека. Примерно раз в сутки (или после очередных ~5 сессий) в фоне запускается субагент, который анализирует, сжимает и редактирует накопленную память, делая файлы чище и читаемее — чтобы память не переполнялась.
уборщик-сновидец: он проходит по стене из стикеров, выбрасывает дубли, склеивает похожие в один аккуратный лист и наводит порядок — ровно как мозг во сне раскладывает дневные впечатления по полочкам. Утром память агента — не свалка, а конспект.
экспериментальная, заметить её работу можно только на долгом проекте. Поэтому несколько уточнений:
- Названия и точная механика (
auto-memory,auto-dream, «5 сессий», «раз в сутки») — описательные ориентиры спикера; они меняются от версии к версии и могут не совпадать с официальной терминологией. Перед тем как на это закладываться, сверьтесь с актуальной документацией memory-функций. - Путь хранения. Прозвучит, что память лежит в
~/.claude/.../projects. В этой папке Claude Code действительно хранит историю сессий; конкретное расположение memory-файлов зависит от версии. Не хардкодьте путь. - Управляемость. «Вы не контролируете» — верно в смысле автоматической записи, но вы всё ещё можете править итоговые memory-файлы вручную и быстро добавлять факты в память через префикс
#в строке ввода.
как именно писать CLAUDE.md, чтобы Claude его реально читал, и разбор экосистемы (MCP, Skills).
Часть 10. Как писать CLAUDE.md правильно
CLAUDE.md проекта — главный ваш файл знаний. Он гарантированно попадает в контекстное окно агента: вы физически не можете сделать так, чтобы он туда не попал, если он существует. Поэтому к нему относятся очень аккуратно.
Что в нём должно быть:
- Короткое чёткое описание проекта — и не столько что это, сколько почему именно так и для чего.
- Технологический стек — желательно, но не обязательно.
- Правила кодирования, конкретные команды проекта, стиль коммитов.
- Архитектура и структура папок — с точки зрения «что интересного агент тут найдёт».
Чего в нём быть НЕ должно:
- Никаких API-ключей и секретов.
- Не дублировать то, что лучше вынести в Skills: если процесс повторяется (например, ваш способ тестировать баги), не описывайте его в
CLAUDE.md— создайте Skill и вCLAUDE.mdнапишите лишь: «для тестирования багов используйbug-test-skill».
CLAUDE.mdнужен только для значимого, долгоживущего проекта с многими итерациями. Для разовой мелочи он не нужен вообще.- Держите ≤ 100 строк (идеал — даже меньше, ~48; 100 — потолок «идеального» размера).
- Между уровнями (глобальный/проектный/локальный) — никаких дубликатов и противоречий.
- Плохо написанный
CLAUDE.md— хуже, чем его отсутствие (это подтверждают исследования). Раздутый или противоречивый файл ухудшает агента.
Лайфхак №1 — ссылки вместо «простыней». В 100 строк всё не уместить, и не нужно. Вместо лишнего текста давайте ссылки на другие файлы:
- Меняешь backend → читай docs/backend.md
- Работаешь с дизайном → читай docs/design.md
- Трогаешь БД → читай docs/database-schema.md
Агент сходит и прочитает по необходимости. Главное — не перегружать его всем сразу.
@ Спикер описывает ссылки как инструкцию («читай файл X») — и это работает. Но в современном Claude Code есть прямой синтаксис импорта: строка @docs/backend.md в CLAUDE.md подтянет содержимое файла в память автоматически (поддерживается рекурсивно, в т.ч. @~/...). Это даёт два режима: «прочитай по требованию» (через инструкцию-ссылку, экономит контекст) и «всегда держи под рукой» (через @-импорт). Выбирайте осознанно: всё, что нужно всегда, импортируйте через @; всё, что иногда, оставляйте обычной ссылкой.
Лайфхак №2 — блоки important if. Некоторые куски можно оборачивать в псевдо-код-акцент:
**IMPORTANT IF** ты тестируешь на Mac:
- <здесь критичные инструкции именно для Mac>
Claude хорошо считывает такой акцент — вы как бы подсвечиваете ему условие.
Лайфхак №3 — как создавать. Можно командой /init, но лучше: попросить Claude создать черновик → прочитать, что он сгенерировал → вручную подредактировать. Это один из важнейших файлов, и он должен быть выверен.
CLAUDE.md — это бейдж новобранца на входе в здание: его сканируют каждый раз, всегда, без исключений. Поэтому на бейдже не печатают всю биографию — там только имя, отдел и QR-коды-ссылки на полные досье в архиве. Если налепить на бейдж простыню текста, охрана-агент захлебнётся на проходной. Минимум на бейдже, всё остальное — по ссылке в архив.
Часть 11. Экосистема Claude Code: карта компонентов
Знания (что модель знает про проект) и Исполнители (кто делает работу) — плюс две «пограничные» вещи (MCP и Hooks), а всё вместе упаковывается в плагины.
flowchart TB
subgraph KNOW["🧠 ЗНАНИЯ"]
K1["CLAUDE.md<br/>всегда в контексте"]
K2["Skills<br/>знания по запросу"]
end
subgraph EXEC["🦾 ИСПОЛНИТЕЛИ"]
E1["Субагенты<br/>изолированные задачи"]
E2["Agent Teams<br/>команда агентов, делегируют друг другу"]
end
subgraph BORDER["⚡ Пограничные"]
B1["MCP<br/>ближе к ЗНАНИЯМ:<br/>доступ к внешним сервисам"]
B2["Hooks<br/>ближе к ИСПОЛНИТЕЛЯМ:<br/>авто-действия на события"]
end
KNOW --> PLUG["📦 ПЛАГИНЫ — контейнер для дистрибуции"]
EXEC --> PLUG
BORDER --> PLUG
PLUG --> NOTE["Skills + субагенты + MCP + Hooks<br/>пакуются в плагин.<br/>CLAUDE.md обычно НЕ пакуется"]
Субагент — агент, которого вызывает ваш главный агент (Claude Code), даёт ему изолированную задачу, тот возвращается с результатом. Польза — экономия контекстного окна: вместо того чтобы главный агент сам читал гору документации, он шлёт субагента «прочитай и принеси выжимку». Agent Teams (команды агентов) — целая команда независимых агентов, которые общаются между собой и делегируют друг другу задачи. Hooks (хуки) — авто-действия, навешанные на события. Пример: если агент захочет выполнить форматирование диска, срабатывает хук «Стоп, не делай этого», и действие физически блокируется. Plugins (плагины) — просто контейнер для удобной установки и авто-обновления комплекта из Skills/субагентов/MCP/Hooks. Ищутся через /plugin → Marketplace.
Skills, MCP. На следующем занятии: субагенты, Agent Teams, Hooks, плагины подробно (тема — «оркестрация агентов»).
Часть 12. MCP — Model Context Protocol
MCP (Model Context Protocol) — протокол, позволяющий LLM пользоваться внешними сервисами. Это тип подключения, через которое Claude Code обычно получает знания из внешнего мира.
Краткая история (с исправлением «дат-опечаток»)3
timeline
title Хронология MCP
Ноябрь 2024 : Anthropic запускает MCP : огромный прорыв, все говорят про MCP
Март 2025 : OpenAI добавляет поддержку MCP : протокол становится индустриальным
Октябрь 2025 : Дебаты «Skills важнее MCP» : умные модели вызывают сервисы напрямую через CLI
Декабрь 2025 : MCP передан в Agentic AI Foundation под эгидой Linux Foundation : вендоро-нейтральное управление
Март 2026 : Дебаты «MCP мёртв, главное CLI» : и так, и не совсем так
верен по сути, но стоит уточнить. 9 декабря 2025 года Anthropic передал Model Context Protocol во вновь созданный Agentic AI Foundation (AAIF) — направленный фонд под управлением Linux Foundation, соучредителями которого выступили Anthropic, Block и OpenAI при поддержке Google и Microsoft. То есть формально MCP попал не «прямо в Linux Foundation», а в фонд AAIF под её эгидой, рядом с проектами Goose (Block) и AGENTS.md (OpenAI). При этом модель управления не изменилась: решения по-прежнему принимают те же мейнтейнеры, а Linux Foundation даёт нейтральную инфраструктуру и не диктует техническое направление. Цифры масштаба для контекста: MCP вырос с ~2 млн загрузок на старте до 97 млн ежемесячных за 16 месяцев. Вывод: MCP не «народное достояние без хозяина», а зрелый стандарт с формальным вендоро-нейтральным управлением — это сильный аргумент «за», а не «против» MCP.
Skills vs MCP — что произошло
не вполне корректно. Skills просто объясняют, как что-то делать. А модели стали настолько умны, что им можно прямо объяснить: «хочешь внешний сервис — выполни такие-то команды в терминале». С хорошим Skill им отдельный MCP как сущность не нужен — они делают прямые вызовы CLI и всё прекрасно работает.
Но MCP не умер — у него осталась своя ниша как инфраструктурного слоя:
- Безопасность и изоляция. Пример: Cowork работает в изолированном пространстве и не может пользоваться CLI/командной строкой (иначе перестал бы быть безопасным). Зато он может использовать MCP — поэтому у него есть коннекторы. Если строите сервис, где человек не должен натворить лишнего, — дайте ему только MCP и запретите всё остальное.
- Кроссплатформенность. CLI работает не везде; MCP работает везде, даже на мобильном.
- OAuth. MCP поддерживает OAuth-авторизацию через браузер (некоторые CLI тоже, зависит от реализации).
OAuth — авторизация через браузер: вы просто логинитесь в браузере, не вводя ключи вручную. Удобно и безопасно.
flowchart LR
Q{"Что выбрать для доступа к сервису?"}
Q -->|"есть CLI у сервиса<br/>(Cloudflare, Vercel, Notion...)"| CLI["CLI + Skill<br/>✅ быстро, надёжно<br/>✅ экономит токены<br/>✅ не нужна поддержка MCP"]
Q -->|"нужна изоляция / OAuth /<br/>работа везде, вкл. мобильный"| MCP["MCP<br/>✅ безопасность<br/>✅ кроссплатформенность<br/>✅ OAuth"]
Tool Search — как решили проблему «забитого контекста»
Раньше во всех кодинг-агентах все MCP грузились сразу. При окне 200k токенов системный промпт занимал ~5k, а ваши MCP могли занять ~72k токенов — особенно если их много или они «плохие» (печально известен старый MCP GitHub). Контекст забивался ещё до начала работы. Именно из-за этого и начались разговоры «давайте лучше CLI + Skills».
«инструмент для поиска инструментов» (tool search tool, ~500 токенов). MCP-серверов может быть сколько угодно — они не грузятся превентивно. Когда модели нужен MCP, она сама ищет по смыслу подходящий инструмент, ей приходит полное описание именно этого инструмента, и она его использует.
flowchart TB
subgraph OLD["❌ РАНЬШЕ: всё грузится сразу"]
O1["Системный промпт ~5k"]
O2["ВСЕ MCP ~72k 😱"]
O3["Свободно: мало"]
end
subgraph NEW["✅ СЕЙЧАС: Tool Search"]
N1["Системный промпт ~5k"]
N2["Tool Search Tool ~0.5k"]
N3["Инструкции сервера ~2k"]
N4["Свободно: почти всё окно 🎉"]
N5["MCP подгружаются ПО ОДНОМУ, по запросу"]
end
OLD --> NEW
CLI + Skills — когда у сервиса есть CLI (а он есть у Cloudflare, Vercel, Notion и многих): быстро, надёжно, экономно. MCP — когда нужны изоляция/безопасность, кроссплатформенность (включая мобильный) и OAuth. С появлением Tool Search «проблема многих MCP» исчезла: их количество больше не забивает контекст.
весь чемодан инструментов в ручную кладь: чемодан занимает всё кресло, сесть некуда. Tool Search — это камера хранения с поисковым роботом: в карман турист кладёт только пульт-искалку размером со спичечный коробок. Понадобилась отвёртка — нажал кнопку, робот метнулся в хранилище и принёс ровно одну отвёртку с инструкцией. Кресло свободно, лететь комфортно.
Часть 13. Передача контекста между сессиями, задачами и агентами
Сценарий: у вас закончились лимиты в одной сессии, и нужно переехать на другой аккаунт, в Codex, в Gemini, Cursor, Antigravity — куда угодно, сохранив контекст текущей работы.
Memo — инструмент (от создателей Context7) для переноса контекста между любыми сессиями/инструментами. Ставится как MCP (одной командой; после установки нужен reload plugins / рестарт).
memo set— сохранить контекст проекта в облачную БД и получить ссылку-ключ.memo get <ключ>— восстановить контекст в любой другой программе.- Бесплатен, данные на бесплатном сервере хранятся ~24 часа и удаляются автоматически. Есть self-hosting — если не хотите, чтобы данные «улетали», поднимите у себя локально.
/resume Это разные вещи:
/resume— продолжить прошлый разговор в том же репозитории (выбрать из списка сессий). Полезно: выключили компьютер → открыли →/resume→ выбрали сессию.- Memo — синхронизация/перенос контекста наружу: в новый репозиторий, в другую программу, на другой движок. Не привязан к Claude Code. Если работаете с приватными проектами и переживаете за конфиденциальность — используйте self-hosting Memo.
Proof Editor AI — способ коллаборации нескольких агентов над одним документом: вы даёте Claude Code и, скажем, Codex одну онлайн-инструкцию, оба подключаются к одному тексту, читают, что пишет другой, комментируют, отвечают на комментарии. Спикер видит за этим «большое будущее коллаборации агентов» (на демо работало нестабильно из-за наплыва пользователей). QMD — простая система локального векторного поиска на маленькой локальной модели Qwen3 1.7B. Всё работает локально: превращаете большие объёмы (например, документацию) в векторы, и агенты быстро ищут по ним.
Memo — это флешка-телепорт: воткнул в сессию-А (set), получил адрес-портал; воткнул в сессию-Б на другой планете-движке (get) — и весь контекст материализовался там. /resume — это не телепорт, а просто «продолжить с той же страницы» в той же книге. Proof Editor — это Google-документ для роботов: несколько ИИ-курсоров бегают по одному листу и переписываются на полях. QMD — личный карманный поисковик-ищейка, который нюхает ваши документы у вас же в подвале, не выходя в интернет.
Часть 14. ⭐ Skills (навыки) — главная тема
Skill (навык) — по сути простая вещь: промпт + дополнительная документация + связанные скрипты. Навыки учат агента делать конкретную вещь и подгружаются по запросу (когда задача релевантна).
конкретную экспертизу. Любимая аналогия спикера — момент из «Матрицы»4: Нео подключают к стойке, и он мгновенно «знает кунг-фу». Skill — это та самая загрузка навыка: ваш LLM мгновенно осваивает конкретное умение (всё про Cloudflare, всё про Composio и т.п.).
Прогрессивная подгрузка. Сначала грузится только маленькая «шапка» Skill; остальное (а там обычно много ссылок на конкретные файлы — как и в CLAUDE.md) подтягивается, только если LLM решит, что нужно.
flowchart LR
U["Промпт пользователя"] --> KW{"Есть ключевое слово<br/>навыка? (напр. FastAPI, Pydantic)"}
KW -->|"нет"| SKIP["Skill не трогаем"]
KW -->|"да"| HEAD["Грузится короткая шапка Skill"]
HEAD --> NEED{"LLM решает: нужно глубже?"}
NEED -->|"да"| BODY["Догружаются файлы по ссылкам:<br/>правила, примеры, доки"]
NEED -->|"нет"| STOP["Работает по шапке"]
BODY --> APPLY["Применяет правила как АБСОЛЮТНУЮ ИСТИНУ"]
Безопасность Skills
официальные Skills, а неофициальные обязательно проверяйте:
- Playbooks → инструмент Tool/Skill Security Scanner.
- skills.sh → колонка security-audit. Жёлтый
warn— повод почитать, в чём дело (часто это нормально: например, у любого навыка, который что-то ищет в интернете, по определению есть риск prompt-инъекции5 — это ожидаемо). К безопасности навыков относитесь серьёзно: чужой Skill — это исполняемый код и инструкции в вашем агенте.
Навыки, которые упоминает спикер: Brainstorming (рекомендует всем), Cloudflare, Playground (визуализация работы кода — пригодится на след. занятии), FFmpeg (управление видео), Last 30 days (ищет свежие упоминания по Reddit/X), OpenClaw VPS Setup (собственный, безопасный), QMD, Remotion Best Practices (motion-графика прямо в Claude Code), Vercel, Ralph (запуск ревью через Codex).
вместе с плагином (навыки в плагине ставятся автоматически), либо вручную: кинуть в системную папку ~/.claude/skills/. Перезагрузка не нужна — подхватится автоматически.
Новая механика подгрузки навыков
Раньше все навыки грузились сразу (при большом числе — в обрезанном виде). Сейчас система смотрит, какие навыки вы реально используете, и автоматически держит только их описания. Пример из лекции: из 127 навыков 66 описаний сброшены — они присутствуют, но авто-подгрузятся только если назвать их явно; часто используемые ~61 грузятся сами по смыслу. Есть настройка в settings.json, задающая, какой процент контекстного окна могут занимать описания навыков. Можно поднять, чтобы грузились все — но в примере спикера это +10k токенов к каждому сообщению, что многовато. Спикер пока не решил, нравится ли ему новое поведение, но проблем не чувствует.
прогрессивное раскрытие (progressive disclosure) — та же идея, что и Tool Search, только для навыков. Конкретный ключ настройки и его дефолтное значение зависят от версии Claude Code, поэтому не заучивайте имя параметра — найдите его в актуальной документации настроек. Принцип же неизменен: при сотне навыков система бережёт контекст, авто-загружая лишь частые, а редкие — по явному вызову.
полка с энциклопедиями. Старая система пыталась впихнуть вам в голову все корешки сразу (а когда не влезало — рвала их пополам). Новая система — умный библиотекарь: на виду держит десяток томов, которые вы листаете каждый день, а остальные стоят на полке. Назовёте том по имени — библиотекарь мгновенно его принесёт. Можно потребовать «вынеси всё на стол», но тогда стол (контекст) завалит — и работать негде.
Часть 15. Как создавать Skills: цикл «генерация → эвалы → улучшение»
не пишете Skill руками. Вы создаёте его через Skill Creator Skill (официальный навык Anthropic, так и называется — Skill Creator; скачивается из официального репозитория). Убедитесь, что он включён.
flowchart TB
H1["👤 Человек: задумать, КАК навык должен работать"] --> H2["👤 Человек: подобрать ЭТАЛОНЫ (gold standard)"]
H2 --> S1["1) Skill Creator ГЕНЕРИРУЕТ навык"]
S1 --> S2["2) Прогон ЭВАЛОВ (тестов) на эталонах"]
S2 --> S3["3) УЛУЧШЕНИЕ навыка по результатам"]
S3 --> CHECK{"Достигнут уровень эталона?"}
CHECK -->|"нет"| S1
CHECK -->|"да / максимально близко"| DONE["✅ Готовый навык"]
S2 -.->|"иногда"| ASK["спрашивает экспертное мнение человека"]
ASK -.-> S3
Эвалы (evals, от evaluation) — тесты для вашего навыка. Запомните это слово: в AI это фундаментальный термин. Есть присказка, что «эвалы важнее, чем датасет для модели» — потому что правильно продуманные тесты дают огромную силу. Современное создание навыка — это не «написал инструкцию и всё», а цикл: генерация → тесты → улучшение, по кругу, пока результат не достигнет уровня эталона.
- Придумать, как навык работает (если не представляете — обсудите с Claude: «хочу навык для такой-то задачи, давай поищем в интернете, как это решают»).
- Подобрать эталонные материалы. Хотите генерацию классных текстов — дайте эталоны текстов. Хотите правильные манипуляции с файлами — дайте эталонные файлы. Проверка документов — дайте документы и примеры того, как их проверил человек. Именно на эталонах система прогоняет навык и доводит его до качества.
Демо в лекции: навык-генератор цветных, визуально разных QR-кодов под разные ссылки (LinkedIn / Telegram / веб-сайт — каждый со своим оформлением). Запрос включал: «сделай эталоны, гоняй эвалы, улучшай сам, пока не получишь реально хороший результат». На итерациях видно, как HTML-результат от первой версии к следующей становится заметно красивее — итерации и есть ключ ко всему.
лепить ключ напильником на глаз. Современный способ — это станок с обратной связью: вы даёте станку образец-эталон ключа (gold standard) и щель замка (эвалы). Станок вытачивает заготовку, сам пробует её в замке, видит, что не проворачивается, подтачивает — и так по кругу, пока ключ не щёлкнет. Ваша роль — не точить, а принести правильный образец и правильный замок.
Часть 16. Пять паттернов Skills
частые паттерны того, как обычно работают навыки (не «обязательно так», просто вы их реально часто встретите). Выбор паттерна зависит исключительно от вашей задачи — главное, представлять, как навык должен работать.
Google». Атрибуция сомнительна. Перечисленные паттерны (обёртка над инструментом, генератор, ревьюер, интервьюер, пайплайн) — это общеотраслевые приёмы проектирования навыков, наиболее задокументированные в собственных материалах Anthropic по Agent Skills, а не в каком-то фирменном «гайде от Google». Скорее всего, это оговорка/неточность расшифровки. На суть паттернов это не влияет — она верна; но если будете ссылаться на «первоисточник», не приписывайте список Google без проверки.
| Паттерн | Идея | Когда применять |
|---|---|---|
| 1. Обёртка над инструментом (Tool Expert / Wrapper) | Ключевое слово (напр. FastAPI, Pydantic) активирует навык → динамическая загрузка → правила применяются как абсолютная истина, без сомнений | У вас есть инструмент/документация — оберните её |
| 2. Генератор (Generator) | Навык-«менеджер» генерит контент по шаблону и стилю: читает style-guide и примеры, спрашивает тему/аудиторию → выдаёт документ | Нужно штамповать контент по заданному образцу |
| 3. Ревьюер (Reviewer) | Вы задаёте чек-лист, по которому навык обязан пройти и проверить ваш артефакт (код, отчёт — что угодно), и структурированно показывает результат | Нужна систематическая проверка «всё ли на месте» |
| 4. Интервьюер / Инверсия (Inversion / Interview) | Агент сначала опрашивает пользователя (что генерим, для кого, какая аудитория) и только потом работает по ответам | Генерация, где сначала нужно собрать вводные (презентации, резюме) |
| 5. Пайплайн (Pipeline) | Целый многошаговый процесс с подтверждениями на каждом этапе | Сложные навыки с чёткой последовательностью |
Пример пайплайна (генерация API-референса):
flowchart TB
P1["Шаг 1: анализ кода — извлечь публичные классы/функции/константы"] --> C1{"Пользователь подтверждает список?"}
C1 -->|"нет"| P1
C1 -->|"да"| P2["Шаг 2: для каждой функции что-то сгенерировать"]
P2 --> C2{"Подтверждает?"}
C2 -->|"нет"| P2
C2 -->|"да"| P3["Шаг 3: собрать всё в единый API-референс"]
P3 --> P4["Шаг 4: проверить символы, описания, примеры"]
P4 --> FIN["✅ Финальный документ"]
REF["Референсные файлы стиля"] -.-> P2
REF -.-> P3
разных породах рабочих собак, выведенных под задачу:
- Обёртка — сторожевая: знает один свод правил и верит ему свято.
- Генератор — фабрика-пекарь: один и тот же рецепт-шаблон, меняется только начинка.
- Ревьюер — таможенник с чек-листом: проверяет всё по пунктам.
- Интервьюер — журналист: сперва берёт интервью, потом пишет статью.
- Пайплайн — заводской конвейер с контролёрами на каждом участке: не пропустят дальше, пока вы не кивнули. Породу выбираете под охоту, а не наоборот.
🎯 Домашнее задание
Skill Creator Skill (убедитесь, что он включён), создайте Skill для любой задачи на ваш выбор: генерация нужных текстов, манипуляции с файлами, поиск информации в интернете, обёртка над документацией стороннего сервиса. Смысл ДЗ — не «сделать навык», а освоить подход: создание → эвалы → улучшение. Главная человеческая часть — найти правильные эталоны для эвалов. Как сдать: Save skill → Show in folder → загрузить файл навыка через «выбрать файл», и в тексте ответа обязательно описать, что делает этот навык.
Hooks сегодня не разбираем — тема слишком интересная, чтобы пройти её наспех. На следующем занятии: Hooks, субагенты, Agent Teams, плагины и сложный навык для оркестрации группы субагентов (с использованием навыка Playground).
🧾 Итоговая шпаргалка
CLAUDE.md= инструкция для мозга (мягкая, может не сработать).settings.json= закон для обвязки (жёсткий, на 100%). Не путать слои.- Приоритет настроек: managed-политики → CLI-флаги →
settings.local.json→settings.jsonпроекта → глобальный. (Спикер останавливается на «local > project > global» — корпоративный managed-уровень выше local.) CLAUDE.md-файлы смешиваются, а не заменяются → никаких противоречий между глобальным и проектным.CLAUDE.md≤ 100 строк, описывать «почему так», выносить повторяющееся в Skills, давать ссылки/@-импорты на файлы.- MCP не умер: для изоляции/OAuth/мобильного он лучший; для сервисов с CLI берите CLI + Skill. Tool Search убрал проблему «забитого контекста».
- Skills = промпт + доки + скрипты; создаются через Skill Creator в цикле генерация → эвалы → улучшение; ваша задача — эталоны.
- 5 паттернов: обёртка · генератор · ревьюер · интервьюер · пайплайн.
- Programmatic ≠ Interactive: у программного использования своя валюта-кредиты; интерактив не тронут.
- AI любит делать всё в одной цветовой палитре — добавляйте контраст и hover-состояния (например, инверсия в белый при наведении), чтобы сайт не «выдавал» себя.
- AI склонен перегружать информацией — попросите его «сходи протестируй и скажи, что бы ты здесь поменял», он может сам предложить «разрядить».
- Визуально сложные сайты труднее адаптировать под разные устройства — проверяйте мобильную версию рядом с десктопной.
- Полировка деталей решает. Маленькая «пасхалка»6 (как кричащий при падении контроллер Steam) показывает, что создателю не всё равно — именно такие штрихи отличают живой продукт от шаблона.
Footnotes
-
DevOps / сисадмин — специалисты, которые сами не пишут продукт, а настраивают окружение, в котором работают другие. Спикер проводит прямую аналогию: настройка Claude Code в компаниях станет именно такой отдельной ролью. ↩
-
Claude Mythos — топовая модель верхнего («Mythos») тира Anthropic, недоступная широкой публике. На момент лекции доступ к моделям этого тира (Mythos 5 / Fable 5) ограничен экспортной директивой — это подтверждается официальными материалами Anthropic. Пример CloudFlare показывает практику: под такую модель имеет смысл писать собственный harness. ↩
-
В исходной расшифровке годы искажены распознаванием речи («1924», «1925», «1926»). Здесь восстановлены корректные годы: запуск MCP — ноябрь 2024, поддержка OpenAI — март 2025, передача в AAIF под Linux Foundation — декабрь 2025. ↩
-
Сцена из «Матрицы» (1999): Нео загружают боевые программы прямо в мозг, после чего он произносит «I know kung fu». Каноничная метафора мгновенного приобретения навыка — ровно то, что Skills делают с LLM. ↩
-
Prompt-инъекция (prompt injection) — атака, при которой вредоносные инструкции прячут во внешних данных (веб-страница, файл), чтобы перехватить поведение агента. Поэтому любой навык, читающий недоверенный контент из интернета, по определению несёт этот риск — и пометка
warnв аудите тут ожидаема, а не обязательно тревожна. ↩ -
Речь о геймпаде от Valve/Steam с «пасхалкой»: при падении устройство издаёт «крик» из встроенных динамиков. Пример того, как необязательная деталь создаёт ощущение, что продукт делали люди, которым не всё равно. ↩