Паттерны агентов
Лучшие практики
Что такое агентные паттерны в Claude Code
Агентный паттерн — это устойчивый способ организовать работу Claude над задачей: как разбить её на шаги, когда запускать вспомогательные агенты (sub-agents) и как передавать между ними информацию. Claude Code умеет запускать отдельные суб-агенты через инструмент Task: каждый такой агент получает собственное окно контекста (context window), работает изолированно и возвращает главному агенту только итог, а не весь свой «черновик». Это ключевая идея — родительский диалог не засоряется промежуточными деталями поиска и чтения файлов, и в нём остаётся место для самого важного.
Английские блоки кода ниже на странице показывают это на практике. Записи вида Task(Explore, «...») — это запуск суб-агента, которому поручают одну узкую цель: найти реализацию авторизации, найти эндпоинты API, найти модели базы данных. Когда такие вызовы перечислены подряд (или собраны в Promise.all), Claude исследует кодовую базу параллельно — три агента читают разные части проекта одновременно, и общий результат собирается быстрее, чем при последовательном переборе файлов. Блок с Phase 1 → Phase 2 → Phase 3 → Phase 4 показывает другой приём: сначала параллельное исследование (research), затем планирование (planning), затем реализация с ревью на каждом шаге и в конце — проверка тестами. Это и есть цепочка агентов, где выход одного этапа становится входом следующего.
Когда это использовать и какие ошибки типичны
Параллельное исследование оправдано, когда задач сбора информации много и они не зависят друг от друга; цепочку выбирают, когда шаги связаны (нельзя писать код, пока нет плана). Специализированные агенты вроде code-reviewer или отладчика полезны тем, что у них узкая инструкция и чистый контекст — они не отвлечены историей основного диалога. Главная ошибка (анти-паттерн) — поручать всё одному агенту: его контекст переполняется, фокус теряется, и качество падает. Вторая частая ошибка — реализация без плана, которая ведёт к переделкам. Практический пример: при рефакторинге системы авторизации сначала тремя параллельными агентами собирают файлы, требования безопасности и существующие тесты, затем по этим данным строят план, реализуют его пошагово с ревью и завершают прогоном тестов. Такой разбор задачи на роли делает работу Claude предсказуемой и воспроизводимой.
Запуск нескольких агентов одновременно для исследования разных аспектов
Когда использовать:
Исследование большой кодовой базы, сбор информации из разных источников
Преимущества:
- ✓ Быстрее чем последовательный поиск
- ✓ Изолированные контексты
- ✓ Не теряется информация
// Claude launches in parallel: Task(Explore, "Find auth implementation") Task(Explore, "Find API endpoints") Task(Explore, "Find database models")
Последовательное выполнение: результат одного агента → вход другого
Когда использовать:
Сложные многоэтапные задачи с зависимостями
Преимущества:
- ✓ Структурированный процесс
- ✓ Каждый агент специализирован
- ✓ Проверка на каждом этапе
// Sequential chain: 1. Plan agent → creates implementation plan 2. Code agent → implements based on plan 3. Reviewer agent → reviews the code 4. Test agent → writes tests
Специализированный агент для проверки качества и безопасности кода
Когда использовать:
После написания кода, перед коммитом, проверка PR
Преимущества:
- ✓ Автоматическая проверка качества
- ✓ Находит проблемы до коммита
- ✓ Консистентные стандарты
// code-reviewer agent checks: - Security vulnerabilities - Best practices violations - Performance issues - Code style consistency
Агент для систематической отладки и поиска причин ошибок
Когда использовать:
Сложные баги, неочевидные причины ошибок
Преимущества:
- ✓ Систематический подход
- ✓ Документирует процесс
- ✓ Находит первопричину
// Debugger pattern: 1. Reproduce the issue 2. Add logging/breakpoints 3. Trace execution flow 4. Identify root cause 5. Propose fix
Агент для анализа данных, метрик, логов
Когда использовать:
Анализ производительности, поиск паттернов в логах
Преимущества:
- ✓ Обрабатывает большие объёмы
- ✓ Находит неочевидные паттерны
- ✓ Структурированные отчёты
// Data analysis pattern: 1. Read logs/metrics files 2. Parse and aggregate data 3. Identify anomalies 4. Generate report with visualizations
Сложные задачи часто требуют комбинации нескольких паттернов:
// Complex task: Refactor authentication system
// Phase 1: Research (parallel)
const [authFiles, securityReqs, tests] = await Promise.all([
Task(Explore, "Find all authentication related files"),
Task(Explore, "Find security requirements in docs"),
Task(Explore, "Find existing auth tests")
]);
// Phase 2: Plan
const plan = await Task(Plan, `
Create refactoring plan based on:
- Files: ${authFiles}
- Requirements: ${securityReqs}
- Tests: ${tests}
`);
// Phase 3: Implement (with review)
for (const step of plan.steps) {
await implementStep(step);
await Task(code-reviewer, "Review the changes");
}
// Phase 4: Verify
await Task(Bash, "Run all auth tests");Когда какой паттерн использовать
- Параллельное исследование — когда нужно быстро собрать информацию
- Цепочка — когда шаги зависят друг от друга
- Ревьюер — после любых значительных изменений кода
- Комбинация — для сложных задач с несколькими этапами
Частые вопросы
Что такое суб-агенты в Claude Code?
Суб-агенты — это отдельные агенты, которые Claude Code запускает через инструмент Task для выполнения узкой подзадачи. Каждый суб-агент работает в собственном окне контекста (context window), изолированно от основного диалога, и возвращает главному агенту только итог своей работы, а не все промежуточные шаги. Благодаря этому контекст родительского диалога не засоряется деталями поиска и чтения файлов.
Чем параллельные агенты отличаются от цепочки агентов?
Параллельные агенты запускаются одновременно (например, через Promise.all) и независимо исследуют разные части задачи — это быстрее, когда подзадачи не зависят друг от друга. Цепочка агентов выполняется последовательно: результат одного этапа становится входом следующего. Цепочку выбирают, когда шаги связаны — например, нельзя писать код, пока не готов план.
Когда стоит использовать специализированных агентов вместо одного?
Специализированных агентов (code-reviewer, отладчик, аналитик данных) стоит использовать, когда задача распадается на разные роли. У такого агента узкая инструкция и чистый контекст, он не отвлечён историей основного диалога, поэтому работает точнее. Поручать всё одному агенту — анти-паттерн: его контекст переполняется, фокус теряется и качество падает.
Как Claude Code исследует большую кодовую базу?
Claude Code запускает несколько Explore-агентов параллельно, каждому давая узкую цель — найти реализацию авторизации, найти эндпоинты API, найти модели базы данных. Агенты читают разные части проекта одновременно, и общий результат собирается быстрее, чем при последовательном переборе файлов. Затем по собранным данным строится план и выполняется реализация.
Этот урок — часть структурированного курса по LLM.
Мой путь обучения