Создание своих агентов
Определи собственных агентов
Что такое суб-агенты (sub-agents) в Claude Code
Суб-агент (sub-agent) — это специализированный помощник, которого вы описываете один раз и затем вызываете для узкой, повторяющейся задачи. В отличие от основного диалога, суб-агент работает в отдельном контекстном окне (context window): он получает только свою инструкцию и результат своей работы, не засоряя основную сессию промежуточными шагами. Это даёт два практических эффекта. Во-первых, главный разговор остаётся коротким и сфокусированным, потому что объёмный поиск по коду или анализ зависимостей происходит «в стороне». Во-вторых, для каждой роли можно подобрать свою модель и свой набор инструментов (tools), а не давать одному агенту полный доступ ко всему.
Технически суб-агент — это обычный Markdown-файл с YAML frontmatter в начале. Именно это описывает блок кода выше: поле model задаёт модель (haiku, sonnet или opus), а поле tools перечисляет разрешённые инструменты — например Read, Grep и Glob. Всё, что идёт после закрывающих ---, — это системный промпт (system prompt) агента: его роль, область внимания и требуемый формат вывода. Если в примере выше указаны только инструменты чтения и поиска, агент физически не сможет изменить ни одного файла — это и есть смысл ограничения инструментов (tool restriction): «аудитор» по определению работает только на чтение.
Когда применять и какие ошибки распространены
Суб-агенты особенно полезны там, где задача чёткая, повторяемая и шумная по объёму контекста: ревью безопасности, генерация тестов, аудит зависимостей, подготовка документации. Область видимости (scope) определяет, где живёт файл агента: .claude/agents/ в проекте делает агента общим для команды, а ~/.claude/agents/ в домашней директории — личным и доступным во всех проектах. Конкретный пример: создайте файл security-auditor.md с моделью haiku и только инструментами Read/Grep/Glob, опишите в теле, что искать (SQL-инъекции, XSS, проблемы аутентификации) и в каком формате отдавать результат — после этого агента можно вызывать снова и снова, не переписывая инструкцию. Главная ошибка новичков — давать суб-агенту слишком широкие права и расплывчатую роль: тогда он ведёт себя как обычный чат, теряет предсказуемость и может изменить лишнее. Держите роль узкой, список инструментов минимальным, а формат вывода — явно описанным.
Агент определяется в Markdown файле с YAML frontmatter:
--- model: haiku tools: - Read - Grep - Glob --- # Security Auditor You are a security-focused code reviewer. Your job is to find potential security vulnerabilities in the codebase. ## Focus Areas - SQL injection - XSS vulnerabilities - Authentication issues - Sensitive data exposure - Input validation ## Output Format For each issue found, provide: 1. File and line number 2. Vulnerability type 3. Risk level (High/Medium/Low) 4. Suggested fix
Структура frontmatter:
model— модель (haiku/sonnet/opus)tools— список доступных инструментов
Тело документа:
- • Инструкции для агента
- • Описание задачи
- • Формат вывода
| Модель | Скорость | Стоимость | Применение |
|---|---|---|---|
haiku | Очень быстрый | Низкая | Простые задачи |
sonnet | Быстрый | Средняя | Большинство задач |
opus | Медленный | Высокая | Сложные задачи |
💡 Используйте haiku для быстрых задач поиска, sonnet для большинства задач, opus для сложного анализа
Укажите только те инструменты, которые нужны агенту:
Файловые
Выполнение
Веб
Интерактивные
⚠️ Агент без Edit и Write не может изменять файлы — это полезно для read-only аудиторов
В памяти текущей сессииАгент существует только во время сессии.claude/agents/Доступен всем в этом проекте~/.claude/agents/Доступен во всех ваших проектахГенерирует документацию к коду
Создаёт unit-тесты
Проверяет зависимости на уязвимости
Планирует миграции БД
Лучшие практики создания агентов
- 1.Давайте агенту чёткую роль и ограниченный набор инструментов
- 2.Используйте haiku для быстрых задач, sonnet для сложных
- 3.Описывайте формат вывода для предсказуемых результатов
- 4.Храните общие агенты в ~/.claude/agents/ для переиспользования
Частые вопросы
Что такое суб-агенты в Claude Code?
Суб-агент (sub-agent) — это специализированный помощник, описанный в Markdown-файле с YAML frontmatter. Он работает в отдельном контекстном окне, получает только свою инструкцию и возвращает результат, не засоряя основную сессию. Для каждой роли можно задать свою модель и ограниченный набор инструментов.
Как создать своего агента в Claude Code?
Создайте Markdown-файл, например security-auditor.md, в .claude/agents/ (для проекта) или ~/.claude/agents/ (для всех проектов). В YAML frontmatter укажите поле model (haiku/sonnet/opus) и список tools. В теле файла после --- опишите роль агента, область внимания и формат вывода — это его системный промпт.
Чем отличаются модели haiku, sonnet и opus для агентов?
haiku — самая быстрая и дешёвая, подходит для простых задач поиска. sonnet — быстрая, средняя по стоимости, годится для большинства задач. opus — медленная и дорогая, но лучшая для сложного анализа, например планирования миграций БД. Выбирайте модель под сложность задачи агента.
Как ограничить инструменты агента в Claude Code?
В поле tools перечислите только нужные инструменты, например Read, Grep, Glob. Если не дать Edit и Write, агент физически не сможет менять файлы — это идеально для read-only аудиторов. Минимальный набор инструментов делает агента предсказуемым и безопасным.
Этот урок — часть структурированного курса по LLM.
Мой путь обучения