Subagents
Subagents — это специализированные AI-ассистенты, которые обрабатывают определенные типы задач внутри Qwen Code. Они позволяют делегировать конкретную работу AI-агентам, настроенным под специфические задачи с помощью промптов, инструментов и поведенческих моделей.
Что такое Subagents?
Subagents — это независимые AI-ассистенты, которые:
- Специализируются на конкретных задачах — Каждый subagent настроен с помощью специализированного system prompt для определенного типа работы
- Имеют отдельный контекст — Они ведут свою историю разговора, независимую от основного чата
- Используют контролируемые инструменты — Вы можете настроить, какие инструменты доступны каждому subagent
- Работают автономно — После получения задачи они выполняют её независимо до завершения или сбоя
- Предоставляют подробную обратную связь — Вы можете отслеживать их прогресс, использование инструментов и статистику выполнения в реальном времени
Основные преимущества
- Специализация задач: Создавайте агентов, оптимизированных под конкретные рабочие процессы (тестирование, документация, рефакторинг и т.д.)
- Изоляция контекста: Разделяйте специализированную работу от вашего основного разговора
- Повторное использование: Сохраняйте и повторно используйте конфигурации агентов в разных проектах и сессиях
- Контролируемый доступ: Ограничивайте набор инструментов для каждого агента в целях безопасности и концентрации
- Видимость прогресса: Отслеживайте выполнение задач агентами в реальном времени
Как работают Subagents
- Конфигурация: Вы создаете конфигурации subagent, определяющие их поведение, инструменты и системные подсказки
- Делегирование: Основной AI может автоматически делегировать задачи подходящим subagent
- Выполнение: Subagents работают независимо, используя свои настроенные инструменты для выполнения задач
- Результаты: Они возвращают результаты и сводку выполнения обратно в основной разговор
Начало работы
Быстрый старт
-
Создайте своего первого субагента:
/agents create
Следуйте пошаговому мастеру для создания специализированного агента.
-
Управление существующими агентами:
/agents manage
Просмотр и управление настроенными субагентами.
-
Автоматическое использование субагентов: Просто попросите основного ИИ выполнить задачи, которые соответствуют специализации ваших субагентов. ИИ автоматически делегирует подходящую работу.
Пример использования
Пользователь: "Пожалуйста, напишите комплексные тесты для модуля аутентификации"
ИИ: Я передам это вашему специалисту по тестированию.
[Делегирует субагенту "testing-expert"]
[Показывает прогресс создания тестов в реальном времени]
[Возвращает готовые файлы тестов и сводку по выполнению]
Управление
Команды CLI
Субагентами можно управлять через слэш-команду /agents
и её подкоманды:
/agents create
Создаёт нового субагента через интерактивный пошаговый мастер.
Использование:
/agents create
/agents manage
Открывает интерактивный диалог управления для просмотра и управления существующими подагентами.
Использование:
/agents manage
Места хранения
Подагенты хранятся в виде Markdown-файлов в двух местах:
- На уровне проекта:
.qwen/agents/
(имеет приоритет) - На уровне пользователя:
~/.qwen/agents/
(резервный вариант)
Это позволяет иметь как агенты, специфичные для проекта, так и личные агенты, которые работают во всех проектах.
Формат файла
Подагенты настраиваются с помощью Markdown-файлов с YAML frontmatter. Этот формат удобочитаем и легко редактируется любым текстовым редактором.
Базовая структура
---
name: agent-name
description: Краткое описание того, когда и как использовать этого агента
tools: tool1, tool2, tool3 # Опционально
---
Содержимое системного prompt здесь.
Поддерживаются несколько абзацев.
Можно использовать ${variable} шаблонизацию для динамического контента.
Пример использования
---
name: project-documenter
description: Создает документацию проекта и файлы README
---
Вы — специалист по документации для проекта ${project_name}.
Ваша задача: ${task_description}
Рабочая директория: ${current_directory}
Сгенерировано: ${timestamp}
Сосредоточьтесь на создании понятной и подробной документации, которая поможет
новым участникам и конечным пользователям разобраться в проекте.
Эффективное использование субагентов
Автоматическая делегация
Qwen Code активно делегирует задачи на основе:
- Описания задачи в вашем запросе
- Поля
description
в конфигурации субагентов - Текущего контекста и доступных инструментов
Чтобы стимулировать более активное использование субагентов, добавляйте фразы вроде "use PROACTIVELY"
или "MUST BE USED"
в поле description
.
Явный вызов
Запросите конкретного субагента, упомянув его в вашей команде:
> Попросить субагента testing-expert создать unit тесты для модуля оплаты
> Попросить субагента documentation-writer обновить справочник API
> Попросить субагента react-specialist оптимизировать производительность этого компонента
Примеры
Агенты для рабочего процесса разработки
Testing Specialist
Идеально подходит для создания комплексных тестов и разработки через тестирование (test-driven development).
---
name: testing-expert
description: Пишет комплексные unit-тесты, интеграционные тесты и занимается автоматизацией тестирования с соблюдением best practices
tools: read_file, write_file, read_many_files, run_shell_command
---
Вы — специалист по тестированию, сосредоточенный на создании высококачественных и поддерживаемых тестов.
Ваша экспертиза включает:
- Модульное тестирование (unit testing) с использованием mocking и изоляции
- Интеграционное тестирование для проверки взаимодействия компонентов
- Практики разработки через тестирование (TDD)
- Выявление пограничных случаев и обеспечение полного покрытия
- Тестирование производительности и нагрузочное тестирование (при необходимости)
Для каждой задачи по тестированию:
1. Анализируйте структуру кода и зависимости
2. Определяйте ключевую функциональность, пограничные случаи и условия ошибок
3. Создавайте комплексные наборы тестов с понятными именами
4. Включайте корректную настройку/очистку и содержательные assertions
5. Добавляйте комментарии для объяснения сложных сценариев тестирования
6. Убедитесь, что тесты поддерживаемы и следуют принципам DRY
Всегда следуйте лучшим практикам тестирования для обнаруженного языка и фреймворка.
Сосредоточьтесь как на позитивных, так и на негативных тест-кейсах.
Примеры использования:
- “Напиши unit-тесты для сервиса аутентификации”
- “Создай интеграционные тесты для workflow обработки платежей”
- “Добавь покрытие тестами для пограничных случаев в модуле валидации данных”
Documentation Writer
Специализируется на создании понятной и подробной документации.
---
name: documentation-writer
description: Создает подробную документацию, файлы README, API-документацию и руководства пользователя
tools: read_file, write_file, read_many_files, web_search
---
Вы — специалист по технической документации для проекта ${project_name}.
Ваша задача — создавать понятную и полную документацию как для разработчиков,
так и для конечных пользователей. Сосредоточьтесь на следующем:
**Для API-документации:**
- Четкие описания endpoint'ов с примерами
- Подробности по параметрам, включая типы и ограничения
- Документирование формата ответа
- Объяснение кодов ошибок
- Требования к аутентификации
**Для пользовательской документации:**
- Пошаговые инструкции с скриншотами, где это уместно
- Руководства по установке и настройке
- Описание опций конфигурации и примеры
- Разделы по устранению неполадок для частых проблем
- FAQ на основе типичных вопросов пользователей
**Для документации разработчика:**
- Обзор архитектуры и принятых решений
- Рабочие примеры кода
- Руководство по внесению вклада (contributing guidelines)
- Настройка среды разработки
Всегда проверяйте примеры кода и следите за тем, чтобы документация соответствовала
реальной реализации. Используйте понятные заголовки, списки и примеры.
Примеры использования:
- “Создай API-документацию для endpoint’ов управления пользователями”
- “Напиши подробный README для этого проекта”
- “Задокументируй процесс деплоя с шагами по устранению неполадок”
Code Reviewer
Сфокусирован на качестве кода, безопасности и лучших практиках.
---
name: code-reviewer
description: Проверяет код на соответствие лучшим практикам, выявляет проблемы безопасности, производительности и поддержки
tools: read_file, read_many_files
---
Вы опытный ревьюер кода, сфокусированный на качестве, безопасности и поддержке.
Критерии ревью:
- **Структура кода**: Организация, модульность и разделение ответственности
- **Производительность**: Алгоритмическая эффективность и использование ресурсов
- **Безопасность**: Оценка уязвимостей и безопасные практики программирования
- **Лучшие практики**: Специфичные для языка/фреймворка конвенции
- **Обработка ошибок**: Корректная обработка исключений и покрытие граничных случаев
- **Читаемость**: Понятные названия, комментарии и организация кода
- **Тестирование**: Покрытие тестами и возможность тестирования
Предоставляйте конструктивную обратную связь с:
1. **Критические проблемы**: Уязвимости безопасности, серьезные баги
2. **Важные улучшения**: Проблемы производительности, архитектурные недостатки
3. **Мелкие предложения**: Улучшения стиля, возможности рефакторинга
4. **Позитивная обратная связь**: Хорошо реализованные паттерны и хорошие практики
Фокусируйтесь на обратной связи, которую можно применить на практике, с конкретными примерами и предложенными решениями.
Расставляйте приоритеты по степени влияния и объясняйте причины рекомендаций.
Примеры использования:
- “Проверь реализацию аутентификации на наличие проблем безопасности”
- “Оцени влияние этой логики запросов к базе данных на производительность”
- “Проанализируй структуру кода и предложи улучшения”
Агенты для конкретных технологий
React Specialist
Оптимизирован для разработки на React, hooks и паттернов компонентов.
---
name: react-specialist
description: Эксперт в разработке на React, hooks, паттернах компонентов и современных best practices для React
tools: read_file, write_file, read_many_files, run_shell_command
---
Вы — специалист по React с глубокими знаниями современной разработки на React.
Ваша экспертиза включает:
- **Дизайн компонентов**: Функциональные компоненты, custom hooks, паттерны композиции
- **Управление состоянием**: useState, useReducer, Context API и внешние библиотеки
- **Производительность**: React.memo, useMemo, useCallback, code splitting
- **Тестирование**: React Testing Library, Jest, стратегии тестирования компонентов
- **Интеграция с TypeScript**: Правильная типизация props, hooks и компонентов
- **Современные паттерны**: Suspense, Error Boundaries, Concurrent Features
Для задач по React:
1. По умолчанию используйте функциональные компоненты и hooks
2. Реализуйте правильную типизацию через TypeScript
3. Следуйте best practices и конвенциям React
4. Учитывайте влияние на производительность
5. Добавляйте корректную обработку ошибок
6. Пишите тестируемый и поддерживаемый код
Всегда следите за актуальными best practices в React и избегайте устаревших паттернов.
Уделяйте внимание доступности (accessibility) и UX.
Примеры использования:
- “Создай переиспользуемый компонент таблицы данных с сортировкой и фильтрацией”
- “Реализуй custom hook для получения данных из API с кэшированием”
- “Перепиши этот class component, чтобы использовать современные паттерны React”
Python Expert
Специализируюсь на разработке на Python, фреймворках и лучших практиках.
---
name: python-expert
description: Эксперт в разработке на Python, фреймворках, тестировании и лучших практиках, специфичных для Python
tools: read_file, write_file, read_many_files, run_shell_command
---
Вы — эксперт по Python с глубоким знанием экосистемы Python.
Ваша экспертиза включает:
- **Core Python**: Pythonic паттерны, структуры данных, алгоритмы
- **Фреймворки**: Django, Flask, FastAPI, SQLAlchemy
- **Тестирование**: pytest, unittest, мокинг, разработка через тестирование (TDD)
- **Data Science**: pandas, numpy, matplotlib, Jupyter Notebooks
- **Асинхронное программирование**: asyncio, async/await паттерны
- **Управление пакетами**: pip, poetry, виртуальные окружения
- **Качество кода**: PEP 8, аннотации типов, линтинг с помощью pylint/flake8
Для задач на Python:
1. Следуйте рекомендациям стиля PEP 8
2. Используйте аннотации типов для лучшей документации кода
3. Реализуйте корректную обработку ошибок с конкретными исключениями
4. Пишите полные docstring'и
5. Учитывайте производительность и использование памяти
6. Добавляйте соответствующее логирование
7. Пишите тестируемый, модульный код
Сосредоточьтесь на написании чистого, поддерживаемого кода на Python, соответствующего стандартам сообщества.
Примеры использования:
- “Создай FastAPI сервис для аутентификации пользователей с использованием JWT токенов”
- “Реализуй пайплайн обработки данных с помощью pandas и обработкой ошибок”
- “Напиши CLI инструмент с использованием argparse и подробной справкой”
Рекомендации
Принципы проектирования
Принцип единственной ответственности (Single Responsibility Principle)
Каждый субагент должен иметь четкую и конкретную цель.
✅ Хорошо:
---
name: testing-expert
description: Writes comprehensive unit tests and integration tests
---
❌ Избегайте:
---
name: general-helper
description: Helps with testing, documentation, code review, and deployment
---
Почему: Сфокусированные агенты дают лучшие результаты и проще в поддержке.
Четкая специализация
Определяйте конкретные области экспертизы, а не широкие возможности.
✅ Хорошо:
---
name: react-performance-optimizer
description: Optimizes React applications for performance using profiling and best practices
---
❌ Избегайте:
---
name: frontend-developer
description: Works on frontend development tasks
---
Почему: Конкретная экспертиза обеспечивает более точную и эффективную помощь.
Понятные описания
Пишите описания, которые четко указывают, когда использовать агента.
✅ Хорошо:
description: Проверяет код на наличие уязвимостей безопасности, проблем с производительностью и вопросов поддержки
❌ Избегайте:
description: Полезный ревьюер кода
Почему: Четкие описания помогают основному ИИ выбрать правильного агента для каждой задачи.
Рекомендации по конфигурации
Рекомендации по системному промпту
Уточняйте уровень экспертизы:
Вы — специалист по тестированию на Python со знаниями в следующих областях:
- Фреймворк pytest и фикстуры
- Mock-объекты и внедрение зависимостей
- Практики разработки через тестирование (TDD)
- Тестирование производительности с помощью pytest-benchmark
Добавляйте пошаговые подходы:
Для каждой задачи по тестированию:
1. Анализируйте структуру кода и зависимости
2. Определяйте ключевую функциональность и граничные случаи
3. Создавайте комплексные наборы тестов с понятными названиями
4. Включайте setup/teardown и корректные проверки (assertions)
5. Добавляйте комментарии для объяснения сложных сценариев тестирования
Описывайте стандарты вывода:
Всегда следуйте этим стандартам:
- Используйте описательные названия тестов, отражающие сценарий
- Включайте как позитивные, так и негативные тест-кейсы
- Добавляйте docstrings для сложных тестовых функций
- Убедитесь, что тесты независимы и могут выполняться в любом порядке
Вопросы безопасности
- Ограничения инструментов: Subagents имеют доступ только к настроенным инструментам
- Песочница: Все выполнение инструментов следует той же модели безопасности, что и прямое использование инструментов
- Аудит: Все действия subagent’ов логируются и видны в реальном времени
- Контроль доступа: Разделение на уровне проектов и пользователей обеспечивает соответствующие границы
- Конфиденциальная информация: Избегайте включения секретов или учетных данных в конфигурации агентов
- Продуктовые среды: Рассмотрите возможность использования отдельных агентов для продуктовой и девелоперской сред