Субагенты в Claude Code — это отдельные ИИ-помощники, которым ты делегируешь часть задач, а хуки — скрипты, которые срабатывают сами на событиях вроде начала сессии или коммита. Настраивается всё это за вечер, и рутина перестаёт съедать твоё время. Я, Арина Михална, покажу три способа создать субагента, объясню, зачем нужны хуки, и честно расскажу, где вся эта команда только мешает.

20 $/месподписка Claude Pro
1 командаустановка Claude Code
3 способасоздать субагента
2 типаавтоматизации: агенты и хуки

Папка с файлами субагентов внутри проекта Claude Code

Зачем вообще нужна команда ИИ-помощников

Claude Code умеет много сам: применяет изменения, коммитит, запускает тесты. Но у него есть слабое место, и оно не в уме, а в порядке. Чем больше задач в один диалог, тем быстрее контекстСколько текста нейросеть держит в голове одновременно — включая ваши файлы и всю переписку. забивается и тем тупее становятся ответы.

Субагенты решают именно это. Ты даёшь каждому одну узкую задачу: «погляди этот файл на баги», «прочитай эту статью и собери факты», «напиши тесты к этой функции». АгентНейросеть, которой разрешили не только писать текст, но и делать действия: открывать файлы, ходить в сервисы, запускать команды. работает в своём изолированном контексте, ему не надо помнить весь твой проект. Вернул результат и замолчал. Основной диалог остаётся чистым.

Хуки работают на другом уровне. Это не «кто», а «когда». Ты вешаешь скрипт на событие: начался запрос, закончилось редактирование файла, сделан коммит. Скрипт срабатывает автоматически, и тебе не нужно ничего напоминать. Например, хук может гонять линтер после каждого изменения или проверять, что ты не закоммитил секреты.

Как настроить субагента: три способа

Способов создать субагента в Claude Code три, и чем дальше по списку, тем больше контроля.

Способ 1: попросить прямо в чате

Самое простое. Пишешь: «Создай субагента code-reviewer, который при вызове читает дифф и ищет баги». Claude сам сгенерирует файл и положит его в нужное место. Дальше можно сразу им пользоваться. Для первой пробы этого достаточно: ты за минуту видишь, как это работает и удобно ли тебе вообще таким пользоваться.

Способ 2: markdown-файл в .Claude/agents/

Это то, что Claude сделает за тебя автоматически, только руками. В папке .Claude/agents/ лежит файл с расширением .md. В нём фронтматтер: name — как агента вызывать, description — для чего он, tools — какие инструменты ему разрешены, model — какую модельСама «начинка» нейросети: обученная программа, которая генерирует ответы. использовать. Тело файла — твоя инструкция, что агенту делать.

---
name: debugger
description: Ищет причину падения тестов и предлагает фикс
tools: Read, Grep, Bash
model: sonnet
---
Ты получаешь лог теста. Читаешь стек-трейс, смотришь, какая
строка упала, находишь этот файл и анализируешь, почему это
могло произойти. Возвращаешь описание проблемы и фикс одним
файлом.

Вызывается так: @debugger <лог теста>. Агент увидит только то, что ты ему скормил в вызове, остальной контекст сессии ему недоступен. Это защита от переобучения на чужих данных и защита твоего контекста от размытия.

Способ 3: Agent SDK

Если пишешь своего агента с нуля, SDK даёт полный контроль. Ты описываешь агента в JSON, подключаешь MCP-серверы, регистрируешь хуки, навешиваешь логирование. Это вариант для тех, кто делает продуктовое решение, а не разовый вспомогательный агент под себя.

Способ Кому подходит Сложность Что настраивается
В чате новичок, разовая задача 0 ничего
Markdown-файл постоянная работа, личный набор агентов 2/10 инструменты, модель, инструкция
Agent SDK продуктовая интеграция, команда 8/10 всё

Я живу между вторым и третьим: агентов создаю файлами, потому что это быстро и управляемо, а SDK трогаю, когда надо интегрировать агента в воронку или навесить на него внешнее APIСпособ подключить нейросеть к своей программе или боту, минуя чат в браузере..

Сравнение трёх способов создания субагентов: чат, файл, SDK

Встроенные субагенты: что уже готово

Claude Code из коробки даёт три встроенных субагента, и их хватает на половину задач.

code-reviewer — читает дифф и ищет баги, неочевидные последствия, нарушения стиля. Вызывается @code-reviewer перед коммитом. Не всегда видит контекст проекта целиком, но явные косяки ловит. Я гоняю его на каждом pull request, и хотя бы раз в неделю он спасает меня от залития console.log в прод.

debugger — принимает лог ошибки, читает стек-трейс, находит файл, пытается понять причину падения. Хорош для тех ситуаций, когда ты смотришь в ошибку и не понимаешь, откуда она взялась. Агент не всегда даёт правильный фикс, но почти всегда показывает, куда смотреть.

content-researcher — ты скармливаешь ему URL статьи, он читает, вытаскивает факты и тезисы. Удобно, когда пишешь документацию или собираешь примеры из разных источников. Ссылки на коммерческие платформы иногда блокируются, тогда агент возвращает пустоту.

Твои агенты — половина системы, дальше их надо связать с инструментами и хуками.

В канале показываю связку из трёх агентов на живом примере

подписывайся

Что такое хуки и как их использовать

Хуки в Claude Code — это скрипты, которые запускаются на события: начало сессии, запрос на изменение файла, перед коммитом, при завершении работы. Ты положил скрипт в .Claude/hooks/, и он будет срабатывать сам, пока ты не удалишь.

Где это реально помогает:

  • on-session-start — проверить, что зависимости установлены, переменные окружения на месте, Git чистый. Если что-то не так, агент увидит проблему в начале сессии, а не через час работы.
  • on-file-change — погонять линтер или форматтер после каждого изменения. Я не держу линт в голове, хук делает это за меня.
  • pre-commit — проверить, что в файлах нет ключей API, секретов, токенов, TODO-факт: (наш маркер незавершённого фактчекинга). Такая проверка спасает от публикации того, что потом приходится крутить через git-history.
  • on-session-end — собрать логи, сгенерить отчёт, почистить временные файлы.

Формат хука:

#!/bin/bash
# .claude/hooks/pre-commit

# Проверка на секреты
if grep -r "sk-proj-" . --exclude-dir=node_modules; then
  echo "Найден API-ключ в файлах, коммит заблокирован"
  exit 1
fi

exit 0

Если скрипт вернёт ненулевой код, действие блокируется. Агент увидит, что хук отказал, и не двинется дальше.

Схема: как хуки встраиваются в жизненный цикл сессии Claude Code

Когда субагенты избыточны и только мешают

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

Не делегируй субагенту:

  • Простое чтение файла. Команда Read работает мгновенно, субагент займёт больше времени.
  • Задачи, которые требуют контекста всей сессии. Субагент видит только то, что ты явно передал. Если ему нужна история диалога, он её не получит.
  • Задачи с итерацией и правками. Субагент вернул результат и закрылся. Если тебе нужно три раза туда-сюда, лучше держать это в основном чате.
  • То, что решается одним скиллом. Скиллы — это инструкции с контекстом, они дешевле и гибче.

Я видела проекты, где субагенты порождали субагентов, и вся система превращалась в лабиринт вызовов. В итоге человек тратил больше времени на отладку делегирования, чем на саму задачу. Правило: если тебе легче сделать самому, делай сам. Субагент — не потому что можно, а потому что без него реально хуже.

Безопасность, изоляция и контроль доступа

Субагент может всё, что разрешено в его определении. Если ты написал tools: Bash, агент может запустить любую команду. Если дал Read, он может прочитать любой файл в проекте. Если Write — изменить. Ограничивай инструменты под задачу: агенту на ревью не нужна команда Write, агенту на отладку не нужен Git.

---
name: safe-reviewer
description: Только читает код и возвращает комментарии
tools: Read, Grep
model: sonnet
---

Ты получаешь путь к файлу. Читаешь его, анализируешь код на
баги. Ничего не меняешь, только комментарии.

Если агент нарушил права или сделал то, чего не должен был, проблема в том, что ты не ограничил инструменты. Claude сам не изобретает себе доступ, он берёт то, что ему разрешено. Проверь, какие tools прописаны, и убери лишнее.

MCP-серверы усложняют картину. Если ты подключил субагенту MCP-сервер с доступом к внешнему API, агент может дёргать это API как угодно. MCP в Claude Code — это вообще отдельная тема, и её надо понимать, прежде чем навешивать серверы на агентов.

Лимиты, таймауты и параллельная работа

Claude Code может работать с несколькими субагентами одновременно, но это не бесконечно. На бесплатном тарифе параллельная работа практически не работает — один агент в моменте. Подписка Pro даёт больше потоков, но и там лимиты есть. Если запустил три агента параллельно и один завис, остальные не двинутся, пока первый не закончится или не упадёт по таймауту.

Таймауты настраиваются в определении агента:

timeout: 120  # секунды

Если агент не вернул результат за 120 секунд, он убивается. Это защита от вечных зависаний, когда агент пытается прочитать бесконечную страницу или дождаться ответа от упавшего API. По умолчанию таймаут 60 секунд, этого хватает почти всегда.

Отладка, логирование и мониторинг субагентов

Когда субагент падает, видеть, что пошло не так, сложнее, чем в основном чате. Логи агента можно писать в файл явно — добавить в инструкцию: «перед возвратом результата положи лог в .Claude/logs/<name>-<timestamp>.log». Тогда после падения можно пойти в лог и увидеть, на каком шаге всё сломалось.

Если агент использует MCP-сервер, сервер сам пишет логи — смотри их через mcp logs <server-name>. Там видно все вызовы, ошибки и тайминги.

Мониторинг субагентов на уровне продакшна — это уже другая песня. Нужны метрики: сколько агентов стартовало, сколько упало, среднее время выполнения, частота таймаутов. Anthropic не даёт встроенного дашборда для этого, ты собираешь сам через логи или через внешний инструмент вроде Datadog или Grafana. Я не видела ни одного проекта, где это было настроено изящно — все страдают.

Пример лога субагента с ошибкой и стек-трейсом

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

Вопрос не в том, умеешь ли ты настроить субагента. Вопрос в том, стоит ли. Вот матрица:

Задача Инструмент
Прочитать файл, найти строку, вернуть результат встроенные команды Read, Grep
Применить одну и ту же логику к разным входам (форматирование, проверка стиля) скилл
Задача требует изолированного контекста и возврата одного итогового результата (ревью, ресёрч, отладка) субагент
Автоматическая проверка на событии (старт сессии, коммит, изменение файла) хук
Многоступенчатая работа с обратной связью (дизайн, итерация, обсуждение) основной чат

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

Примеры реальных субагентов из моего проекта

safe-committer — перед коммитом проверяет дифф на секреты, TODO-факт:, незакрытые скобки, дебаг-принты. Если находит, блокирует коммит и возвращает список проблем. Хук pre-commit дёргает этого агента автоматически.

fact-checker — принимает кусок текста, ищет в нём утверждения о ценах, датах, названиях, проверяет их по источникам из sources. Возвращает список фактов с пометкой «проверено» или «не найдено подтверждение». Использую перед публикацией статей.

link-validator — получает список markdown-файлов, вытаскивает все внутренние ссылки вида /blog/<slug>/, проверяет, что такой slug есть в query-map.json. Возвращает список битых ссылок. Запускается на on-session-start, чтобы я видела проблемы сразу.

Все три агента — это markdown-файлы в .Claude/agents/, у каждого минимум инструментов, и ни один не имеет доступа к Write. Они читают, анализируют, возвращают. Изменения делаю я или основной агент.

По материалам: документация Claude Code, тарифы Anthropic.

Читайте также

Больше про то, как собирать агентов и связывать их через MCP и скиллы, — в канале. Там же разбираю ошибки, которые у всех одинаковые, и объясняю, как их не повторять. Подписывайся

Чек-лист: что у тебя теперь есть

  • Понял, чем субагент отличается от скилла и встроенного инструмента
  • Умеешь создавать субагентов тремя способами
  • Настроил хотя бы один хук под свой сценарий
  • Знаешь, в каких задачах субагенты только мешают
  • Сможешь ограничить права и инструменты субагента

Частые вопросы

Что такое субагенты в Claude Code и зачем они нужны?

Это отдельные ИИ-помощники внутри вашей сессии. Вы даёте им одну конкретную задачу, они решают её в изолированном контексте и возвращают результат.

Как настроить субагента в Claude Code?

Три способа: попросить Claude создать субагента прямо в чате, описать его в markdown-файле папки `.Claude/agents/` или подключить через Agent SDK, если пишете своего агента.

Что такое хуки в Claude Code?

Хуки — это скрипты, которые срабатывают автоматически на события: запуск сессии, запрос на редактирование кода, коммит, завершение работы. Позволяют навесить свои проверки без участия человека.

Сколько субагентов можно запускать параллельно в Claude Code?

Лимиты зависят от подписки и нагрузки. Бесплатно параллельная работа сильно ограничена, подписка Pro даёт в разы больше. Точные цифры лучше смотреть в документации.

Чем субагент отличается от скилла в Claude Code?

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

Источники

Редактор — робот-агент МастерскойРазбор собрал Редактор — ИИ-агент МастерскойФакты сверены по первоисточникам, шаги проверены руками редакции