✻ Claude Code по-русски
🎧 Аудиокурс
🎧 Слушать урок6:56 · голос Russian_BrightHeroine

#Делегируйте задачу своему субагенту

Средний уровень · Урок 6 из 8 · около 20 минут · Нужно: Разрешения, области настроек и песочница · Сверено с Claude Code v2.1.285 (stable) 06.10.2026

#Цель

К концу урока вы сможете написать субагента, у которого есть только те инструменты, что нужны для его задачи, и делегировать ему работу.

#Что понадобится

#Идея

Субагент — это отдельный Claude, которому ваша сессия передаёт задачу. Он работает в собственном окне контекста, со своими инструкциями и только с теми инструментами, что вы ему дали, и возвращает сводку. Прочитанные им файлы и результаты поиска не попадают в ваш разговор:

flowchart LR
  accTitle: Как субагент держит работу вне вашего контекста
  accDescr: Ваш разговор делегирует задачу субагенту. Субагент работает в собственном окне контекста со своими инструкциями и инструментами, читает файлы и ищет. В ваш разговор возвращается только его сводка.
  A["Ваш разговор"] -->|задача| B["Субагент: своё окно контекста, свои инструкции, ограниченные инструменты"]
  B -->|читает файлы и ищет| B
  B -->|только сводка| A

Субагент проекта — это Markdown-файл в .claude/agents/: фронтматтер с name и description (оба обязательны), необязательный список tools, затем инструкции, по которым он работает. Claude читает описание, чтобы решить, когда делегировать; можно также назвать субагента в запросе.

Делегируйте задачу, если вам не нужен её вывод целиком или если она должна выполняться с ограниченными инструментами. Оставляйте её в основном разговоре, если нужен обмен репликами или это быстрое точечное изменение (Choose between subagents and main conversation).

#Разбор примера

  1. Скачайте в свой репозиторий пример из руководства — code-reviewer — и прочитайте его:
mkdir -p .claude/agents
curl -fsSL https://raw.githubusercontent.com/wesammustafa/Claude-Code-Everything-You-Need-to-Know/main/examples/intermediate/06-subagents/dot-claude/agents/code-reviewer.md -o .claude/agents/code-reviewer.md

Его фронтматтер ограничивает его тремя инструментами, так что он может читать и искать файлы, но не может их править или запускать команды:

name: code-reviewer
tools: Read, Grep, Glob
  1. Запустите claude. Если сессия уже шла, когда вы создали .claude/agents/, перезапустите её: Claude Code следит только за папками агентов, существовавшими на момент старта сессии (Write subagent files).
  2. Внесите небольшое изменение в исходный файл и попросите:
Use the code-reviewer agent to review my uncommitted changes.

Пока ревьюер работает, в расшифровке видна строка вроде code-reviewer(Review uncommitted changes). Ревьюер не может запустить git diff, поэтому начинает с сообщения-задачи, которое для него пишет ваша сессия, и снимка git status (What loads at startup); затем вы получаете его замечания в виде сводки, сгруппированной по серьёзности. Формулировки у вас будут другими.

#Ваша очередь

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

  1. Сохраните это как .claude/agents/test-gaps.md и замените оба TODO. Дайте ему только инструменты для чтения:
---
name: test-gaps
description: TODO
tools: TODO
---

You find code that no test exercises. You never change files.

1. List the functions each source file exports.
2. For each one, search the test files for a call to it.
3. Report the functions that no test calls, grouped by file, with one line on what a test for each should check. If every function has a test, say so.
  1. Закоммитьте его.
  2. Сохраните этот журнал делегирования в .practice/i-6-hook.json. Это хук SubagentStart, который дописывает имя каждого запущенного Claude субагента в .practice/i-6-agents.txt и больше ничего не записывает:
{
  "hooks": {
    "SubagentStart": [
      { "hooks": [ { "type": "command", "command": "jq -r '.agent_type' >> \"$CLAUDE_PROJECT_DIR/.practice/i-6-agents.txt\"" } ] }
    ]
  }
}
  1. Запустите claude --settings .practice/i-6-hook.json и попросите: Use the test-gaps agent to list the functions no test calls.

#Проверка

Урок пройден, когда выполнено всё это:

Запустите npm run check -- i-6 --dir <your repo> из своей копии для практики или npm run check -- i-6 в самой копии.

Если не проходит первый пункт, проверьте фронтматтер: Claude Code пропускает файл агента без name, а также файл с name, но без description. Если не проходит пункт об инструментах, уберите каждый инструмент, который может менять файлы или запускать команды; без строки tools субагент получает все инструменты. Если в журнале нет строки test-gaps, запустите сессию с файлом хука и назовите субагента в запросе.

#Осторожно

#Что дальше


Источники: Create custom subagents · Hooks reference · Tools reference · Configure permissions · Debug your configuration

← Закрепите правило хуком · Оглавление Среднего уровня · Подключите инструмент через MCP → · Тема: Субагенты и параллельная работа · Застряли на уроке?