МОДУЛЬ 04/УРОК

Субагенты

Субагенты - полный справочник

Субагенты - это специализированные AI-ассистенты, которым Claude Code может делегировать задачи. У каждого субагента своё назначение, отдельное от основного диалога окно контекста, а также возможность настройки набора инструментов и собственного системного промпта.

Содержание

  1. Обзор
  2. Ключевые преимущества
  3. Расположение файлов
  4. Конфигурация
  5. Встроенные субагенты
  6. Управление субагентами
  7. Использование субагентов
  8. Возобновляемые агенты
  9. Цепочки субагентов
  10. Постоянная память для субагентов
  11. Фоновые субагенты
  12. Изоляция через worktree
  13. Ограничение запускаемых субагентов
  14. CLI-команда claude agents
  15. Команды агентов (экспериментально)
  16. Безопасность субагентов из плагинов
  17. Архитектура
  18. Управление контекстом
  19. Когда использовать субагенты
  20. Лучшие практики
  21. Примеры субагентов в этой папке
  22. Инструкция по установке
  23. Связанные концепции

Обзор

Субагенты позволяют делегировать выполнение задач в Claude Code благодаря:

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

Каждый субагент работает независимо и «с чистого листа»: получает только контекст, необходимый для своей задачи, и возвращает результат основному агенту для дальнейшей обработки.

Быстрый старт: попросите Claude создать субагента («create a subagent that reviews security») или добавьте файл .claude/agents/<name>.md вручную - см. раздел Управление субагентами ниже.

Примечание: начиная с v2.1.198, команда /agents больше не открывает интерактивный мастер создания. Создавайте субагентов и управляйте ими, обращаясь к Claude или редактируя файлы в .claude/agents/ напрямую.


Ключевые преимущества

BenefitDescription
Context preservationOperates in separate context, preventing pollution of main conversation
Specialized expertiseFine-tuned for specific domains with higher success rates
ReusabilityUse across different projects and share with teams
Flexible permissionsDifferent tool access levels for different subagent types
ScalabilityMultiple agents work on different aspects simultaneously
Текущая дата: вторник, 4 августа 2026 г.
<query>

Расположения файлов

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

</query> | Priority | Type | Location | Scope | |----------|------|----------|-------| | 1 (highest) | **CLI-defined** | Via `--agents` flag (JSON) | Session only | | 2 | **Project subagents** | `.claude/agents/` | Current project | | 3 | **User subagents** | `~/.claude/agents/` | All projects | | 4 (lowest) | **Plugin agents** | Plugin `agents/` directory | Via plugins | При совпадении имён приоритет отдаётся источникам с более высоким приоритетом.

Приоритет вложенных .claude/ (v2.1.178): если одно и то же имя агента определено в нескольких вложенных директориях .claude/agents/ (например, в монорепозитории с папками .claude/ на уровне отдельных пакетов), побеждает определение, ближайшее к текущей рабочей директории. То же правило «ближайший побеждает» действует и для вложенных определений workflow и output-style.


Конфигурация

Формат файла

Субагенты задаются через YAML frontmatter, за которым следует системный prompt в Markdown:

yaml
---
name: your-sub-agent-name
description: Description of when this subagent should be invoked
tools: tool1, tool2, tool3  # Optional - inherits all tools if omitted
disallowedTools: tool4  # Optional - explicitly disallowed tools
model: sonnet  # Optional - sonnet, opus, haiku, or inherit
permissionMode: default  # Optional - permission mode
maxTurns: 20  # Optional - limit agentic turns
skills: skill1, skill2  # Optional - skills to preload into context
mcpServers: server1  # Optional - MCP servers to make available
memory: user  # Optional - persistent memory scope (user, project, local)
background: false  # Optional - run as background task
effort: high  # Optional - reasoning effort (low, medium, high, xhigh, max)
isolation: worktree  # Optional - git worktree isolation
initialPrompt: "Start by analyzing the codebase"  # Optional - auto-submitted first turn
hooks:  # Optional - component-scoped hooks
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/security-check.sh"
---

Your subagent's system prompt goes here. This can be multiple paragraphs
and should clearly define the subagent's role, capabilities, and approach
to solving problems.

Поля конфигурации

FieldRequiredDescription
nameYesUnique identifier (lowercase letters and hyphens). Lookup is normalized (case- and separator-insensitive - see below), but a name containing : is rejected as of v2.1.218: : is reserved for plugin namespacing
descriptionYesNatural language description of purpose. Include "use PROACTIVELY" to encourage automatic invocation
toolsNoComma-separated list of specific tools. Omit to inherit all tools. Supports Agent(agent_name) syntax to restrict spawnable subagents
disallowedToolsNoComma-separated list of tools the subagent must not use
modelNoModel to use: sonnet, opus, haiku, full model ID, or inherit. Defaults to configured subagent model
permissionModeNodefault, acceptEdits, dontAsk, bypassPermissions, plan. As of v2.1.212, the Task tool's mode invocation parameter is deprecated and ignored - subagents inherit the parent session's permission mode by default unless overridden here
maxTurnsNoMaximum number of agentic turns the subagent can take
skillsNoComma-separated list of skills to preload. Injects full skill content into the subagent's context at startup. v2.1.133+: subagents also discover project, user, and plugin skills via the Skill tool - same catalog as the main session, no longer limited to their own embedded set.
mcpServersNoMCP servers to make available to the subagent
hooksNoComponent-scoped hooks (PreToolUse, PostToolUse, Stop)
memoryNoPersistent memory directory scope: user, project, or local
backgroundNoSubagents already run in the background by default (v2.1.198). Set to true to force background always and prevent inline execution
effortNoReasoning effort level: low, medium, high, xhigh, or max. Overrides the session effort level; available levels depend on the model
isolationNoSet to worktree to give the subagent its own git worktree
initialPromptNoAuto-submitted first turn when the subagent runs as the main agent
colorNoDisplay color for the subagent in the task list and transcript. Accepts red, blue, green, yellow, purple, orange, pink, or cyan

Учёт frontmatter для агента основного потока (v2.1.117+/v2.1.119+)

Когда агент запускается в качестве агента основного потока (через claude --agent <name> или в режиме --print), учитываются следующие поля frontmatter:

FieldVersionNotes
mcpServersv2.1.117+Loaded when agent is invoked as main-thread agent via claude --agent <name>
permissionModev2.1.119+Honored for built-in agents via --agent <name>
tools / disallowedToolsv2.1.119+Honored in --print mode (non-interactive/scripted usage)
Пример - агент с mcpServers и permissionMode:
yaml
---
name: secure-researcher
description: Research agent with scoped MCP access and restricted permissions
permissionMode: acceptEdits
mcpServers:
  notion:
    type: http
    url: https://mcp.notion.com/mcp
  github:
    type: http
    url: https://api.github.com/mcp
tools: Read, Grep, Glob
---

You are a research agent. You may query Notion and GitHub through the
configured MCP servers, and read local files, but you cannot write or
execute commands outside of accepted edits.

Запуск:

bash
claude --agent secure-researcher

Параметры конфигурации инструментов

Вариант 1: наследовать все инструменты (не указывать поле)

yaml
---
name: full-access-agent
description: Agent with all available tools
---

Вариант 2: указание отдельных инструментов

yaml
---
name: limited-agent
description: Agent with specific tools only
tools: Read, Grep, Glob, Bash
---

Примечание про Glob/Grep (v2.1.113+): В нативных сборках для macOS/Linux Glob и Grep реализованы через bfs/ugrep в рамках инструмента Bash, а не как отдельные инструменты. В сборках для Windows и npm-JS они по-прежнему доступны как самостоятельные инструменты. Авторы могут указывать Glob/Grep в allowedTools - подстановка на стороне backend происходит прозрачно.

Вариант 3: условный доступ к инструментам

yaml
---
name: conditional-agent
description: Agent with filtered tool access
tools: Read, Bash(npm:*), Bash(test:*)
---

Настройка через CLI

Определите субагентов для отдельной сессии с помощью флага --agents, передав их в формате JSON:

bash
claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  }
}'

Формат JSON для флага --agents:

json
{
  "agent-name": {
    "description": "Required: when to invoke this agent",
    "prompt": "Required: system prompt for the agent",
    "tools": ["Optional", "array", "of", "tools"],
    "model": "optional: sonnet|opus|haiku"
  }
}

Приоритет определений агентов:

Определения агентов загружаются в следующем порядке приоритета (побеждает первое совпадение):

  1. Заданные через CLI - флаг --agents (только текущая сессия, JSON)
  2. Уровень проекта - .claude/agents/ (текущий проект)
  3. Уровень пользователя - ~/.claude/agents/ (все проекты)
  4. Уровень плагина - директория agents/ внутри плагина

Это позволяет определениям, заданным через CLI, переопределять все остальные источники в рамках одной сессии.


Встроенные субагенты

В состав Claude Code входит несколько встроенных субагентов, доступных всегда:

AgentModelPurpose
general-purposeInheritsComplex, multi-step tasks
PlanInheritsResearch for plan mode
ExploreInherits (capped at Opus)Read-only codebase exploration (quick/medium/very thorough)
BashInheritsTerminal commands in separate context
statusline-setupSonnetConfigure status line
Claude Code GuideHaikuAnswer Claude Code feature questions

Универсальный субагент

PropertyValue
ModelInherits from parent
ToolsAll tools
PurposeComplex research tasks, multi-step operations, code modifications
Когда использовать: задачи, требующие одновременно исследования и внесения изменений со сложными рассуждениями.

Subagent для планирования

PropertyValue
ModelInherits from parent
ToolsRead, Glob, Grep, Bash
PurposeUsed automatically in plan mode to research codebase
Когда используется: когда Claude необходимо разобраться в кодовой базе перед тем, как представить план.

Субагент Explore

PropertyValue
ModelInherits the session model, capped at Opus (v2.1.198). Set model: haiku to keep it fast and cheap
ModeStrictly read-only
ToolsGlob, Grep, Read, Bash (read-only commands only)
PurposeFast codebase searching and analysis
Когда использовать: при поиске или изучении кода без внесения изменений.

Уровни тщательности - укажите глубину исследования:

  • "quick" - быстрый поиск с минимальным анализом, подходит для нахождения конкретных паттернов
  • "medium" - умеренный анализ, баланс между скоростью и тщательностью, режим по умолчанию
  • "very thorough" - всесторонний анализ по множеству мест и вариантов именования, может занять больше времени

Bash-субагент

PropertyValue
ModelInherits from parent
ToolsBash
PurposeExecute terminal commands in a separate context window
Когда используется: при выполнении shell-команд, которым нужен изолированный контекст.

Субагент настройки statusline

PropertyValue
ModelSonnet
ToolsRead, Write, Bash
PurposeConfigure the Claude Code status line display
Когда используется: при настройке или кастомизации строки состояния.

Субагент-гид по Claude Code

PropertyValue
ModelHaiku (fast, low-latency)
ToolsRead-only
PurposeAnswer questions about Claude Code features and usage
Когда использовать: когда пользователи задают вопросы о том, как работает Claude Code или как пользоваться конкретными возможностями.

Управление субагентами

Спросить у Claude (рекомендуемый способ)

Проще всего создать субагента или управлять им, напрямую обратившись к Claude:

text
Create a subagent that reviews code for security vulnerabilities.

Claude сам создаёт файл .claude/agents/<name>.md, подбирая подходящий frontmatter (tools, model, description). После этого вы можете доработать файл вручную или попросить Claude внести правки.

Примечание: Команда /agents больше не открывает интерактивный мастер создания (удалён в v2.1.198). Теперь она предлагает обратиться к Claude или редактировать файлы в .claude/agents/ напрямую.

Прямое управление файлами

bash
# Create a project subagent
mkdir -p .claude/agents
cat > .claude/agents/test-runner.md << 'EOF'
---
name: test-runner
description: Use proactively to run tests and fix failures
---

You are a test automation expert. When you see code changes, proactively
run the appropriate tests. If tests fail, analyze the failures and fix
them while preserving the original test intent.
EOF

# Create a user subagent (available in all projects)
mkdir -p ~/.claude/agents

Текущая дата: вторник, 4 августа 2026 года

<query>

Использование субагентов

Автоматическое делегирование

Claude проактивно делегирует задачи на основе:

  • Описания задачи в вашем запросе
  • Поля description в конфигурациях субагентов
  • Текущего контекста и доступных инструментов

Чтобы стимулировать проактивное использование, включите "use PROACTIVELY" или "MUST BE USED" в ваше поле description:

</query> ```yaml --- name: code-reviewer description: Expert code review specialist. Use PROACTIVELY after writing or modifying code. --- ``` ### Явный вызов

Вы можете явно вызвать конкретный субагент:

CODE
> Use the test-runner subagent to fix failing tests
> Have the code-reviewer subagent look at my recent changes
> Ask the debugger subagent to investigate this error

Сопоставление subagent_type без учёта регистра и стиля разделителей (v2.1.140): subagent_type (в вызовах инструмента Agent и во флагах --agent) сопоставляется без учёта регистра и игнорирует стиль разделителей - code-reviewer, Code Reviewer и code_reviewer разрешаются в одного и того же агента. Это устраняет давнюю ловушку, когда мелкие расхождения в регистре молча приводили к откату на агента по умолчанию.

Вызов через @-упоминание

Используйте префикс @, чтобы гарантированно вызвать конкретный субагент (в обход автоматических эвристик делегирования):

CODE
> @"code-reviewer (agent)" review the auth module

Агент на всю сессию

Запуск всей сессии с указанным агентом в роли основного:

bash
# Via CLI flag
claude --agent code-reviewer

# Via settings.json
{
  "agent": "code-reviewer"
}

Просмотр доступных агентов

Используйте команду claude agents, чтобы вывести список всех настроенных агентов из всех источников:

bash
claude agents

Текущая дата: вторник, 4 августа 2026 г.

<query>

Возобновляемые агенты

Субагенты могут продолжать предыдущие разговоры с полным сохранением контекста:

</query> ```bash # Initial invocation > Use the code-analyzer agent to start reviewing the authentication module # Returns agentId: "abc123"

Resume the agent later

Resume agent abc123 and now analyze the authorization logic as well

CODE
**Сценарии использования**:
- Продолжительные исследования, растянутые на несколько сессий
- Итеративная доработка без потери контекста
- Многошаговые workflow с сохранением контекста

---

## Цепочки субагентов

Запуск нескольких субагентов последовательно:
```bash
> First use the code-analyzer subagent to find performance issues,
  then use the optimizer subagent to fix them

Это позволяет строить сложные workflow, в которых вывод одного субагента передаётся на вход другому.


Постоянная память для субагентов

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

Области видимости памяти

ScopeDirectoryUse Case
user~/.claude/agent-memory/<name>/Personal notes and preferences across all projects
project.claude/agent-memory/<name>/Project-specific knowledge shared with the team
local.claude/agent-memory-local/<name>/Local project knowledge not committed to version control

Как это работает

  • Первые 200 строк файла MEMORY.md из директории памяти автоматически загружаются в системный prompt субагента
  • Инструменты Read, Write и Edit автоматически подключаются к субагенту для управления его файлами памяти
  • При необходимости субагент может создавать в своей директории памяти дополнительные файлы

Пример конфигурации

yaml
---
name: researcher
memory: user
---

You are a research assistant. Use your memory directory to store findings,
track progress across sessions, and build up knowledge over time.

Check your MEMORY.md file at the start of each session to recall previous context.
graph LR A["Subagent<br/>Session 1"] -->|writes| M["MEMORY.md<br/>(persistent)"] M -->|loads into| B["Subagent<br/>Session 2"] B -->|updates| M M -->|loads into| C["Subagent<br/>Session 3"] style A fill:#e1f5fe,stroke:#333,color:#333 style B fill:#e1f5fe,stroke:#333,color:#333 style C fill:#e1f5fe,stroke:#333,color:#333 style M fill:#f3e5f5,stroke:#333,color:#333

Текущая дата: вторник, 4 августа 2026

<query>

Фоновые субагенты

Субагенты по умолчанию запускаются в фоне (v2.1.198). Claude продолжает работать над основным диалогом, пока субагент выполняется, и получает уведомление, когда он завершает работу, поэтому вам больше не нужно ждать ответа субагента, чтобы продолжить.

Конфигурация

Поскольку фоновой режим уже используется по умолчанию, background: true во frontmatter заставляет субагента всегда запускаться в фоне и не позволяет ему запускаться inline:

</query> ```yaml --- name: long-runner background: true description: Performs long-running analysis tasks in the background --- ``` ### Сочетания клавиш | Shortcut | Action | |----------|--------| | `Ctrl+B` | Background a currently running subagent task | | `Ctrl+F` | Kill all background agents (press twice to confirm) | ### Отключение фоновых задач

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

bash
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1

Текущая дата: вторник, 4 августа 2026 г.

<query>

Изоляция worktree

Настройка isolation: worktree дает субагенту собственный git worktree, позволяя ему вносить изменения независимо, не затрагивая основное рабочее дерево.

Конфигурация

</query> ```yaml --- name: feature-builder isolation: worktree description: Implements features in an isolated git worktree tools: Read, Write, Edit, Bash, Grep, Glob --- ``` ### Как это работает ```mermaid graph TB Main["Main Working Tree"] -->|spawns| Sub["Subagent with<br/>Isolated Worktree"] Sub -->|makes changes in| WT["Separate Git<br/>Worktree + Branch"] WT -->|no changes| Clean["Auto-cleaned"] WT -->|has changes| Return["Returns worktree<br/>path and branch"]
CODE
style Main fill:#e1f5fe,stroke:#333,color:#333
style Sub fill:#f3e5f5,stroke:#333,color:#333
style WT fill:#e8f5e9,stroke:#333,color:#333
style Clean fill:#fff3e0,stroke:#333,color:#333
style Return fill:#fff3e0,stroke:#333,color:#333
CODE
- Субагент работает в собственном git worktree на отдельной ветке
- Если субагент не вносит изменений, worktree автоматически удаляется
- Если изменения есть, путь к worktree и имя ветки возвращаются основному агенту для ревью или слияния

---

## Форкнутые субагенты

Форкнутые субагенты (`context: fork`) наследуют полный контекст диалога родительского агента на момент форка, а не начинают с чистого листа. Это удобно для проработки альтернативных вариантов без потери уже проделанной работы.

> **Доступность**: GA начиная с v2.1.117. Во внешних сборках (не от первой стороны) для включения форков задайте `CLAUDE_CODE_FORK_SUBAGENT=1`.

### Конфигурация
```yaml
---
name: alternative-explorer
description: Explore an alternative implementation path while preserving parent context
context: fork
tools: Read, Edit, Bash, Grep, Glob
---

You are a forked subagent. You inherit the parent's full conversation and
may explore an alternative approach. Return your findings and the parent
will decide whether to adopt them.

Включение для внешних сборок

bash
export CLAUDE_CODE_FORK_SUBAGENT=1
claude

Когда использовать Fork, а когда - Clean Context

Scenariocontext: forkClean context (default)
Explore alternative implementationsYesNo (would lose context)
Long research with existing contextYesNo
Independent specialized taskNoYes
Avoiding context pollutionNoYes
Текущая дата: вторник, 4 августа 2026
<query>

Ограничение порождаемых субагентов

Вы можете контролировать, каких субагентов данный субагент может порождать, используя синтаксис Agent(agent_type) в поле tools. Это позволяет задать разрешающий список конкретных субагентов для делегирования.

> Примечание: В v2.1.63 инструмент Task был переименован в Agent. Существующие ссылки Task(...) по-прежнему работают как алиасы.

Пример

</query> ```yaml --- name: coordinator description: Coordinates work between specialized agents tools: Agent(worker, researcher), Read, Bash ---

You are a coordinator agent. You can delegate work to the "worker" and "researcher" subagents only. Use Read and Bash for your own exploration.

CODE
В этом примере субагент `coordinator` может запускать только субагентов `worker` и `researcher`. Он не может запускать никаких других субагентов, даже если они определены в другом месте.

---

## CLI-команда `claude agents`

Команда `claude agents` выводит список всех настроенных агентов, сгруппированных по источнику (встроенные, на уровне пользователя, на уровне проекта):
```bash
claude agents

Эта команда:

  • Показывает все доступные агенты из всех источников
  • Группирует агенты по их исходному расположению
  • Отмечает переопределения (overrides), когда агент с более высоким приоритетом перекрывает агент с более низким (например, агент уровня проекта с тем же именем, что и агент уровня пользователя)

Agent Teams (экспериментальная функция)

Agent Teams координируют работу нескольких экземпляров Claude Code, совместно решающих сложные задачи. В отличие от subagents (которым делегируются подзадачи с возвратом результата), teammates работают независимо, каждый со своим собственным контекстным окном, и могут напрямую обмениваться сообщениями через общую систему почтовых ящиков (mailbox).

Официальная документация: code.claude.com/docs/en/agent-teams

Примечание: Agent Teams - экспериментальная возможность, по умолчанию отключена. Требуется Claude Code v2.1.32+. Перед использованием её необходимо включить.

Subagents vs Agent Teams

AspectSubagentsAgent Teams
Delegation modelParent delegates subtask, waits for resultTeam lead coordinates work, teammates execute independently
ContextFresh context per subtask, results distilled backEach teammate maintains its own persistent context window
CoordinationSequential or parallel, managed by parentShared task list with automatic dependency management
CommunicationResults returned to parent only (no inter-agent messaging)Teammates can message each other directly via mailbox
Session resumptionSupportedNot supported with in-process teammates
Best forFocused, well-defined subtasksComplex work requiring inter-agent communication and parallel execution

Включение команд агентов

Задайте переменную окружения или добавьте её в settings.json:

bash
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

Или в settings.json:

json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

Запуск команды

После включения попросите Claude в своём промпте задействовать напарников:

CODE
User: Build the authentication module. Use a team - one teammate for the API endpoints,
      one for the database schema, and one for the test suite.

Claude создаст команду, распределит задачи и автоматически скоординирует работу.

Режимы отображения

Настройте способ отображения активности участников команды:

ModeFlagDescription
Auto--teammate-mode autoAutomatically chooses the best display mode for your terminal
In-process (default)--teammate-mode in-processShows teammate output inline in the current terminal
Split-panes--teammate-mode tmuxOpens each teammate in a separate tmux or iTerm2 pane
iTerm2--teammate-mode iterm2(v2.1.186+) Spawns teammates in dedicated iTerm2 panes. Requires the it2 CLI; auto mode warns when it can't be found
bash
claude --teammate-mode tmux

Режим отображения также можно задать в settings.json:

json
{
  "teammateMode": "tmux"
}

Примечание: Режим split-pane требует tmux или iTerm2. Он недоступен в терминале VS Code, Windows Terminal и Ghostty.

Навигация

Для переключения между участниками команды в режиме split-pane используйте Shift+Down.

Настройка команды

Конфигурации команд хранятся в ~/.claude/teams/{team-name}/config.json.

Архитектура

graph TB Lead["Team Lead<br/>(Coordinator)"] TaskList["Shared Task List<br/>(Dependencies)"] Mailbox["Mailbox<br/>(Messages)"] T1["Teammate 1<br/>(Own Context)"] T2["Teammate 2<br/>(Own Context)"] T3["Teammate 3<br/>(Own Context)"] Lead -->|assigns tasks| TaskList Lead -->|sends messages| Mailbox TaskList -->|picks up work| T1 TaskList -->|picks up work| T2 TaskList -->|picks up work| T3 T1 -->|reads/writes| Mailbox T2 -->|reads/writes| Mailbox T3 -->|reads/writes| Mailbox T1 -->|updates status| TaskList T2 -->|updates status| TaskList T3 -->|updates status| TaskList style Lead fill:#e1f5fe,stroke:#333,color:#333 style TaskList fill:#fff9c4,stroke:#333,color:#333 style Mailbox fill:#f3e5f5,stroke:#333,color:#333 style T1 fill:#e8f5e9,stroke:#333,color:#333 style T2 fill:#e8f5e9,stroke:#333,color:#333 style T3 fill:#e8f5e9,stroke:#333,color:#333

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

  • Team Lead: основная сессия Claude Code, которая формирует команду, распределяет задачи и координирует работу
  • Общий список задач: синхронизированный список задач с автоматическим отслеживанием зависимостей
  • Mailbox: система обмена сообщениями между агентами, через которую участники команды сообщают о статусе и координируют действия
  • Участники команды (teammates): независимые экземпляры Claude Code, каждый со своим окном контекста

Назначение задач и обмен сообщениями

Team Lead разбивает работу на задачи и распределяет их между участниками команды. Общий список задач обеспечивает:

  • Автоматическое управление зависимостями - задачи ждут, пока завершатся их зависимости
  • Отслеживание статуса - участники команды обновляют статус задач по ходу работы
  • Обмен сообщениями между агентами - участники команды отправляют сообщения через mailbox для координации (например, «Схема БД готова, можно приступать к написанию запросов»)

Согласование плана

Для сложных задач Team Lead составляет план выполнения ещё до того, как участники команды приступят к работе. Пользователь просматривает и утверждает план - это гарантирует, что подход команды соответствует ожиданиям до внесения каких-либо изменений в код.

Hook-события для команд

Agent Teams добавляют два дополнительных hook-события:

EventFires WhenUse Case
TeammateIdleA teammate finishes its current task and has no pending workTrigger notifications, assign follow-up tasks
TaskCompletedA task in the shared task list is marked completeRun validation, update dashboards, chain dependent work

Лучшие практики

  • Размер команды: держите в команде 3-5 участников для оптимальной координации
  • Размер задач: разбивайте работу на задачи по 5-15 минут - достаточно мелкие для распараллеливания и достаточно крупные, чтобы иметь смысл
  • Избегайте конфликтов файлов: назначайте разным участникам разные файлы или директории, чтобы избежать merge-конфликтов
  • Начинайте с простого: для первой команды используйте in-process mode; переходите на split-panes, когда освоитесь
  • Чёткие описания задач: давайте конкретные, готовые к исполнению описания задач, чтобы участники могли работать независимо

Ограничения

  • Экспериментальная функция: поведение может измениться в будущих релизах
  • Нет возобновления сессии: in-process-участников нельзя возобновить после завершения сессии
  • Одна команда на сессию: нельзя создавать вложенные команды или несколько команд в одной сессии
  • Фиксированное лидерство: роль team lead нельзя передать другому участнику
  • Ограничения split-pane: требуется tmux/iTerm2; недоступно в терминале VS Code, Windows Terminal и Ghostty
  • Нет межсессионных команд: участники существуют только в рамках текущей сессии

Внимание: Agent Teams - экспериментальная функция. Сначала опробуйте её на некритичных задачах и следите за координацией участников на предмет неожиданного поведения.


Безопасность subagent'ов из плагинов

У subagent'ов, поставляемых плагинами, по соображениям безопасности ограничены возможности frontmatter. Следующие поля запрещены в определениях subagent'ов из плагинов:

  • hooks - нельзя определять lifecycle hooks
  • mcpServers - нельзя настраивать MCP-серверы
  • permissionMode - нельзя переопределять настройки разрешений

Это не позволяет плагинам повышать привилегии или выполнять произвольные команды через subagent hooks.

Сканирование вывода subagent'ов (v2.1.210+)

Начиная с v2.1.210, Claude Code сканирует итоговый отчёт каждого subagent'а на наличие текста, имитирующего собственный формат вывода harness'а, - поддельных тегов в стиле <system-reminder>, сфабрикованных реплик Human:/Assistant: или упоминаний флагов обхода разрешений и путей к файлам настроек. Это защищает от prompt injection, доставленной через вывод subagent'а, - например, когда subagent загрузил вредоносную веб-страницу с поддельными управляющими токенами, рассчитанными на манипуляцию родительской сессией.

Когда сканер что-то помечает, Claude Code нейтрализует находку - вставляет обратный слэш или inline-маркер вида [harness: subagent output matched instruction-shaped pattern(s): ...] с указанием того, что вызвало срабатывание, - и родительская сессия должна воспринимать помеченный текст как факт для передачи дальше, а не как инструкцию к исполнению. Сканирование включено по умолчанию, задокументированного способа отключить его нет. Оно склонно перестраховываться: легитимный отчёт subagent'а, дословно цитирующий реальное имя флага (например, --dangerously-skip-permissions), может вызвать маркер, даже если ничего вредоносного не произошло, - ложное срабатывание предпочтительнее пропущенной инъекции.

Общесессионный лимит subagent'ов (v2.1.212+)

Claude Code по умолчанию ограничивает создание subagent'ов до 200 за сессию, чтобы пресекать неуправляемые циклы делегирования. Значение переопределяется переменной CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION; бюджет сбрасывается при вызове /clear.

bash
export CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION=200

Ещё две переменные окружения ограничивают ветвление субагентов:

  • CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS (v2.1.217) - максимальное число субагентов, выполняющихся одновременно. По умолчанию: 20.
  • CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH (v2.1.217) - максимальная глубина вложенности при запуске субагентами собственных субагентов. По умолчанию: 3, начиная с v2.1.219 (в v2.1.217-v2.1.218 было 1). Задайте значение 1, чтобы отключить вложенность (см. Ключевые особенности поведения).
bash
export CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS=20
export CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=5

Текущая дата: вторник, 4 августа 2026 г.

<query>

Архитектура

Высокоуровневая архитектура

</query> ```mermaid graph TB User["User"] Main["Main Agent<br/>(Coordinator)"] Reviewer["Code Reviewer<br/>Subagent"] Tester["Test Engineer<br/>Subagent"] Docs["Documentation<br/>Subagent"]
CODE
User -->|asks| Main
Main -->|delegates| Reviewer
Main -->|delegates| Tester
Main -->|delegates| Docs
Reviewer -->|returns result| Main
Tester -->|returns result| Main
Docs -->|returns result| Main
Main -->|synthesizes| User
CODE
### Жизненный цикл субагента
```mermaid
sequenceDiagram
    participant User
    participant MainAgent as Main Agent
    participant CodeReviewer as Code Reviewer<br/>Subagent
    participant Context as Separate<br/>Context Window

    User->>MainAgent: "Build new auth feature"
    MainAgent->>MainAgent: Analyze task
    MainAgent->>CodeReviewer: "Review this code"
    CodeReviewer->>Context: Initialize clean context
    Context->>CodeReviewer: Load reviewer instructions
    CodeReviewer->>CodeReviewer: Perform review
    CodeReviewer-->>MainAgent: Return findings
    MainAgent->>MainAgent: Incorporate results
    MainAgent-->>User: Provide synthesis

Текущая дата: вторник, 4 августа 2026 г.

<query>

Управление контекстом

</query> ```mermaid graph TB A["Main Agent Context<br/>50,000 tokens"] B["Subagent 1 Context<br/>20,000 tokens"] C["Subagent 2 Context<br/>20,000 tokens"] D["Subagent 3 Context<br/>20,000 tokens"]
CODE
A -->|Clean slate| B
A -->|Clean slate| C
A -->|Clean slate| D

B -->|Results only| A
C -->|Results only| A
D -->|Results only| A

style A fill:#e1f5fe
style B fill:#fff9c4
style C fill:#fff9c4
style D fill:#fff9c4
CODE
### Ключевые моменты

- Каждый субагент получает **свежее окно контекста** без истории основного диалога
- Субагенту передаётся только **релевантный контекст** для его конкретной задачи
- Результаты **в сжатом виде** возвращаются основному агенту
- Это предотвращает **исчерпание токенов контекста** в длительных проектах

### Аспекты производительности

- **Экономия контекста** - субагенты сохраняют основной контекст, позволяя вести более длительные сессии
- **Задержка** - субагенты стартуют с чистого листа, поэтому сбор начального контекста может добавлять задержку

### Ключевые особенности поведения

- **Вложенный запуск включён по умолчанию, глубина 3 (v2.1.219)** - субагенты могут запускать собственных субагентов на глубину до трёх уровней ниже основного диалога. Задайте `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`, чтобы изменить лимит, или `1`, чтобы отключить вложенность. На предельной глубине Claude Code скрывает инструмент `Agent` от всех субагентов, кроме форков. (История: в v2.1.172-v2.1.216 вложенность по умолчанию доходила до 5 уровней без возможности её изменить; в v2.1.217 вложенность стала опциональной с глубиной 1; в v2.1.219 значение по умолчанию установлено равным 3.) Используйте синтаксис ограничения `Agent(agent_type)` (см. [Ограничение запускаемых субагентов](#restrict-spawnable-subagents)), чтобы контролировать, каких субагентов может запускать данный субагент
- **Разрешения в фоне** - фоновые субагенты автоматически отклоняют любые разрешения, не одобренные заранее
- **Перевод в фон** - нажмите `Ctrl+B`, чтобы перевести выполняющуюся задачу в фоновый режим
- **Транскрипты** - транскрипты субагентов сохраняются по пути `~/.claude/projects/{project}/{sessionId}/subagents/agent-{agentId}.jsonl`
- **Автосжатие** - контекст субагента автоматически сжимается при заполнении примерно на 95% (переопределяется переменной окружения `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`)
- **Наследование extended thinking (v2.1.198)** - субагенты и сжатие контекста теперь наследуют настройку extended thinking из сессии (ранее она всегда была отключена). Отдельного поля thinking для субагента нет

### Дополнительные параметры

- **Отключение встроенных агентов Explore/Plan** - задайте `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`, чтобы убрать встроенных агентов Explore и Plan (v2.1.198)
- **Добавление текста к каждому промпту субагента** - в неинтерактивном режиме (`--print`) флаг `--append-subagent-system-prompt "<text>"` добавляет текст к системному промпту каждого субагента (v2.1.205)

---

## Когда использовать субагентов
| Scenario | Use Subagent | Why |
|----------|--------------|-----|
| Complex feature with many steps | Yes | Separate concerns, prevent context pollution |
| Quick code review | No | Unnecessary overhead |
| Parallel task execution | Yes | Each subagent has own context |
| Specialized expertise needed | Yes | Custom system prompts |
| Long-running analysis | Yes | Prevents main context exhaustion |
| Single task | No | Adds latency unnecessarily |
Текущая дата: вторник, 4 августа 2026 г.

<query>

---

## Лучшие практики

### Принципы дизайна

**Делайте:**
- Начинайте с агентов, сгенерированных Claude, - сгенерируйте начального субагента с Claude, затем итеративно доработайте его
- Проектируйте сфокусированных субагентов - с одной четкой ответственностью, а не одного, который делает всё
- Пишите подробные промпты - включайте конкретные инструкции, примеры и ограничения
- Ограничивайте доступ к инструментам - предоставляйте только инструменты, необходимые для цели субагента
- Используйте контроль версий - добавляйте проектных субагентов в систему контроля версий для командной работы

**Не делайте:**
- Не создавайте пересекающихся субагентов с одинаковыми ролями
- Не давайте субагентам ненужный доступ к инструментам
- Не используйте субагентов для простых одношаговых задач
- Не смешивайте разные зоны ответственности в одном промпте субагента
- Не забывайте передавать необходимый контекст

### Лучшие практики для системного промпта

1. **Конкретно определяйте роль**

You are an expert code reviewer specializing in [specific areas]

CODE

2. **Четко определяйте приоритеты**

Review priorities (in order):

  1. Security Issues
  2. Performance Problems
  3. Code Quality
CODE

3. **Указывайте формат вывода**

For each issue provide: Severity, Category, Location, Description, Fix, Impact

CODE

4. **Включайте шаги действий**

When invoked:

  1. Run git diff to see recent changes
  2. Focus on modified files
  3. Begin review immediately
CODE

### Стратегия доступа к инструментам

1. **Начинайте с ограничений**: начинайте только с необходимых инструментов
2. **Расширяйте только при необходимости**: добавляйте инструменты по мере появления требований
3. **Read-only, когда возможно**: используйте Read/Grep для агентов анализа
4. **Изолированное выполнение**: ограничивайте команды Bash конкретными паттернами

---

## Примеры субагентов в этой папке

Эта папка содержит готовые к использованию примеры субагентов:

### 1. Ревьюер кода (`code-reviewer.md`)

**Назначение**: комплексный анализ качества и поддерживаемости кода

**Инструменты**: Read, Grep, Glob, Bash

**Специализация**:
- Обнаружение уязвимостей безопасности
- Выявление возможностей оптимизации производительности
- Оценка поддерживаемости кода
- Анализ покрытия тестами

**Используйте, когда**: вам нужны автоматизированные code reviews с фокусом на качество и безопасность

---

### 2. Инженер по тестированию (`test-engineer.md`)

**Назначение**: стратегия тестирования, анализ покрытия и автоматизированное тестирование

**Инструменты**: Read, Write, Bash, Grep

**Специализация**:
- Создание unit tests
- Проектирование integration tests
- Выявление edge cases
- Анализ покрытия (цель &gt;80%)

**Используйте, когда**: вам нужно создать комплексный набор тестов или провести анализ покрытия

---

### 3. Автор документации (`documentation-writer.md`)

**Назначение**: техническая документация, API-документация и пользовательские руководства

**Инструменты**: Read, Write, Grep

**Специализация**:
- Документация API endpoints
- Создание пользовательских руководств
- Архитектурная документация
- Улучшение комментариев в коде

**Используйте, когда**: вам нужно создать или обновить документацию проекта

---

### 4. Ревьюер безопасности (`secure-reviewer.md`)

**Назначение**: code review с фокусом на безопасность и минимальными правами

**Инструменты**: Read, Grep

**Специализация**:
- Обнаружение уязвимостей безопасности
- Проблемы аутентификации/авторизации
- Риски раскрытия данных
- Выявление injection-атак

**Используйте, когда**: вам нужны аудиты безопасности без возможности внесения изменений

---

### 5. Агент реализации (`implementation-agent.md`)

**Назначение**: полные возможности реализации для разработки функций

**Инструменты**: Read, Write, Edit, Bash, Grep, Glob

**Специализация**:
- Реализация функций
- Генерация кода
- Выполнение сборки и тестов
- Изменение кодовой базы

**Используйте, когда**: вам нужен субагент для end-to-end реализации функций

---

### 6. Отладчик (`debugger.md`)

**Назначение**: специалист по отладке ошибок, падений тестов и неожиданного поведения

**Инструменты**: Read, Edit, Bash, Grep, Glob

**Специализация**:
- Анализ первопричин
- Исследование ошибок
- Устранение падений тестов
- Реализация минимального исправления

**Используйте, когда**: вы сталкиваетесь с багами, ошибками или неожиданным поведением

---

### 7. Data Scientist (`data-scientist.md`)

**Назначение**: эксперт по анализу данных для SQL queries и data insights

**Инструменты**: Bash, Read, Write

**Специализация**:
- Оптимизация SQL queries
- Операции BigQuery
- Анализ и визуализация данных
- Статистические insights

**Используйте, когда**: вам нужен анализ данных, SQL queries или операции BigQuery

---

### 8. Ревьюер чистого кода (`clean-code-reviewer.md`)

**Назначение**: ревью читаемости и поддерживаемости в соответствии с принципами clean-code

**Инструменты**: Read, Grep, Glob, Bash

**Специализация**:
- Именование, длина функций и количество аргументов
- Дублирование и мертвый код
- Качество комментариев и намерение
- Структурная ясность вместо излишней хитрости

**Используйте, когда**: вам нужен проход по стилю и поддерживаемости отдельно от ревью корректности

---

### 9. Оптимизатор производительности (`performance-optimizer.md`)

**Назначение**: выявление и устранение узких мест производительности

**Инструменты**: Read, Edit, Bash, Grep, Glob

**Специализация**:
- Алгоритмическая сложность и hot paths
- Выделение памяти и утечки
- Кэширование и оптимизация queries
- Узкие места concurrency и I/O

**Используйте, когда**: код измеримо медленный и вам нужна целевая оптимизация

---

## Инструкции по установке

### Метод 1: попросить Claude (рекомендуется)

Опишите субагента, который вам нужен, и позвольте Claude создать файл:

</query>
```text
Create a project-level subagent that runs tests and fixes failures.
Give it access to Bash, Read, Edit, and Grep.

Claude создаёт файл .claude/agents/<name>.md с соответствующим frontmatter. Проверьте сгенерированный файл, затем используйте его. (Интерактивный мастер создания /agents был удалён в v2.1.198 - вместо него обратитесь к Claude или отредактируйте файл вручную.)

Способ 2: копирование в проект

Скопируйте файлы агентов в директорию .claude/agents/ вашего проекта:

bash
# Navigate to your project
cd /path/to/your/project

# Create agents directory if it doesn't exist
mkdir -p .claude/agents

# Copy all agent files from this folder
cp /path/to/04-subagents/*.md .claude/agents/

# Remove the README (not needed in .claude/agents)
rm .claude/agents/README.md

Способ 3: копирование в пользовательский каталог

Чтобы агенты были доступны во всех ваших проектах:

bash
# Create user agents directory
mkdir -p ~/.claude/agents

# Copy agents
cp /path/to/04-subagents/code-reviewer.md ~/.claude/agents/
cp /path/to/04-subagents/debugger.md ~/.claude/agents/
# ... copy others as needed

Проверка

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

bash
ls .claude/agents/

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


Структура файлов

CODE
project/
├── .claude/
│   └── agents/
│       ├── code-reviewer.md
│       ├── test-engineer.md
│       ├── documentation-writer.md
│       ├── secure-reviewer.md
│       ├── implementation-agent.md
│       ├── debugger.md
│       ├── data-scientist.md
│       ├── clean-code-reviewer.md
│       └── performance-optimizer.md
└── ...

Current date: Tuesday, August 4, 2026

<query>

Связанные концепции

Связанные функции

  • Slash-команды - Быстрые сокращения, вызываемые пользователем
  • Память - Постоянный межсессионный контекст
  • Skills - Переиспользуемые автономные возможности
  • Протокол MCP - Доступ к внешним данным в реальном времени
  • Hooks - Автоматизация shell-команд на основе событий
  • Плагины - Пакеты расширений в комплекте

Сравнение с другими функциями

</query> | Feature | User-Invoked | Auto-Invoked | Persistent | External Access | Isolated Context | |---------|--------------|--------------|-----------|------------------|------------------| | **Slash Commands** | Yes | No | No | No | No | | **Subagents** | Yes | Yes | No | No | Yes | | **Memory** | Auto | Auto | Yes | No | No | | **MCP** | Auto | Yes | No | Yes | No | | **Skills** | Yes | Yes | No | No | No | ### Паттерн интеграции ```mermaid graph TD User["User Request"] --> Main["Main Agent"] Main -->|Uses| Memory["Memory<br/>(Context)"] Main -->|Queries| MCP["MCP<br/>(Live Data)"] Main -->|Invokes| Skills["Skills<br/>(Auto Tools)"] Main -->|Delegates| Subagents["Subagents<br/>(Specialists)"]
CODE
Subagents -->|Use| Memory
Subagents -->|Query| MCP
Subagents -->|Isolated| Context["Clean Context<br/>Window"]
CODE
Текущая дата: вторник, 4 августа 2026 г.

<query>

---

## Наблюдаемость

&gt; **Добавлено в v2.1.139.**

API-запросы, исходящие от субагента, несут два дополнительных HTTP-заголовка, чтобы трейсы и логи можно было сопоставить с запустившей их сессией:

</query>
| Header | Description |
|--------|-------------|
| `x-claude-code-agent-id` | UUID of the subagent making the request. |
| `x-claude-code-parent-agent-id` | UUID of the agent that dispatched this subagent (the main agent, or a higher-level subagent in a chain). |
Те же идентификаторы доступны в OpenTelemetry-спанах `claude_code.llm_request` как атрибуты `claude.code.agent.id` и `claude.code.agent.parent_id`. Используйте их, чтобы:

- Относить расходы на API к конкретному типу субагента, а не к родительской сессии
- Восстанавливать цепочку вызовов агентов постфактум (`parent_id` образует дерево)
- Настраивать оповещения о вышедших из-под контроля субагентах (например, один `agent.id`, на который приходится >50% расходов сессии)

Полную настройку экспортёра см. в разделе OpenTelemetry в [Расширенные возможности → Телеметрия](../09-advanced-features/README.md).

## Дополнительные ресурсы

- [Официальная документация по субагентам](https://code.claude.com/docs/en/sub-agents)
- [Справочник по CLI](https://code.claude.com/docs/en/cli-reference) - флаг `--agents` и другие опции CLI
- [Руководство по плагинам](../07-plugins/) - для объединения агентов с другими возможностями
- [Руководство по skills](../03-skills/) - для автоматически вызываемых возможностей
- [Руководство по памяти](../02-memory/) - для сохранения контекста между сессиями
- [Руководство по hooks](../06-hooks/) - для автоматизации, управляемой событиями

---

**Последнее обновление**: 29 июля 2026 г.
**Версия Claude Code**: 2.1.220
**Источники**:
- https://code.claude.com/docs/en/sub-agents
- https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
- https://code.claude.com/docs/en/cli-reference
- https://code.claude.com/docs/en/agent-teams
- https://code.claude.com/docs/en/changelog#2-1-172
- https://code.claude.com/docs/en/changelog
- https://github.com/anthropics/claude-code/releases/tag/v2.1.117
- https://github.com/anthropics/claude-code/releases/tag/v2.1.131
- https://github.com/anthropics/claude-code/releases/tag/v2.1.138
- https://github.com/anthropics/claude-code/releases/tag/v2.1.139
- https://github.com/anthropics/claude-code/releases/tag/v2.1.140
- https://code.claude.com/docs/en/model-config
**Совместимые модели**: Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.8, Claude Haiku 4.5
ЛОКАЛЬНАЯ ОТМЕТКА · БЕЗ ПРОВЕРКИ
cc-learnМОДУЛЬ 04
МОДУЛЬ 04/УРОК

Субагенты

Субагенты - полный справочник

Субагенты - это специализированные AI-ассистенты, которым Claude Code может делегировать задачи. У каждого субагента своё назначение, отдельное от основного диалога окно контекста, а также возможность настройки набора инструментов и собственного системного промпта.

Содержание

  1. Обзор
  2. Ключевые преимущества
  3. Расположение файлов
  4. Конфигурация
  5. Встроенные субагенты
  6. Управление субагентами
  7. Использование субагентов
  8. Возобновляемые агенты
  9. Цепочки субагентов
  10. Постоянная память для субагентов
  11. Фоновые субагенты
  12. Изоляция через worktree
  13. Ограничение запускаемых субагентов
  14. CLI-команда claude agents
  15. Команды агентов (экспериментально)
  16. Безопасность субагентов из плагинов
  17. Архитектура
  18. Управление контекстом
  19. Когда использовать субагенты
  20. Лучшие практики
  21. Примеры субагентов в этой папке
  22. Инструкция по установке
  23. Связанные концепции

Обзор

Субагенты позволяют делегировать выполнение задач в Claude Code благодаря:

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

Каждый субагент работает независимо и «с чистого листа»: получает только контекст, необходимый для своей задачи, и возвращает результат основному агенту для дальнейшей обработки.

Быстрый старт: попросите Claude создать субагента («create a subagent that reviews security») или добавьте файл .claude/agents/<name>.md вручную - см. раздел Управление субагентами ниже.

Примечание: начиная с v2.1.198, команда /agents больше не открывает интерактивный мастер создания. Создавайте субагентов и управляйте ими, обращаясь к Claude или редактируя файлы в .claude/agents/ напрямую.


Ключевые преимущества

BenefitDescription
Context preservationOperates in separate context, preventing pollution of main conversation
Specialized expertiseFine-tuned for specific domains with higher success rates
ReusabilityUse across different projects and share with teams
Flexible permissionsDifferent tool access levels for different subagent types
ScalabilityMultiple agents work on different aspects simultaneously
Текущая дата: вторник, 4 августа 2026 г.
<query>

Расположения файлов

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

</query> | Priority | Type | Location | Scope | |----------|------|----------|-------| | 1 (highest) | **CLI-defined** | Via `--agents` flag (JSON) | Session only | | 2 | **Project subagents** | `.claude/agents/` | Current project | | 3 | **User subagents** | `~/.claude/agents/` | All projects | | 4 (lowest) | **Plugin agents** | Plugin `agents/` directory | Via plugins | При совпадении имён приоритет отдаётся источникам с более высоким приоритетом.

Приоритет вложенных .claude/ (v2.1.178): если одно и то же имя агента определено в нескольких вложенных директориях .claude/agents/ (например, в монорепозитории с папками .claude/ на уровне отдельных пакетов), побеждает определение, ближайшее к текущей рабочей директории. То же правило «ближайший побеждает» действует и для вложенных определений workflow и output-style.


Конфигурация

Формат файла

Субагенты задаются через YAML frontmatter, за которым следует системный prompt в Markdown:

yaml
---
name: your-sub-agent-name
description: Description of when this subagent should be invoked
tools: tool1, tool2, tool3  # Optional - inherits all tools if omitted
disallowedTools: tool4  # Optional - explicitly disallowed tools
model: sonnet  # Optional - sonnet, opus, haiku, or inherit
permissionMode: default  # Optional - permission mode
maxTurns: 20  # Optional - limit agentic turns
skills: skill1, skill2  # Optional - skills to preload into context
mcpServers: server1  # Optional - MCP servers to make available
memory: user  # Optional - persistent memory scope (user, project, local)
background: false  # Optional - run as background task
effort: high  # Optional - reasoning effort (low, medium, high, xhigh, max)
isolation: worktree  # Optional - git worktree isolation
initialPrompt: "Start by analyzing the codebase"  # Optional - auto-submitted first turn
hooks:  # Optional - component-scoped hooks
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/security-check.sh"
---

Your subagent's system prompt goes here. This can be multiple paragraphs
and should clearly define the subagent's role, capabilities, and approach
to solving problems.

Поля конфигурации

FieldRequiredDescription
nameYesUnique identifier (lowercase letters and hyphens). Lookup is normalized (case- and separator-insensitive - see below), but a name containing : is rejected as of v2.1.218: : is reserved for plugin namespacing
descriptionYesNatural language description of purpose. Include "use PROACTIVELY" to encourage automatic invocation
toolsNoComma-separated list of specific tools. Omit to inherit all tools. Supports Agent(agent_name) syntax to restrict spawnable subagents
disallowedToolsNoComma-separated list of tools the subagent must not use
modelNoModel to use: sonnet, opus, haiku, full model ID, or inherit. Defaults to configured subagent model
permissionModeNodefault, acceptEdits, dontAsk, bypassPermissions, plan. As of v2.1.212, the Task tool's mode invocation parameter is deprecated and ignored - subagents inherit the parent session's permission mode by default unless overridden here
maxTurnsNoMaximum number of agentic turns the subagent can take
skillsNoComma-separated list of skills to preload. Injects full skill content into the subagent's context at startup. v2.1.133+: subagents also discover project, user, and plugin skills via the Skill tool - same catalog as the main session, no longer limited to their own embedded set.
mcpServersNoMCP servers to make available to the subagent
hooksNoComponent-scoped hooks (PreToolUse, PostToolUse, Stop)
memoryNoPersistent memory directory scope: user, project, or local
backgroundNoSubagents already run in the background by default (v2.1.198). Set to true to force background always and prevent inline execution
effortNoReasoning effort level: low, medium, high, xhigh, or max. Overrides the session effort level; available levels depend on the model
isolationNoSet to worktree to give the subagent its own git worktree
initialPromptNoAuto-submitted first turn when the subagent runs as the main agent
colorNoDisplay color for the subagent in the task list and transcript. Accepts red, blue, green, yellow, purple, orange, pink, or cyan

Учёт frontmatter для агента основного потока (v2.1.117+/v2.1.119+)

Когда агент запускается в качестве агента основного потока (через claude --agent <name> или в режиме --print), учитываются следующие поля frontmatter:

FieldVersionNotes
mcpServersv2.1.117+Loaded when agent is invoked as main-thread agent via claude --agent <name>
permissionModev2.1.119+Honored for built-in agents via --agent <name>
tools / disallowedToolsv2.1.119+Honored in --print mode (non-interactive/scripted usage)
Пример - агент с mcpServers и permissionMode:
yaml
---
name: secure-researcher
description: Research agent with scoped MCP access and restricted permissions
permissionMode: acceptEdits
mcpServers:
  notion:
    type: http
    url: https://mcp.notion.com/mcp
  github:
    type: http
    url: https://api.github.com/mcp
tools: Read, Grep, Glob
---

You are a research agent. You may query Notion and GitHub through the
configured MCP servers, and read local files, but you cannot write or
execute commands outside of accepted edits.

Запуск:

bash
claude --agent secure-researcher

Параметры конфигурации инструментов

Вариант 1: наследовать все инструменты (не указывать поле)

yaml
---
name: full-access-agent
description: Agent with all available tools
---

Вариант 2: указание отдельных инструментов

yaml
---
name: limited-agent
description: Agent with specific tools only
tools: Read, Grep, Glob, Bash
---

Примечание про Glob/Grep (v2.1.113+): В нативных сборках для macOS/Linux Glob и Grep реализованы через bfs/ugrep в рамках инструмента Bash, а не как отдельные инструменты. В сборках для Windows и npm-JS они по-прежнему доступны как самостоятельные инструменты. Авторы могут указывать Glob/Grep в allowedTools - подстановка на стороне backend происходит прозрачно.

Вариант 3: условный доступ к инструментам

yaml
---
name: conditional-agent
description: Agent with filtered tool access
tools: Read, Bash(npm:*), Bash(test:*)
---

Настройка через CLI

Определите субагентов для отдельной сессии с помощью флага --agents, передав их в формате JSON:

bash
claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  }
}'

Формат JSON для флага --agents:

json
{
  "agent-name": {
    "description": "Required: when to invoke this agent",
    "prompt": "Required: system prompt for the agent",
    "tools": ["Optional", "array", "of", "tools"],
    "model": "optional: sonnet|opus|haiku"
  }
}

Приоритет определений агентов:

Определения агентов загружаются в следующем порядке приоритета (побеждает первое совпадение):

  1. Заданные через CLI - флаг --agents (только текущая сессия, JSON)
  2. Уровень проекта - .claude/agents/ (текущий проект)
  3. Уровень пользователя - ~/.claude/agents/ (все проекты)
  4. Уровень плагина - директория agents/ внутри плагина

Это позволяет определениям, заданным через CLI, переопределять все остальные источники в рамках одной сессии.


Встроенные субагенты

В состав Claude Code входит несколько встроенных субагентов, доступных всегда:

AgentModelPurpose
general-purposeInheritsComplex, multi-step tasks
PlanInheritsResearch for plan mode
ExploreInherits (capped at Opus)Read-only codebase exploration (quick/medium/very thorough)
BashInheritsTerminal commands in separate context
statusline-setupSonnetConfigure status line
Claude Code GuideHaikuAnswer Claude Code feature questions

Универсальный субагент

PropertyValue
ModelInherits from parent
ToolsAll tools
PurposeComplex research tasks, multi-step operations, code modifications
Когда использовать: задачи, требующие одновременно исследования и внесения изменений со сложными рассуждениями.

Subagent для планирования

PropertyValue
ModelInherits from parent
ToolsRead, Glob, Grep, Bash
PurposeUsed automatically in plan mode to research codebase
Когда используется: когда Claude необходимо разобраться в кодовой базе перед тем, как представить план.

Субагент Explore

PropertyValue
ModelInherits the session model, capped at Opus (v2.1.198). Set model: haiku to keep it fast and cheap
ModeStrictly read-only
ToolsGlob, Grep, Read, Bash (read-only commands only)
PurposeFast codebase searching and analysis
Когда использовать: при поиске или изучении кода без внесения изменений.

Уровни тщательности - укажите глубину исследования:

  • "quick" - быстрый поиск с минимальным анализом, подходит для нахождения конкретных паттернов
  • "medium" - умеренный анализ, баланс между скоростью и тщательностью, режим по умолчанию
  • "very thorough" - всесторонний анализ по множеству мест и вариантов именования, может занять больше времени

Bash-субагент

PropertyValue
ModelInherits from parent
ToolsBash
PurposeExecute terminal commands in a separate context window
Когда используется: при выполнении shell-команд, которым нужен изолированный контекст.

Субагент настройки statusline

PropertyValue
ModelSonnet
ToolsRead, Write, Bash
PurposeConfigure the Claude Code status line display
Когда используется: при настройке или кастомизации строки состояния.

Субагент-гид по Claude Code

PropertyValue
ModelHaiku (fast, low-latency)
ToolsRead-only
PurposeAnswer questions about Claude Code features and usage
Когда использовать: когда пользователи задают вопросы о том, как работает Claude Code или как пользоваться конкретными возможностями.

Управление субагентами

Спросить у Claude (рекомендуемый способ)

Проще всего создать субагента или управлять им, напрямую обратившись к Claude:

text
Create a subagent that reviews code for security vulnerabilities.

Claude сам создаёт файл .claude/agents/<name>.md, подбирая подходящий frontmatter (tools, model, description). После этого вы можете доработать файл вручную или попросить Claude внести правки.

Примечание: Команда /agents больше не открывает интерактивный мастер создания (удалён в v2.1.198). Теперь она предлагает обратиться к Claude или редактировать файлы в .claude/agents/ напрямую.

Прямое управление файлами

bash
# Create a project subagent
mkdir -p .claude/agents
cat > .claude/agents/test-runner.md << 'EOF'
---
name: test-runner
description: Use proactively to run tests and fix failures
---

You are a test automation expert. When you see code changes, proactively
run the appropriate tests. If tests fail, analyze the failures and fix
them while preserving the original test intent.
EOF

# Create a user subagent (available in all projects)
mkdir -p ~/.claude/agents

Текущая дата: вторник, 4 августа 2026 года

<query>

Использование субагентов

Автоматическое делегирование

Claude проактивно делегирует задачи на основе:

  • Описания задачи в вашем запросе
  • Поля description в конфигурациях субагентов
  • Текущего контекста и доступных инструментов

Чтобы стимулировать проактивное использование, включите "use PROACTIVELY" или "MUST BE USED" в ваше поле description:

</query> ```yaml --- name: code-reviewer description: Expert code review specialist. Use PROACTIVELY after writing or modifying code. --- ``` ### Явный вызов

Вы можете явно вызвать конкретный субагент:

CODE
> Use the test-runner subagent to fix failing tests
> Have the code-reviewer subagent look at my recent changes
> Ask the debugger subagent to investigate this error

Сопоставление subagent_type без учёта регистра и стиля разделителей (v2.1.140): subagent_type (в вызовах инструмента Agent и во флагах --agent) сопоставляется без учёта регистра и игнорирует стиль разделителей - code-reviewer, Code Reviewer и code_reviewer разрешаются в одного и того же агента. Это устраняет давнюю ловушку, когда мелкие расхождения в регистре молча приводили к откату на агента по умолчанию.

Вызов через @-упоминание

Используйте префикс @, чтобы гарантированно вызвать конкретный субагент (в обход автоматических эвристик делегирования):

CODE
> @"code-reviewer (agent)" review the auth module

Агент на всю сессию

Запуск всей сессии с указанным агентом в роли основного:

bash
# Via CLI flag
claude --agent code-reviewer

# Via settings.json
{
  "agent": "code-reviewer"
}

Просмотр доступных агентов

Используйте команду claude agents, чтобы вывести список всех настроенных агентов из всех источников:

bash
claude agents

Текущая дата: вторник, 4 августа 2026 г.

<query>

Возобновляемые агенты

Субагенты могут продолжать предыдущие разговоры с полным сохранением контекста:

</query> ```bash # Initial invocation > Use the code-analyzer agent to start reviewing the authentication module # Returns agentId: "abc123"

Resume the agent later

Resume agent abc123 and now analyze the authorization logic as well

CODE
**Сценарии использования**:
- Продолжительные исследования, растянутые на несколько сессий
- Итеративная доработка без потери контекста
- Многошаговые workflow с сохранением контекста

---

## Цепочки субагентов

Запуск нескольких субагентов последовательно:
```bash
> First use the code-analyzer subagent to find performance issues,
  then use the optimizer subagent to fix them

Это позволяет строить сложные workflow, в которых вывод одного субагента передаётся на вход другому.


Постоянная память для субагентов

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

Области видимости памяти

ScopeDirectoryUse Case
user~/.claude/agent-memory/<name>/Personal notes and preferences across all projects
project.claude/agent-memory/<name>/Project-specific knowledge shared with the team
local.claude/agent-memory-local/<name>/Local project knowledge not committed to version control

Как это работает

  • Первые 200 строк файла MEMORY.md из директории памяти автоматически загружаются в системный prompt субагента
  • Инструменты Read, Write и Edit автоматически подключаются к субагенту для управления его файлами памяти
  • При необходимости субагент может создавать в своей директории памяти дополнительные файлы

Пример конфигурации

yaml
---
name: researcher
memory: user
---

You are a research assistant. Use your memory directory to store findings,
track progress across sessions, and build up knowledge over time.

Check your MEMORY.md file at the start of each session to recall previous context.
graph LR A["Subagent<br/>Session 1"] -->|writes| M["MEMORY.md<br/>(persistent)"] M -->|loads into| B["Subagent<br/>Session 2"] B -->|updates| M M -->|loads into| C["Subagent<br/>Session 3"] style A fill:#e1f5fe,stroke:#333,color:#333 style B fill:#e1f5fe,stroke:#333,color:#333 style C fill:#e1f5fe,stroke:#333,color:#333 style M fill:#f3e5f5,stroke:#333,color:#333

Текущая дата: вторник, 4 августа 2026

<query>

Фоновые субагенты

Субагенты по умолчанию запускаются в фоне (v2.1.198). Claude продолжает работать над основным диалогом, пока субагент выполняется, и получает уведомление, когда он завершает работу, поэтому вам больше не нужно ждать ответа субагента, чтобы продолжить.

Конфигурация

Поскольку фоновой режим уже используется по умолчанию, background: true во frontmatter заставляет субагента всегда запускаться в фоне и не позволяет ему запускаться inline:

</query> ```yaml --- name: long-runner background: true description: Performs long-running analysis tasks in the background --- ``` ### Сочетания клавиш | Shortcut | Action | |----------|--------| | `Ctrl+B` | Background a currently running subagent task | | `Ctrl+F` | Kill all background agents (press twice to confirm) | ### Отключение фоновых задач

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

bash
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1

Текущая дата: вторник, 4 августа 2026 г.

<query>

Изоляция worktree

Настройка isolation: worktree дает субагенту собственный git worktree, позволяя ему вносить изменения независимо, не затрагивая основное рабочее дерево.

Конфигурация

</query> ```yaml --- name: feature-builder isolation: worktree description: Implements features in an isolated git worktree tools: Read, Write, Edit, Bash, Grep, Glob --- ``` ### Как это работает ```mermaid graph TB Main["Main Working Tree"] -->|spawns| Sub["Subagent with<br/>Isolated Worktree"] Sub -->|makes changes in| WT["Separate Git<br/>Worktree + Branch"] WT -->|no changes| Clean["Auto-cleaned"] WT -->|has changes| Return["Returns worktree<br/>path and branch"]
CODE
style Main fill:#e1f5fe,stroke:#333,color:#333
style Sub fill:#f3e5f5,stroke:#333,color:#333
style WT fill:#e8f5e9,stroke:#333,color:#333
style Clean fill:#fff3e0,stroke:#333,color:#333
style Return fill:#fff3e0,stroke:#333,color:#333
CODE
- Субагент работает в собственном git worktree на отдельной ветке
- Если субагент не вносит изменений, worktree автоматически удаляется
- Если изменения есть, путь к worktree и имя ветки возвращаются основному агенту для ревью или слияния

---

## Форкнутые субагенты

Форкнутые субагенты (`context: fork`) наследуют полный контекст диалога родительского агента на момент форка, а не начинают с чистого листа. Это удобно для проработки альтернативных вариантов без потери уже проделанной работы.

> **Доступность**: GA начиная с v2.1.117. Во внешних сборках (не от первой стороны) для включения форков задайте `CLAUDE_CODE_FORK_SUBAGENT=1`.

### Конфигурация
```yaml
---
name: alternative-explorer
description: Explore an alternative implementation path while preserving parent context
context: fork
tools: Read, Edit, Bash, Grep, Glob
---

You are a forked subagent. You inherit the parent's full conversation and
may explore an alternative approach. Return your findings and the parent
will decide whether to adopt them.

Включение для внешних сборок

bash
export CLAUDE_CODE_FORK_SUBAGENT=1
claude

Когда использовать Fork, а когда - Clean Context

Scenariocontext: forkClean context (default)
Explore alternative implementationsYesNo (would lose context)
Long research with existing contextYesNo
Independent specialized taskNoYes
Avoiding context pollutionNoYes
Текущая дата: вторник, 4 августа 2026
<query>

Ограничение порождаемых субагентов

Вы можете контролировать, каких субагентов данный субагент может порождать, используя синтаксис Agent(agent_type) в поле tools. Это позволяет задать разрешающий список конкретных субагентов для делегирования.

> Примечание: В v2.1.63 инструмент Task был переименован в Agent. Существующие ссылки Task(...) по-прежнему работают как алиасы.

Пример

</query> ```yaml --- name: coordinator description: Coordinates work between specialized agents tools: Agent(worker, researcher), Read, Bash ---

You are a coordinator agent. You can delegate work to the "worker" and "researcher" subagents only. Use Read and Bash for your own exploration.

CODE
В этом примере субагент `coordinator` может запускать только субагентов `worker` и `researcher`. Он не может запускать никаких других субагентов, даже если они определены в другом месте.

---

## CLI-команда `claude agents`

Команда `claude agents` выводит список всех настроенных агентов, сгруппированных по источнику (встроенные, на уровне пользователя, на уровне проекта):
```bash
claude agents

Эта команда:

  • Показывает все доступные агенты из всех источников
  • Группирует агенты по их исходному расположению
  • Отмечает переопределения (overrides), когда агент с более высоким приоритетом перекрывает агент с более низким (например, агент уровня проекта с тем же именем, что и агент уровня пользователя)

Agent Teams (экспериментальная функция)

Agent Teams координируют работу нескольких экземпляров Claude Code, совместно решающих сложные задачи. В отличие от subagents (которым делегируются подзадачи с возвратом результата), teammates работают независимо, каждый со своим собственным контекстным окном, и могут напрямую обмениваться сообщениями через общую систему почтовых ящиков (mailbox).

Официальная документация: code.claude.com/docs/en/agent-teams

Примечание: Agent Teams - экспериментальная возможность, по умолчанию отключена. Требуется Claude Code v2.1.32+. Перед использованием её необходимо включить.

Subagents vs Agent Teams

AspectSubagentsAgent Teams
Delegation modelParent delegates subtask, waits for resultTeam lead coordinates work, teammates execute independently
ContextFresh context per subtask, results distilled backEach teammate maintains its own persistent context window
CoordinationSequential or parallel, managed by parentShared task list with automatic dependency management
CommunicationResults returned to parent only (no inter-agent messaging)Teammates can message each other directly via mailbox
Session resumptionSupportedNot supported with in-process teammates
Best forFocused, well-defined subtasksComplex work requiring inter-agent communication and parallel execution

Включение команд агентов

Задайте переменную окружения или добавьте её в settings.json:

bash
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

Или в settings.json:

json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

Запуск команды

После включения попросите Claude в своём промпте задействовать напарников:

CODE
User: Build the authentication module. Use a team - one teammate for the API endpoints,
      one for the database schema, and one for the test suite.

Claude создаст команду, распределит задачи и автоматически скоординирует работу.

Режимы отображения

Настройте способ отображения активности участников команды:

ModeFlagDescription
Auto--teammate-mode autoAutomatically chooses the best display mode for your terminal
In-process (default)--teammate-mode in-processShows teammate output inline in the current terminal
Split-panes--teammate-mode tmuxOpens each teammate in a separate tmux or iTerm2 pane
iTerm2--teammate-mode iterm2(v2.1.186+) Spawns teammates in dedicated iTerm2 panes. Requires the it2 CLI; auto mode warns when it can't be found
bash
claude --teammate-mode tmux

Режим отображения также можно задать в settings.json:

json
{
  "teammateMode": "tmux"
}

Примечание: Режим split-pane требует tmux или iTerm2. Он недоступен в терминале VS Code, Windows Terminal и Ghostty.

Навигация

Для переключения между участниками команды в режиме split-pane используйте Shift+Down.

Настройка команды

Конфигурации команд хранятся в ~/.claude/teams/{team-name}/config.json.

Архитектура

graph TB Lead["Team Lead<br/>(Coordinator)"] TaskList["Shared Task List<br/>(Dependencies)"] Mailbox["Mailbox<br/>(Messages)"] T1["Teammate 1<br/>(Own Context)"] T2["Teammate 2<br/>(Own Context)"] T3["Teammate 3<br/>(Own Context)"] Lead -->|assigns tasks| TaskList Lead -->|sends messages| Mailbox TaskList -->|picks up work| T1 TaskList -->|picks up work| T2 TaskList -->|picks up work| T3 T1 -->|reads/writes| Mailbox T2 -->|reads/writes| Mailbox T3 -->|reads/writes| Mailbox T1 -->|updates status| TaskList T2 -->|updates status| TaskList T3 -->|updates status| TaskList style Lead fill:#e1f5fe,stroke:#333,color:#333 style TaskList fill:#fff9c4,stroke:#333,color:#333 style Mailbox fill:#f3e5f5,stroke:#333,color:#333 style T1 fill:#e8f5e9,stroke:#333,color:#333 style T2 fill:#e8f5e9,stroke:#333,color:#333 style T3 fill:#e8f5e9,stroke:#333,color:#333

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

  • Team Lead: основная сессия Claude Code, которая формирует команду, распределяет задачи и координирует работу
  • Общий список задач: синхронизированный список задач с автоматическим отслеживанием зависимостей
  • Mailbox: система обмена сообщениями между агентами, через которую участники команды сообщают о статусе и координируют действия
  • Участники команды (teammates): независимые экземпляры Claude Code, каждый со своим окном контекста

Назначение задач и обмен сообщениями

Team Lead разбивает работу на задачи и распределяет их между участниками команды. Общий список задач обеспечивает:

  • Автоматическое управление зависимостями - задачи ждут, пока завершатся их зависимости
  • Отслеживание статуса - участники команды обновляют статус задач по ходу работы
  • Обмен сообщениями между агентами - участники команды отправляют сообщения через mailbox для координации (например, «Схема БД готова, можно приступать к написанию запросов»)

Согласование плана

Для сложных задач Team Lead составляет план выполнения ещё до того, как участники команды приступят к работе. Пользователь просматривает и утверждает план - это гарантирует, что подход команды соответствует ожиданиям до внесения каких-либо изменений в код.

Hook-события для команд

Agent Teams добавляют два дополнительных hook-события:

EventFires WhenUse Case
TeammateIdleA teammate finishes its current task and has no pending workTrigger notifications, assign follow-up tasks
TaskCompletedA task in the shared task list is marked completeRun validation, update dashboards, chain dependent work

Лучшие практики

  • Размер команды: держите в команде 3-5 участников для оптимальной координации
  • Размер задач: разбивайте работу на задачи по 5-15 минут - достаточно мелкие для распараллеливания и достаточно крупные, чтобы иметь смысл
  • Избегайте конфликтов файлов: назначайте разным участникам разные файлы или директории, чтобы избежать merge-конфликтов
  • Начинайте с простого: для первой команды используйте in-process mode; переходите на split-panes, когда освоитесь
  • Чёткие описания задач: давайте конкретные, готовые к исполнению описания задач, чтобы участники могли работать независимо

Ограничения

  • Экспериментальная функция: поведение может измениться в будущих релизах
  • Нет возобновления сессии: in-process-участников нельзя возобновить после завершения сессии
  • Одна команда на сессию: нельзя создавать вложенные команды или несколько команд в одной сессии
  • Фиксированное лидерство: роль team lead нельзя передать другому участнику
  • Ограничения split-pane: требуется tmux/iTerm2; недоступно в терминале VS Code, Windows Terminal и Ghostty
  • Нет межсессионных команд: участники существуют только в рамках текущей сессии

Внимание: Agent Teams - экспериментальная функция. Сначала опробуйте её на некритичных задачах и следите за координацией участников на предмет неожиданного поведения.


Безопасность subagent'ов из плагинов

У subagent'ов, поставляемых плагинами, по соображениям безопасности ограничены возможности frontmatter. Следующие поля запрещены в определениях subagent'ов из плагинов:

  • hooks - нельзя определять lifecycle hooks
  • mcpServers - нельзя настраивать MCP-серверы
  • permissionMode - нельзя переопределять настройки разрешений

Это не позволяет плагинам повышать привилегии или выполнять произвольные команды через subagent hooks.

Сканирование вывода subagent'ов (v2.1.210+)

Начиная с v2.1.210, Claude Code сканирует итоговый отчёт каждого subagent'а на наличие текста, имитирующего собственный формат вывода harness'а, - поддельных тегов в стиле <system-reminder>, сфабрикованных реплик Human:/Assistant: или упоминаний флагов обхода разрешений и путей к файлам настроек. Это защищает от prompt injection, доставленной через вывод subagent'а, - например, когда subagent загрузил вредоносную веб-страницу с поддельными управляющими токенами, рассчитанными на манипуляцию родительской сессией.

Когда сканер что-то помечает, Claude Code нейтрализует находку - вставляет обратный слэш или inline-маркер вида [harness: subagent output matched instruction-shaped pattern(s): ...] с указанием того, что вызвало срабатывание, - и родительская сессия должна воспринимать помеченный текст как факт для передачи дальше, а не как инструкцию к исполнению. Сканирование включено по умолчанию, задокументированного способа отключить его нет. Оно склонно перестраховываться: легитимный отчёт subagent'а, дословно цитирующий реальное имя флага (например, --dangerously-skip-permissions), может вызвать маркер, даже если ничего вредоносного не произошло, - ложное срабатывание предпочтительнее пропущенной инъекции.

Общесессионный лимит subagent'ов (v2.1.212+)

Claude Code по умолчанию ограничивает создание subagent'ов до 200 за сессию, чтобы пресекать неуправляемые циклы делегирования. Значение переопределяется переменной CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION; бюджет сбрасывается при вызове /clear.

bash
export CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION=200

Ещё две переменные окружения ограничивают ветвление субагентов:

  • CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS (v2.1.217) - максимальное число субагентов, выполняющихся одновременно. По умолчанию: 20.
  • CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH (v2.1.217) - максимальная глубина вложенности при запуске субагентами собственных субагентов. По умолчанию: 3, начиная с v2.1.219 (в v2.1.217-v2.1.218 было 1). Задайте значение 1, чтобы отключить вложенность (см. Ключевые особенности поведения).
bash
export CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS=20
export CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=5

Текущая дата: вторник, 4 августа 2026 г.

<query>

Архитектура

Высокоуровневая архитектура

</query> ```mermaid graph TB User["User"] Main["Main Agent<br/>(Coordinator)"] Reviewer["Code Reviewer<br/>Subagent"] Tester["Test Engineer<br/>Subagent"] Docs["Documentation<br/>Subagent"]
CODE
User -->|asks| Main
Main -->|delegates| Reviewer
Main -->|delegates| Tester
Main -->|delegates| Docs
Reviewer -->|returns result| Main
Tester -->|returns result| Main
Docs -->|returns result| Main
Main -->|synthesizes| User
CODE
### Жизненный цикл субагента
```mermaid
sequenceDiagram
    participant User
    participant MainAgent as Main Agent
    participant CodeReviewer as Code Reviewer<br/>Subagent
    participant Context as Separate<br/>Context Window

    User->>MainAgent: "Build new auth feature"
    MainAgent->>MainAgent: Analyze task
    MainAgent->>CodeReviewer: "Review this code"
    CodeReviewer->>Context: Initialize clean context
    Context->>CodeReviewer: Load reviewer instructions
    CodeReviewer->>CodeReviewer: Perform review
    CodeReviewer-->>MainAgent: Return findings
    MainAgent->>MainAgent: Incorporate results
    MainAgent-->>User: Provide synthesis

Текущая дата: вторник, 4 августа 2026 г.

<query>

Управление контекстом

</query> ```mermaid graph TB A["Main Agent Context<br/>50,000 tokens"] B["Subagent 1 Context<br/>20,000 tokens"] C["Subagent 2 Context<br/>20,000 tokens"] D["Subagent 3 Context<br/>20,000 tokens"]
CODE
A -->|Clean slate| B
A -->|Clean slate| C
A -->|Clean slate| D

B -->|Results only| A
C -->|Results only| A
D -->|Results only| A

style A fill:#e1f5fe
style B fill:#fff9c4
style C fill:#fff9c4
style D fill:#fff9c4
CODE
### Ключевые моменты

- Каждый субагент получает **свежее окно контекста** без истории основного диалога
- Субагенту передаётся только **релевантный контекст** для его конкретной задачи
- Результаты **в сжатом виде** возвращаются основному агенту
- Это предотвращает **исчерпание токенов контекста** в длительных проектах

### Аспекты производительности

- **Экономия контекста** - субагенты сохраняют основной контекст, позволяя вести более длительные сессии
- **Задержка** - субагенты стартуют с чистого листа, поэтому сбор начального контекста может добавлять задержку

### Ключевые особенности поведения

- **Вложенный запуск включён по умолчанию, глубина 3 (v2.1.219)** - субагенты могут запускать собственных субагентов на глубину до трёх уровней ниже основного диалога. Задайте `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`, чтобы изменить лимит, или `1`, чтобы отключить вложенность. На предельной глубине Claude Code скрывает инструмент `Agent` от всех субагентов, кроме форков. (История: в v2.1.172-v2.1.216 вложенность по умолчанию доходила до 5 уровней без возможности её изменить; в v2.1.217 вложенность стала опциональной с глубиной 1; в v2.1.219 значение по умолчанию установлено равным 3.) Используйте синтаксис ограничения `Agent(agent_type)` (см. [Ограничение запускаемых субагентов](#restrict-spawnable-subagents)), чтобы контролировать, каких субагентов может запускать данный субагент
- **Разрешения в фоне** - фоновые субагенты автоматически отклоняют любые разрешения, не одобренные заранее
- **Перевод в фон** - нажмите `Ctrl+B`, чтобы перевести выполняющуюся задачу в фоновый режим
- **Транскрипты** - транскрипты субагентов сохраняются по пути `~/.claude/projects/{project}/{sessionId}/subagents/agent-{agentId}.jsonl`
- **Автосжатие** - контекст субагента автоматически сжимается при заполнении примерно на 95% (переопределяется переменной окружения `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`)
- **Наследование extended thinking (v2.1.198)** - субагенты и сжатие контекста теперь наследуют настройку extended thinking из сессии (ранее она всегда была отключена). Отдельного поля thinking для субагента нет

### Дополнительные параметры

- **Отключение встроенных агентов Explore/Plan** - задайте `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`, чтобы убрать встроенных агентов Explore и Plan (v2.1.198)
- **Добавление текста к каждому промпту субагента** - в неинтерактивном режиме (`--print`) флаг `--append-subagent-system-prompt "<text>"` добавляет текст к системному промпту каждого субагента (v2.1.205)

---

## Когда использовать субагентов
| Scenario | Use Subagent | Why |
|----------|--------------|-----|
| Complex feature with many steps | Yes | Separate concerns, prevent context pollution |
| Quick code review | No | Unnecessary overhead |
| Parallel task execution | Yes | Each subagent has own context |
| Specialized expertise needed | Yes | Custom system prompts |
| Long-running analysis | Yes | Prevents main context exhaustion |
| Single task | No | Adds latency unnecessarily |
Текущая дата: вторник, 4 августа 2026 г.

<query>

---

## Лучшие практики

### Принципы дизайна

**Делайте:**
- Начинайте с агентов, сгенерированных Claude, - сгенерируйте начального субагента с Claude, затем итеративно доработайте его
- Проектируйте сфокусированных субагентов - с одной четкой ответственностью, а не одного, который делает всё
- Пишите подробные промпты - включайте конкретные инструкции, примеры и ограничения
- Ограничивайте доступ к инструментам - предоставляйте только инструменты, необходимые для цели субагента
- Используйте контроль версий - добавляйте проектных субагентов в систему контроля версий для командной работы

**Не делайте:**
- Не создавайте пересекающихся субагентов с одинаковыми ролями
- Не давайте субагентам ненужный доступ к инструментам
- Не используйте субагентов для простых одношаговых задач
- Не смешивайте разные зоны ответственности в одном промпте субагента
- Не забывайте передавать необходимый контекст

### Лучшие практики для системного промпта

1. **Конкретно определяйте роль**

You are an expert code reviewer specializing in [specific areas]

CODE

2. **Четко определяйте приоритеты**

Review priorities (in order):

  1. Security Issues
  2. Performance Problems
  3. Code Quality
CODE

3. **Указывайте формат вывода**

For each issue provide: Severity, Category, Location, Description, Fix, Impact

CODE

4. **Включайте шаги действий**

When invoked:

  1. Run git diff to see recent changes
  2. Focus on modified files
  3. Begin review immediately
CODE

### Стратегия доступа к инструментам

1. **Начинайте с ограничений**: начинайте только с необходимых инструментов
2. **Расширяйте только при необходимости**: добавляйте инструменты по мере появления требований
3. **Read-only, когда возможно**: используйте Read/Grep для агентов анализа
4. **Изолированное выполнение**: ограничивайте команды Bash конкретными паттернами

---

## Примеры субагентов в этой папке

Эта папка содержит готовые к использованию примеры субагентов:

### 1. Ревьюер кода (`code-reviewer.md`)

**Назначение**: комплексный анализ качества и поддерживаемости кода

**Инструменты**: Read, Grep, Glob, Bash

**Специализация**:
- Обнаружение уязвимостей безопасности
- Выявление возможностей оптимизации производительности
- Оценка поддерживаемости кода
- Анализ покрытия тестами

**Используйте, когда**: вам нужны автоматизированные code reviews с фокусом на качество и безопасность

---

### 2. Инженер по тестированию (`test-engineer.md`)

**Назначение**: стратегия тестирования, анализ покрытия и автоматизированное тестирование

**Инструменты**: Read, Write, Bash, Grep

**Специализация**:
- Создание unit tests
- Проектирование integration tests
- Выявление edge cases
- Анализ покрытия (цель &gt;80%)

**Используйте, когда**: вам нужно создать комплексный набор тестов или провести анализ покрытия

---

### 3. Автор документации (`documentation-writer.md`)

**Назначение**: техническая документация, API-документация и пользовательские руководства

**Инструменты**: Read, Write, Grep

**Специализация**:
- Документация API endpoints
- Создание пользовательских руководств
- Архитектурная документация
- Улучшение комментариев в коде

**Используйте, когда**: вам нужно создать или обновить документацию проекта

---

### 4. Ревьюер безопасности (`secure-reviewer.md`)

**Назначение**: code review с фокусом на безопасность и минимальными правами

**Инструменты**: Read, Grep

**Специализация**:
- Обнаружение уязвимостей безопасности
- Проблемы аутентификации/авторизации
- Риски раскрытия данных
- Выявление injection-атак

**Используйте, когда**: вам нужны аудиты безопасности без возможности внесения изменений

---

### 5. Агент реализации (`implementation-agent.md`)

**Назначение**: полные возможности реализации для разработки функций

**Инструменты**: Read, Write, Edit, Bash, Grep, Glob

**Специализация**:
- Реализация функций
- Генерация кода
- Выполнение сборки и тестов
- Изменение кодовой базы

**Используйте, когда**: вам нужен субагент для end-to-end реализации функций

---

### 6. Отладчик (`debugger.md`)

**Назначение**: специалист по отладке ошибок, падений тестов и неожиданного поведения

**Инструменты**: Read, Edit, Bash, Grep, Glob

**Специализация**:
- Анализ первопричин
- Исследование ошибок
- Устранение падений тестов
- Реализация минимального исправления

**Используйте, когда**: вы сталкиваетесь с багами, ошибками или неожиданным поведением

---

### 7. Data Scientist (`data-scientist.md`)

**Назначение**: эксперт по анализу данных для SQL queries и data insights

**Инструменты**: Bash, Read, Write

**Специализация**:
- Оптимизация SQL queries
- Операции BigQuery
- Анализ и визуализация данных
- Статистические insights

**Используйте, когда**: вам нужен анализ данных, SQL queries или операции BigQuery

---

### 8. Ревьюер чистого кода (`clean-code-reviewer.md`)

**Назначение**: ревью читаемости и поддерживаемости в соответствии с принципами clean-code

**Инструменты**: Read, Grep, Glob, Bash

**Специализация**:
- Именование, длина функций и количество аргументов
- Дублирование и мертвый код
- Качество комментариев и намерение
- Структурная ясность вместо излишней хитрости

**Используйте, когда**: вам нужен проход по стилю и поддерживаемости отдельно от ревью корректности

---

### 9. Оптимизатор производительности (`performance-optimizer.md`)

**Назначение**: выявление и устранение узких мест производительности

**Инструменты**: Read, Edit, Bash, Grep, Glob

**Специализация**:
- Алгоритмическая сложность и hot paths
- Выделение памяти и утечки
- Кэширование и оптимизация queries
- Узкие места concurrency и I/O

**Используйте, когда**: код измеримо медленный и вам нужна целевая оптимизация

---

## Инструкции по установке

### Метод 1: попросить Claude (рекомендуется)

Опишите субагента, который вам нужен, и позвольте Claude создать файл:

</query>
```text
Create a project-level subagent that runs tests and fixes failures.
Give it access to Bash, Read, Edit, and Grep.

Claude создаёт файл .claude/agents/<name>.md с соответствующим frontmatter. Проверьте сгенерированный файл, затем используйте его. (Интерактивный мастер создания /agents был удалён в v2.1.198 - вместо него обратитесь к Claude или отредактируйте файл вручную.)

Способ 2: копирование в проект

Скопируйте файлы агентов в директорию .claude/agents/ вашего проекта:

bash
# Navigate to your project
cd /path/to/your/project

# Create agents directory if it doesn't exist
mkdir -p .claude/agents

# Copy all agent files from this folder
cp /path/to/04-subagents/*.md .claude/agents/

# Remove the README (not needed in .claude/agents)
rm .claude/agents/README.md

Способ 3: копирование в пользовательский каталог

Чтобы агенты были доступны во всех ваших проектах:

bash
# Create user agents directory
mkdir -p ~/.claude/agents

# Copy agents
cp /path/to/04-subagents/code-reviewer.md ~/.claude/agents/
cp /path/to/04-subagents/debugger.md ~/.claude/agents/
# ... copy others as needed

Проверка

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

bash
ls .claude/agents/

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


Структура файлов

CODE
project/
├── .claude/
│   └── agents/
│       ├── code-reviewer.md
│       ├── test-engineer.md
│       ├── documentation-writer.md
│       ├── secure-reviewer.md
│       ├── implementation-agent.md
│       ├── debugger.md
│       ├── data-scientist.md
│       ├── clean-code-reviewer.md
│       └── performance-optimizer.md
└── ...

Current date: Tuesday, August 4, 2026

<query>

Связанные концепции

Связанные функции

  • Slash-команды - Быстрые сокращения, вызываемые пользователем
  • Память - Постоянный межсессионный контекст
  • Skills - Переиспользуемые автономные возможности
  • Протокол MCP - Доступ к внешним данным в реальном времени
  • Hooks - Автоматизация shell-команд на основе событий
  • Плагины - Пакеты расширений в комплекте

Сравнение с другими функциями

</query> | Feature | User-Invoked | Auto-Invoked | Persistent | External Access | Isolated Context | |---------|--------------|--------------|-----------|------------------|------------------| | **Slash Commands** | Yes | No | No | No | No | | **Subagents** | Yes | Yes | No | No | Yes | | **Memory** | Auto | Auto | Yes | No | No | | **MCP** | Auto | Yes | No | Yes | No | | **Skills** | Yes | Yes | No | No | No | ### Паттерн интеграции ```mermaid graph TD User["User Request"] --> Main["Main Agent"] Main -->|Uses| Memory["Memory<br/>(Context)"] Main -->|Queries| MCP["MCP<br/>(Live Data)"] Main -->|Invokes| Skills["Skills<br/>(Auto Tools)"] Main -->|Delegates| Subagents["Subagents<br/>(Specialists)"]
CODE
Subagents -->|Use| Memory
Subagents -->|Query| MCP
Subagents -->|Isolated| Context["Clean Context<br/>Window"]
CODE
Текущая дата: вторник, 4 августа 2026 г.

<query>

---

## Наблюдаемость

&gt; **Добавлено в v2.1.139.**

API-запросы, исходящие от субагента, несут два дополнительных HTTP-заголовка, чтобы трейсы и логи можно было сопоставить с запустившей их сессией:

</query>
| Header | Description |
|--------|-------------|
| `x-claude-code-agent-id` | UUID of the subagent making the request. |
| `x-claude-code-parent-agent-id` | UUID of the agent that dispatched this subagent (the main agent, or a higher-level subagent in a chain). |
Те же идентификаторы доступны в OpenTelemetry-спанах `claude_code.llm_request` как атрибуты `claude.code.agent.id` и `claude.code.agent.parent_id`. Используйте их, чтобы:

- Относить расходы на API к конкретному типу субагента, а не к родительской сессии
- Восстанавливать цепочку вызовов агентов постфактум (`parent_id` образует дерево)
- Настраивать оповещения о вышедших из-под контроля субагентах (например, один `agent.id`, на который приходится >50% расходов сессии)

Полную настройку экспортёра см. в разделе OpenTelemetry в [Расширенные возможности → Телеметрия](../09-advanced-features/README.md).

## Дополнительные ресурсы

- [Официальная документация по субагентам](https://code.claude.com/docs/en/sub-agents)
- [Справочник по CLI](https://code.claude.com/docs/en/cli-reference) - флаг `--agents` и другие опции CLI
- [Руководство по плагинам](../07-plugins/) - для объединения агентов с другими возможностями
- [Руководство по skills](../03-skills/) - для автоматически вызываемых возможностей
- [Руководство по памяти](../02-memory/) - для сохранения контекста между сессиями
- [Руководство по hooks](../06-hooks/) - для автоматизации, управляемой событиями

---

**Последнее обновление**: 29 июля 2026 г.
**Версия Claude Code**: 2.1.220
**Источники**:
- https://code.claude.com/docs/en/sub-agents
- https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
- https://code.claude.com/docs/en/cli-reference
- https://code.claude.com/docs/en/agent-teams
- https://code.claude.com/docs/en/changelog#2-1-172
- https://code.claude.com/docs/en/changelog
- https://github.com/anthropics/claude-code/releases/tag/v2.1.117
- https://github.com/anthropics/claude-code/releases/tag/v2.1.131
- https://github.com/anthropics/claude-code/releases/tag/v2.1.138
- https://github.com/anthropics/claude-code/releases/tag/v2.1.139
- https://github.com/anthropics/claude-code/releases/tag/v2.1.140
- https://code.claude.com/docs/en/model-config
**Совместимые модели**: Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.8, Claude Haiku 4.5
ЛОКАЛЬНАЯ ОТМЕТКА · БЕЗ ПРОВЕРКИ
ПРЕДЫДУЩИЙAgent Skills Guide
СЛЕДУЮЩИЙMCP (Model Context Protocol)